Repository navigation
ops(purge): switch the synthetic-account purge on after its dry run (TASK-260) - #2233
Conversation
…TASK-260) The operator dry run on #2219 (production, 2026-10-15) examined one account and counted only its own footprint: the human and its Scout bot, Scout's memory and events, one approval, one attention item, one first-message mark. It skipped one unprefixed seat, as designed. The scheduler registers the job only for exactly "true". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AoU48YDZy3VZtQ55ZyCwjg
lilyshen0722
left a comment
There was a problem hiding this comment.
Gate at bfcb624 (eng lead), against the operator dry run posted on #2219 (production, 8987ec6, 15:43Z, flag false). I read the JSON itself, not the summary.
- Examined: 1 account,
eng-smoke-journey-1015124709, which matches the username pattern. The in-cluster runs' accounts are under the 2 h minimum. - Would delete only that account's own footprint:
- its user row and its per-user Scout (
scout-u15d0363247, derived from that account's id), each in Mongo and Postgres (2 + 2); - that Scout's memory (1) and events (4);
- the account's 1 approval, 1 attention item and 1 first-message mark;
- nothing in
pod.membersorpg.pod_members, andpods: [](the journey had already deleted its pod).
- its user row and its per-user Scout (
- Skipped: seat
engsmoke-claude, "name lacks the journey prefix". Guard (a) worked as designed. Such seats accumulate as reported skips until TASK-259 makes the suggester derive the seat from the username; that's a cosmetic leftover, not a safety gap.
The diff is the one-line flip in values-dev, with a comment saying how to pause it. The scheduler registers the job only for exactly "true". The first apply runs at the next 02:47 or 14:47 UTC after a deploy carries this.
GATE: PASS
|
First apply, 2026-10-16 02:47Z, on backend No
Idempotent: re-running the dry run ( Residual, not handled: the seat the dry run skipped ( Other |
|
Orphaned seat rows: guarded one-off, 2026-10-16 (CTO ruling; the code fix that prevents new ones is #2255). Before: 384 ephemeral registry rows. 2 were orphaned, meaning their publisher account no longer exists:
Run: one script, both ids. For each, it re-read the row as
After: 383 ephemeral rows, 1 orphaned ( |
Flips
backend.env.syntheticAccountPurgeto"true"in values-dev. That's the one-line follow-up #2219 promised, gated against its posted dry run (see the #2219 comment): one account examined, only its own footprint counted, one unprefixed seat skipped as designed.After the deploy, the scheduler runs the purge at 02:47 and 14:47 UTC.
🤖 Generated with Claude Code
https://claude.ai/code/session_01AoU48YDZy3VZtQ55ZyCwjg