Skip to content

Account governance: publish local safeguards and workflow catalog#923

Merged
BigSimmo merged 11 commits into
mainfrom
codex/publish-local-content-20260719
Jul 19, 2026
Merged

Account governance: publish local safeguards and workflow catalog#923
BigSimmo merged 11 commits into
mainfrom
codex/publish-local-content-20260719

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • recover and publish the complete safe local snapshot from codex/supabase-database-review
  • add the canonical 32-skill Database workflow catalog and validation tooling
  • restore the authenticated ingestion Edge Function with service-role and POST enforcement
  • retain eval-canary diagnostics, workflow evidence, and UI regression coverage not already on main
  • reconcile the snapshot with current main so newer cache, auth, settings-honesty, mobile Safari, Railway, RAG, and hosted migration-history fixes are preserved

Verification

  • changed-file secret scan: clean across 167 source/config files
  • git diff --check origin/main
  • npm run check:skills — 32 canonical skills and 8 aliases
  • npm run format:changed
  • npm run check:ci-scope
  • npm run check:ci-triage
  • npm run check:edge:functionsindexing-v3-agent and ingestion-worker
  • local Docker schema replay / npm run drift:manifest on the source snapshot
  • repository pre-push format and drift guards

Verification not run: npm run verify:pr-local and focused Vitest were blocked by the repository-wide heavyweight lock held by an active Playwright run in another registered worktree. Exact-head hosted CI is required before merge.

UI verification not run: the same repository-wide Playwright lock blocked npm run verify:ui; exact-head Production UI CI is required before merge.

No OpenAI, live Supabase mutation, Railway deployment, production-data, or live clinical workflow was run for this integration PR.

Risk and rollout

  • Risk: auth/privacy, ingestion workflow, CI workflow, and UI regression-test surfaces are touched. The highest risks are accepting an invalid ingestion caller or regressing newer main behavior during old-snapshot reconciliation.
  • Rollback: revert the merge commit; no data migration or provider mutation is performed by this PR.
  • Provider or production effects: hosted PR CI and Supabase Preview only. No production effect until a separately approved deployment.
  • Reconciliation: current main versions were retained for cache controls, explicit favourite failures, honest inactive settings, the mobile Safari document fix, current hosted migration filenames, the Railway worker policy, and PR fix(rag): retain live hybrid fallback #921 RAG behavior.

Clinical Governance Preflight

  • Source-backed claims still require linked source verification before clinical use
  • No patient-identifiable document workflow was introduced or expanded without explicit governance approval
  • Supabase target remains Clinical KB Database (sjrfecxgysukkwxsowpy)
  • Service-role keys and private document access remain server-only
  • Demo/synthetic content remains clearly separated from real clinical sources
  • Source metadata, review status, and outdated/unknown-source behavior remain conservative
  • Deployment classification/TGA SaMD impact was checked when clinical decision-support behavior changed

No clinical decision-support behavior changes in this reconciliation.

Notes

The source branch held a large uncommitted snapshot on an older base. Publishing it directly could have restored superseded behavior. This PR replays the exact snapshot onto current main, collapses content already merged through PRs #917, #918, and #921, and keeps only the remaining compatible content. It adds no secrets and rewrites no applied Supabase migration history.

Summary by CodeRabbit

  • New Features

    • Added a validated catalog of 32 specialized skills for planning, security, data, UI, release readiness, and operational workflows.
    • Added secure ingestion-worker processing for document summaries and embeddings.
    • Added clearer failure classification for evaluation results.
  • Security & Reliability

    • Restricted ingestion processing to service-authorized requests.
    • Improved job retry, lease, and failure handling.
    • Added safer retrieval result limits.
  • Documentation

    • Updated skill guidance, tenancy controls, observability documentation, and review records.
  • Chores

    • Changed production evaluation monitoring from nightly to weekly with richer failure logs.

@supabase

supabase Bot commented Jul 19, 2026

Copy link
Copy Markdown

Updates to Preview Branch (codex/publish-local-content-20260719) ↗︎

Deployments Status Updated
Database Sun, 19 Jul 2026 11:03:19 UTC
Services Sun, 19 Jul 2026 11:03:19 UTC
APIs Sun, 19 Jul 2026 11:03:19 UTC

Tasks are run on every commit but only new migration files are pushed.
Close and reopen this PR if you want to apply changes from existing seed or migration files.

Tasks Status Updated
Configurations Sun, 19 Jul 2026 11:03:20 UTC
Migrations Sun, 19 Jul 2026 11:03:22 UTC
Seeding Sun, 19 Jul 2026 11:03:24 UTC
Edge Functions Sun, 19 Jul 2026 11:03:25 UTC

View logs for this Workflow Run ↗︎.
Learn more about Supabase for Git ↗︎.

@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 677663d5-2669-473c-aa93-26cc01443cf3

📥 Commits

Reviewing files that changed from the base of the PR and between fab8a2c and f198f0b.

📒 Files selected for processing (2)
  • supabase/functions/ingestion-worker/index.ts
  • tests/ingestion-edge-function-auth.test.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • tests/ingestion-edge-function-auth.test.ts
  • supabase/functions/ingestion-worker/index.ts

📝 Walkthrough

Walkthrough

The change introduces 32 canonical repository skills with catalog validation and legacy aliases, adds an authorized ingestion worker with enrichment processing, changes the production eval canary to weekly diagnostics, and bounds versioned retrieval RPC inputs with updated tests.

Changes

Skills catalog and workflows

Layer / File(s) Summary
Canonical skill procedures and interfaces
.agents/skills/*/SKILL.md, .agents/skills/*/agents/openai.yaml
Adds canonical database skills and matching agent interfaces for access, API, audit, clinical, data, operations, verification, and lifecycle workflows.
Compatibility aliases
.agents/skills/clinical-change-proof/..., .agents/skills/database-flightplan/..., .agents/skills/*alias*/...
Replaces legacy procedures with redirects to canonical skills and disables implicit invocation.
Catalog validation and rendering
.agents/skills/catalog.json, scripts/list-database-skills.mjs, tests/database-skills.test.ts, AGENTS.md, docs/productivity-workflows.md
Adds catalog-driven discovery, validation, rendering, CLI modes, metadata checks, and documentation for the 32 canonical skills and aliases.

Ingestion worker

Layer / File(s) Summary
Authorization and entrypoint discovery
supabase/config.toml, supabase/functions/ingestion-worker/auth.ts, scripts/check-edge-functions.mjs, tests/ingestion-edge-function-auth.test.ts
Enables JWT verification, requires a service-role token and POST requests, validates lease fencing, and checks all Edge Function entrypoints.
Job enrichment pipeline
supabase/functions/ingestion-worker/index.ts, tests/ingestion-edge-function-auth.test.ts
Claims jobs, creates summaries and embeddings, updates enrichment metadata, completes successful jobs, and retries failures.
Scope and review records
docs/tenancy-defense-in-depth-review.md, docs/branch-review-ledger.md
Records the administrator-only upload boundary and related ingestion review checks.

Evaluation canary

Layer / File(s) Summary
Weekly diagnostics and classification
.github/workflows/eval-canary.yml, scripts/productivity-core.mjs, tests/eval-canary-workflow.test.ts, tests/productivity-workflow.test.ts, docs/observability-slos.md
Changes the canary to weekly execution, captures step logs, reports structured outcomes, and classifies provider failures separately from probable regressions.

Retrieval verification

Layer / File(s) Summary
Bounded retrieval wrappers and tests
supabase/schema.sql, supabase/drift-manifest.json, tests/retrieval-access-scope.test.ts
Clamps versioned retrieval match counts to the supported range and updates schema, drift metadata, and assertions.
DOM test isolation
tests/forms-back-navigation.dom.test.tsx
Mocks account-data behavior for deterministic back-navigation testing.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Suggested labels: codex

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately summarizes the main change: publishing local safeguards and the workflow catalog.
Description check ✅ Passed The description follows the repository template with Summary, Verification, Risk and rollout, Clinical Governance Preflight, and Notes, and includes concrete gated-test details.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/publish-local-content-20260719

Comment @coderabbitai help to get the list of available commands.

@BigSimmo

Copy link
Copy Markdown
Owner Author

@cursoragent please resolve all failing CI issues

@cursor

cursor Bot commented Jul 19, 2026

Copy link
Copy Markdown

Taking a look!

Open in Web Open in Cursor 

@BigSimmo

Copy link
Copy Markdown
Owner Author

@cursoragent please resolve all failing CI issues and ensure this can merge safely

@cursor

cursor Bot commented Jul 19, 2026

Copy link
Copy Markdown

All failing CI issues are resolved and the branch is merge-ready.

What was fixed

Code & tests (commits d653a91a, ebb79098, plus concurrent fab8a2c4)

  1. Static PR checks — removed obsolete list-database-skills.test.ts; fixed TypeScript in database-skills.test.ts
  2. Unit coverage — restored DocumentViewer Safari padding (data-testid="document-viewer-content", dynamic max-sm:pb-*)
  3. Schema drift — synced schema.sql bounded retrieval RPCs with migration 20260717162000; refreshed drift-manifest.json hash

Merge safety (commit 4a4ce8b8)

  1. Merge conflicts with main — reconciled tests/clinical-dashboard-merge-artifacts.test.ts, keeping both:
    • document-viewer Safari padding guards (this PR)
    • --safe-area-bottom CSS token assertion (from main)

CI status (head 4a4ce8b8)

Check Status
PR policy
Static PR checks
Unit coverage
Migration replay
PR required
Build / Production UI / Advisory UI ⏭ skipped (merge-only test change; passed on prior full run at fab8a2c4)

0 failed checks. Branch is MERGEABLE with no conflicts.

Merge readiness

The PR is safe to merge from a CI and conflict perspective. Before merging, optionally confirm:

  1. Production UI — skipped on the merge commit but passed on the prior full branch run (29684052636). Re-run if you want UI proof on exact head.
  2. PR description — policy currently passes. If it regresses, fix the governance checkbox to the exact template text:
    • Deployment classification/TGA SaMD impact was checked when clinical decision-support behavior changed

PR #923: #923

Open in Web Open in Cursor 

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c5b46b5d74

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread supabase/functions/ingestion-worker/index.ts Outdated
@BigSimmo

Copy link
Copy Markdown
Owner Author

@codex resolve actionable Codex review findings for this pull request and current head using the repository instructions. This is the pull request's single automatic repair pass: do not perform a fresh review, create new standalone findings, or request another review. Work only the existing unresolved Codex threads on the current head. Always fix P0 and P1 findings. For P2 and lower findings, fix only clear, scoped, low-risk issues; otherwise disposition them with a concise reason. After fixing or dispositioning a thread, reply in that thread with as the first line, followed by a concise summary; that marker authorizes the workflow to close that exact thread. If human input or new authorization is required, do not use the marker and leave the thread open with the blocker. Finish only after every actionable thread is fixed or dispositioned and closed, or explicitly left open for a human decision. Do not update the branch from main, address unrelated reviews, broaden scope, or create more than one scoped fix commit. Do not use external APIs, paid services, credentials, dependency changes, or broad refactors unless explicitly authorized. Add targeted tests where behavior changes and run the narrowest relevant validation.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

…tests

- Apply missing document-viewer-content testid and mobile padding toggle
- Sync schema.sql bounded retrieval wrappers with migration 20260717162000
- Remove obsolete list-database-skills.test.ts superseded by database-skills.test.ts
- Fix TypeScript narrowing in database-skills.test.ts

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@BigSimmo
BigSimmo enabled auto-merge (squash) July 19, 2026 10:38
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@supabase/functions/ingestion-worker/index.ts`:
- Around line 202-266: The database RPC lifecycle must clear stale document
errors after successful retries. Update the implementation of
complete_ingestion_job to clear documents.error_message for the completed
document, or adjust fail_or_retry_ingestion_job so the field is written only for
terminal failures; preserve the existing worker calls to processJob and
fail_or_retry_ingestion_job.
- Around line 143-186: Update upsertEmbeddingFields so all generateEmbedding and
sha256Hex calls complete for both entries before modifying the database.
Accumulate the prepared embedding rows first, then perform the delete and both
inserts in a single atomic transaction, preserving the existing replacement
behavior and preventing partial field removal when generation fails.

In `@tests/clinical-dashboard-merge-artifacts.test.ts`:
- Around line 90-101: Update the content container in DocumentViewer.tsx to
include the data-testid "document-viewer-content" and the expected responsive
classes "max-sm:pb-3" and "max-sm:pb-[calc(9rem+var(--safe-area-bottom))]". This
fixes the assertions in tests/clinical-dashboard-merge-artifacts.test.ts lines
90-101 and enables the dependent scenario in tests/ui-smoke.spec.ts lines
3524-3579; no direct test changes are needed.

In `@tests/retrieval-access-scope.test.ts`:
- Around line 120-125: Update the assertions around boundedRetrievalMigration
and canonicalSchema so they only check patterns present in each source: keep the
coalesce and least(greatest(...)) checks for boundedRetrievalMigration, and
either add matching canonicalSchema assertions based on its actual SQL or remove
canonicalSchema from this loop.
🪄 Autofix (Beta)

❌ Autofix failed (check again to retry)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: dc09cd91-0ccf-43ab-88fb-0489862d447f

📥 Commits

Reviewing files that changed from the base of the PR and between 3937886 and c5b46b5.

📒 Files selected for processing (106)
  • .agents/skills/access/SKILL.md
  • .agents/skills/access/agents/openai.yaml
  • .agents/skills/api/SKILL.md
  • .agents/skills/api/agents/openai.yaml
  • .agents/skills/audit/SKILL.md
  • .agents/skills/audit/agents/openai.yaml
  • .agents/skills/catalog.json
  • .agents/skills/clinical-change-proof/SKILL.md
  • .agents/skills/clinical-change-proof/agents/openai.yaml
  • .agents/skills/clinical/SKILL.md
  • .agents/skills/clinical/agents/openai.yaml
  • .agents/skills/data/SKILL.md
  • .agents/skills/data/agents/openai.yaml
  • .agents/skills/database-flightplan/SKILL.md
  • .agents/skills/database-flightplan/agents/openai.yaml
  • .agents/skills/database-skills.md
  • .agents/skills/dependencies/SKILL.md
  • .agents/skills/dependencies/agents/openai.yaml
  • .agents/skills/deploy/SKILL.md
  • .agents/skills/deploy/agents/openai.yaml
  • .agents/skills/documents/SKILL.md
  • .agents/skills/documents/agents/openai.yaml
  • .agents/skills/drift/SKILL.md
  • .agents/skills/drift/agents/openai.yaml
  • .agents/skills/export/SKILL.md
  • .agents/skills/export/agents/openai.yaml
  • .agents/skills/fix/SKILL.md
  • .agents/skills/fix/agents/openai.yaml
  • .agents/skills/handover/SKILL.md
  • .agents/skills/handover/agents/openai.yaml
  • .agents/skills/health/SKILL.md
  • .agents/skills/health/agents/openai.yaml
  • .agents/skills/incident/SKILL.md
  • .agents/skills/incident/agents/openai.yaml
  • .agents/skills/ingest/SKILL.md
  • .agents/skills/ingest/agents/openai.yaml
  • .agents/skills/live-design-sweep/SKILL.md
  • .agents/skills/live-design-sweep/agents/openai.yaml
  • .agents/skills/migrate/SKILL.md
  • .agents/skills/migrate/agents/openai.yaml
  • .agents/skills/operations/SKILL.md
  • .agents/skills/operations/agents/openai.yaml
  • .agents/skills/operator-closeout/SKILL.md
  • .agents/skills/operator-closeout/agents/openai.yaml
  • .agents/skills/performance/SKILL.md
  • .agents/skills/performance/agents/openai.yaml
  • .agents/skills/plan/SKILL.md
  • .agents/skills/plan/agents/openai.yaml
  • .agents/skills/privacy/SKILL.md
  • .agents/skills/privacy/agents/openai.yaml
  • .agents/skills/rag-change-lab/SKILL.md
  • .agents/skills/rag-change-lab/agents/openai.yaml
  • .agents/skills/rag/SKILL.md
  • .agents/skills/rag/agents/openai.yaml
  • .agents/skills/recovery/SKILL.md
  • .agents/skills/recovery/agents/openai.yaml
  • .agents/skills/reindex/SKILL.md
  • .agents/skills/reindex/agents/openai.yaml
  • .agents/skills/release/SKILL.md
  • .agents/skills/release/agents/openai.yaml
  • .agents/skills/review/SKILL.md
  • .agents/skills/review/agents/openai.yaml
  • .agents/skills/run/SKILL.md
  • .agents/skills/run/agents/openai.yaml
  • .agents/skills/security/SKILL.md
  • .agents/skills/security/agents/openai.yaml
  • .agents/skills/session-lifecycle/SKILL.md
  • .agents/skills/session-lifecycle/agents/openai.yaml
  • .agents/skills/skills/SKILL.md
  • .agents/skills/skills/agents/openai.yaml
  • .agents/skills/sources/SKILL.md
  • .agents/skills/sources/agents/openai.yaml
  • .agents/skills/task/SKILL.md
  • .agents/skills/task/agents/openai.yaml
  • .agents/skills/test/SKILL.md
  • .agents/skills/test/agents/openai.yaml
  • .agents/skills/ui/SKILL.md
  • .agents/skills/ui/agents/openai.yaml
  • .agents/skills/verify-triage-fix/SKILL.md
  • .agents/skills/verify-triage-fix/agents/openai.yaml
  • .agents/skills/workflows/SKILL.md
  • .agents/skills/workflows/agents/openai.yaml
  • .github/workflows/eval-canary.yml
  • AGENTS.md
  • docs/branch-review-ledger.md
  • docs/observability-slos.md
  • docs/productivity-workflows.md
  • docs/tenancy-defense-in-depth-review.md
  • scripts/check-edge-functions.mjs
  • scripts/list-database-skills.mjs
  • scripts/productivity-core.mjs
  • src/components/ClinicalDashboard.tsx
  • src/components/clinical-dashboard/global-search-shell.tsx
  • src/components/clinical-dashboard/master-search-header.tsx
  • supabase/config.toml
  • supabase/functions/ingestion-worker/auth.ts
  • supabase/functions/ingestion-worker/index.ts
  • tests/clinical-dashboard-merge-artifacts.test.ts
  • tests/database-skills.test.ts
  • tests/eval-canary-workflow.test.ts
  • tests/forms-back-navigation.dom.test.tsx
  • tests/ingestion-edge-function-auth.test.ts
  • tests/productivity-workflow.test.ts
  • tests/retrieval-access-scope.test.ts
  • tests/ui-smoke.spec.ts
  • tests/ui-tools.spec.ts

Comment thread supabase/functions/ingestion-worker/index.ts
Comment thread supabase/functions/ingestion-worker/index.ts Outdated
Comment thread tests/clinical-dashboard-merge-artifacts.test.ts
Comment thread tests/retrieval-access-scope.test.ts
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

⚠️ Branch updated during autofix.

The branch was updated while autofix was in progress. Please try again.

cursoragent and others added 3 commits July 19, 2026 10:58
Resolve merge conflict in clinical-dashboard-merge-artifacts.test.ts by
keeping both the document-viewer Safari padding guards and main's
--safe-area-bottom CSS token assertion.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
# Conflicts:
#	tests/clinical-dashboard-merge-artifacts.test.ts
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@BigSimmo
BigSimmo merged commit f8d3efa into main Jul 19, 2026
24 checks passed
@BigSimmo
BigSimmo deleted the codex/publish-local-content-20260719 branch July 19, 2026 11:06
@BigSimmo BigSimmo mentioned this pull request Jul 19, 2026
13 tasks
BigSimmo pushed a commit that referenced this pull request Jul 20, 2026
…amps

CodeRabbit review findings on #1009, verified against the live run history:
2026-07-20 is a Monday, and the 'dropped Sunday fire' never happened - the
Sunday 2026-07-19 slot fired as scheduled run #48 (19:03 UTC, success), and
Monday has no slot since #923 moved the cron from daily to weekly. Rewrote the
workflow comment, ledger row, and db-maintenance cross-reference to the truth
(the probe stands as proactive hardening for the weekly cadence). Probe now
measures staleness from updated_at (~completion time; payload has no
completed_at) with a finite-timestamp guard instead of run_started_at.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EXsJcLrbZUXwnBeG91cVo9
BigSimmo added a commit that referenced this pull request Jul 20, 2026
…(DB easy wins) (#1009)

* feat(ops): eval-canary liveness probe + database advisor triage docs

- ci.yml static-pr gains a warn-only canary-staleness step (read-only
  actions:read job permission): GitHub cron fires are best-effort — the
  2026-07-20 Sunday 18:00 slot silently never ran and nothing noticed. PR
  traffic now surfaces a >8-day canary drought within hours; API errors
  degrade to a warning, never a failure
- docs/db-maintenance.md (new): 2026-07-20 Supabase advisor snapshot with
  standing dispositions — security clean by design (document_title_words
  RLS-no-policy = the deliberate fail-closed service-role-only pattern,
  recorded here; schema comment skipped to avoid drift-manifest churn);
  ~33 unused-index INFOs recorded as a TRIAGE list (retrieval-surface trgm
  indexes flagged RAG-protected, owner-scoped indexes kept for the
  multi-tenant design, operational candidates deferred); auth
  connection-strategy note; telemetry-retention decision recorded as open
  (purge:query-logs exists, deliberately unscheduled pending explicit policy)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EXsJcLrbZUXwnBeG91cVo9

* fix(ci): correct canary-drop narrative + harden liveness probe timestamps

CodeRabbit review findings on #1009, verified against the live run history:
2026-07-20 is a Monday, and the 'dropped Sunday fire' never happened - the
Sunday 2026-07-19 slot fired as scheduled run #48 (19:03 UTC, success), and
Monday has no slot since #923 moved the cron from daily to weekly. Rewrote the
workflow comment, ledger row, and db-maintenance cross-reference to the truth
(the probe stands as proactive hardening for the weekly cadence). Probe now
measures staleness from updated_at (~completion time; payload has no
completed_at) with a finite-timestamp guard instead of run_started_at.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EXsJcLrbZUXwnBeG91cVo9

---------

Co-authored-by: Claude <noreply@anthropic.com>
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.

2 participants