Skip to content

Report what the purge will do, and re-run the acceptance suites - #217

Merged
Parshkov merged 4 commits into
mainfrom
claude/report-what-the-purge-will-do
Sep 7, 2026
Merged

Report what the purge will do, and re-run the acceptance suites#217
Parshkov merged 4 commits into
mainfrom
claude/report-what-the-purge-will-do

Conversation

@Parshkov

@Parshkov Parshkov commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Three things, all found by running what was shipped rather than by reading it.

1. The report lied by omission

RESONANCE_PURGE_CORPUS=report printed on production:

purge-corpus: REPORT ONLY, nothing changed sessions=8 alerts_retracted=0 connections=…

Applying it a minute later retracted six. The count was only taken on the deleting branch, so report — whose entire job is to say what =1 will do — reported zero however many alerts the store held.

Counted in both modes now (alerts_to_retract); the log line says alerts=N either way, and the connections list prints none rather than trailing off into whitespace.

2. Nobody had run the product on an empty corpus

Emptying production put it in the state every deployment starts in — and the one never exercised. Measured: discovery answers, an index over nothing still reads index_current, and the answer is "Nobody yet. Your thought stays in the search, and everyone who arrives later is compared with it." — not an error and not something that reads as failure. Pinned by TheFirstPersonInAnEmptyWorldTests.

3. The readiness doc no longer ran

ops/TEST_READINESS.md told you to start the local origin with --db :memory:, which the PostgreSQL-only factory refuses outright — the first command anyone following that section would type. It claimed 682 tests where there are 712, and never said that :ephemeral: needs a reachable PostgreSQL server, which is the thing that actually stops a newcomer. Fixed, with the container invocation spelled out.

Evidence

All three acceptance suites re-run on this branch against a local guest-enabled origin, each matching its recorded baseline (last taken at 85eeaba):

suite result baseline
ops/oauth_smoke.py … --auto-consent 27/27 27/27
ops/hosted_onboarding_probe.py --smoke --refresh --revoke 9/9 required, 17/17 total 9/9
A/B/C over /mcp 36/36 36/36

Inside the A/B/C run, the product's actual claims: A ranks above C (rank 0 vs rank 14 — structure beating shared vocabulary), a subject-bound result_id C cannot read, intro → accept → relay, a revoked thought gone from a fresh discovery immediately, and a revoked bearer refused on /mcp.

The frozen evidence copy of the A/B/C harness is untouched — the run used a copy with authorship added, exactly as that section prescribes.

Checklist

  • CI is green.
  • benchmark/ gold is unedited.
  • Engine untouched; no policy version move, no ADR.
  • Stale claims corrected: test count, the :memory: command, and the acceptance figures.
  • No credentials, tokens or private human context committed.

🤖 Generated with Claude Code

Parshkov and others added 3 commits September 6, 2026 22:56
The report ran on production and printed `alerts_retracted=0`. Applying
it a minute later retracted six. The count was only ever taken while
deleting, so `report` — whose whole job is to say what `=1` will do —
reported zero however many alerts the store held.

Counted in both modes now, as `alerts_to_retract`, and the log line says
`alerts=N` either way. The connections list also says `none` rather than
trailing off into nothing when there is nothing to remove.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Emptying production put it in the state every deployment starts in and
the one nobody had ever run: a corpus with nothing in it. Discovery
answers, the index over nothing still reads current, and the answer is
"your thought stays in the search" rather than anything that reads as a
failure. Measured, then pinned.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The readiness doc's local origin used `--db :memory:`, which the
PostgreSQL-only factory now refuses outright — the first command anyone
following that section would type. It said 682 tests where there are
712, and did not say that `:ephemeral:` needs a PostgreSQL server
reachable, which is the thing that actually stops a newcomer.

All three acceptance suites re-run on current main against a local
guest-enabled origin, each matching its recorded baseline: oauth_smoke
27/27, onboarding probe 9/9 required (17/17 total), A/B/C 36/36 —
including A ranking above C, the subject-bound result_id, intro to
relay, and a revoked bearer refused on /mcp.

The frozen evidence copy of the A/B/C harness is untouched; the run used
a copy with `authorship` added, exactly as that section prescribes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Parshkov Parshkov changed the title Say in the report what the applied run will actually do Report what the purge will do, and re-run the acceptance suites Sep 7, 2026
docs/STATUS.md said leftover acceptance rows were listed for owner
deletion and 'not deleted by an agent'. An agent did delete them, on the
owner's instruction, so the line is marked superseded with what was
removed, what was kept, and the backup that should have been taken and
was not.

GitHub sign-in was configured on production today. Verified as far as it
can be without a human at the consent screen: both providers offered,
302 to GitHub's authorize endpoint with the exact registered callback and
read:user user:email, and GitHub answering with its own sign-in page
rather than the redirect_uri or client-credentials error a misconfigured
OAuth App produces.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Parshkov
Parshkov merged commit 05d7d3c into main Sep 7, 2026
3 checks passed
@Parshkov
Parshkov deleted the claude/report-what-the-purge-will-do branch September 7, 2026 06:40
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