d3ro-voice/server/supabase/tests
Yun Chan ba9ef9741e fix: red-team round 3 hardening across desktop, mobile, core and server
Batch of red-team r3 fixes that were in the working tree before the
2026-09-28 design overhaul, committed as one unit with their tests.

- desktop main: STT timeouts and sidecar, voice recording store, sync
  (credentials, audio, knowledge reindex, push gates), runtime
  provisioner, update policy, AltGr keybindings, voice-command policy,
  dictionary file codec/limits, meeting transcript condensing and a
  local recording ledger so interrupted-session recovery only closes
  meetings this device recorded (a phone's live meeting is left alone).
- mobile: login CSRF via implicit token callbacks rejected, account
  deletion/retention, durable queue retention, knowledge realtime
  without unfiltered DELETE, meeting re-record failure paths, cloud STT
  client, preferences store/resync.
- core: text chunking splits long unbroken transcripts to fit, template
  field policy, dictionary limits, meeting markdown inline handling.
- server: payple webhook policy and cancellation order scope, meeting
  document generation quota, team RPC null-role guard, unified LLM
  quota in-flight accounting, knowledge chunk vector index, meeting
  re-record failure paths (migrations 20260929*).
- ci: portable/runtime feed gates, update-policy schema, Forgejo file
  delete and alias planning.

Four older tests are updated to the new contracts rather than the old
behavior: token-pair auth callbacks are rejected, knowledge realtime no
longer subscribes to DELETE, long transcript lines are split, and
meeting recovery requires the local recording ledger for empty rows.
2026-09-28 20:45:52 +09:00
..
admin-subscription-provider-guard.integration.sql fix(billing): stop back-office edits from changing Payple renewal charges 2026-09-28 02:16:21 +09:00
audio-retention-on-delete.integration.sql fix(storage): purge raw audio when its history entry or meeting is deleted 2026-09-28 02:16:22 +09:00
consume-quota-period-window.integration.sql fix(quota): spend overage credits against the weekly window and count 7 days, not 8 2026-09-28 00:54:03 +09:00
content-report-red.e2e.mjs feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
content-reporting.edge.integration.ps1 feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
content-reporting.integration.sql feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
device-session-revocation.integration.sql fix(supabase): end the auth session when a device is revoked 2026-09-28 02:16:22 +09:00
drop-legacy-admin-write-policies.integration.sql fix(supabase): drop legacy JWT-role admin write policies on subscriptions 2026-09-28 02:16:24 +09:00
function-acl.integration.sql fix(db): lock increment_daily_usage and admin analytics RPCs to service_role 2026-09-28 02:16:21 +09:00
knowledge-chunks-vector-search.integration.sql fix: red-team round 3 hardening across desktop, mobile, core and server 2026-09-28 20:45:52 +09:00
meeting-document-generation-quota.integration.sql fix: red-team round 3 hardening across desktop, mobile, core and server 2026-09-28 20:45:52 +09:00
meeting-document-llm-quota-lease.integration.sql fix: red-team round 3 hardening across desktop, mobile, core and server 2026-09-28 20:45:52 +09:00
meeting-template-delete.integration.sql fix(db): allow deleting meeting templates that past meetings reference 2026-09-28 02:16:21 +09:00
mobile-platform.integration.ps1 feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
mobile-recording-lifecycle.integration.sql feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
mobile-rerecord-failure-paths.integration.sql fix: red-team round 3 hardening across desktop, mobile, core and server 2026-09-28 20:45:52 +09:00
mobile-rerecord-preserves-meeting.integration.sql fix(mobile-recording): never lose a meeting capture on offline stop, oversize, or re-record 2026-09-28 02:16:24 +09:00
mobile-reward-race.integration.ps1 feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
mobile-runtime-integrity.integration.sql feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
payment-provider.integration.sql feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
payple-cancellation-order-scope.integration.sql fix: red-team round 3 hardening across desktop, mobile, core and server 2026-09-28 20:45:52 +09:00
payple-checkout-active-subscription.integration.sql fix(payple): reject checkout while a paid Payple period is still active 2026-09-28 02:16:21 +09:00
portability-restore-projection.integration.sql fix(portability): restore compares existing rows through the v1 archive projection 2026-09-28 02:16:21 +09:00
production_mobile_release_preflight.sql feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
public-mobile-runtime.integration.mjs feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
push-claim-lock-race.integration.sql feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
push-outbox.integration.sql feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
server-owned-sync-timestamps.integration.sql fix(sync): let the server own updated_at on insert for cursor-pulled tables 2026-09-28 00:54:00 +09:00
stt-quota-reservations.integration.sql feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
team-push-security.integration.sql feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
team-rpc-null-role-guard.integration.sql fix: red-team round 3 hardening across desktop, mobile, core and server 2026-09-28 20:45:52 +09:00
team-scoped-write-checks.integration.sql fix(supabase): require team membership for team-scoped writes and pin row ownership 2026-09-28 00:54:01 +09:00