Skip to content

Fix transient task completion sync race - #250

Open
endlessblink wants to merge 7 commits into
masterfrom
fix/pwa-sync-release
Open

Fix transient task completion sync race#250
endlessblink wants to merge 7 commits into
masterfrom
fix/pwa-sync-release

Conversation

@endlessblink

Copy link
Copy Markdown
Owner

Summary

  • refresh the authoritative task projection before reporting a false completion failure
  • add a repro-focused regression for the desktop Catalog race
  • record the failure class and production proof gap
  • bump the release to 1.4.347 so PWA and Electron can converge

Verification

  • focused task action tests: 17 passed
  • failure matrix contract: 11 passed
  • authenticated offline/reconnect matrix: 25 passed
  • typecheck: passed
  • backup safety hook: 34 passed, 45 intentional skips

Production deployment remains gated by the Electron build and updater artifact checks.

Constraint: Preserve the existing durable queue and avoid masking genuine missing-task failures.

Rejected: Treating a temporarily empty renderer projection as a permanent missing task.

Tested: npx vitest run src/composables/tasks/__tests__/useTaskContextMenuActions.spec.ts --maxWorkers=1; npx vitest run tests/contract/task-consistency-failure-matrix.test.ts --maxWorkers=1; npm run test:offline-reconnect-flows; npx vue-tsc --noEmit -p tsconfig.json --composite false
Constraint: Keep missing-migration failures visible after bounded readiness retries.

Rejected: Stopping after the first PostgREST schema-cache response.

Tested: npx vitest run tests/unit/scripts/local-e2e-schema-preflight.test.ts --maxWorkers=1
Constraint: Fail closed when canonical schema never becomes readable.

Rejected: Treat a ten-second GitHub runner warmup as a missing migration.

Tested: npx vitest run tests/unit/scripts/local-e2e-schema-preflight.test.ts --maxWorkers=1
Constraint: Keep the disposable CI database authoritative before Realtime E2E.

Rejected: Increase schema-cache polling without forcing the runner instance to reload its migrations.

Tested: local preflight unit tests; authenticated offline/reconnect matrix; CI canvas-sync rerun pending
Constraint: Keep canonical preflight authenticated against the intended PostgREST role.

Rejected: Treat a gateway secret response as proof that canonical tables are absent.

Tested: npx vitest run tests/unit/scripts/local-e2e-schema-preflight.test.ts --maxWorkers=1
Constraint: Keep the CI database disposable and load the canonical schema before Realtime E2E.

Rejected: Assume a reset restarts PostgREST with a fresh schema snapshot.

Tested: local preflight unit tests; CI canvas-sync rerun pending
Constraint: Keep schema preflight fail-closed after bounded canonical contract retries.

Rejected: Report a warming RPC schema as a missing table.

Tested: npx vitest run tests/unit/scripts/local-e2e-schema-preflight.test.ts --maxWorkers=1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant