Commit Graph

12 Commits

Author SHA1 Message Date
Dan Sutton 0b989f3de0 docs(_plans): record Phase D + E done 2026-05-21 08:49:15 +01:00
Dan Sutton 63b0a3536f docs(_plans): record C3 done (commit d5c1e22b1) 2026-05-20 18:22:34 +01:00
Dan Sutton 6d04414bc7 docs(_plans): record Phase C1-C5 status (C3 deferred pending product call) 2026-05-20 17:26:49 +01:00
Dan Sutton d8a23aa36e docs(_plans): record B6 + Phase B complete 2026-05-20 16:51:54 +01:00
Dan Sutton 9c08f2f6e9 docs(_plans): record B5 progress (commit dea1c7c0d) 2026-05-20 15:51:17 +01:00
Dan Sutton 3650812e26 docs(_plans): record B4 progress (commit 612babf6c) 2026-05-20 15:42:43 +01:00
Dan Sutton 5849f46c07 docs(_plans): record B3 progress (commit 08f20c65f) 2026-05-20 15:28:51 +01:00
Dan Sutton d727e0faf3 docs(_plans): record B2 progress (commit 22dbbc90f) 2026-05-20 15:03:50 +01:00
Dan Sutton c193f536f9 docs(_plans): record B1 progress + requeue-semantics decision
Master plan Progress tracking now reflects 709d2f5af. Captures the
score-equals-createdAt invariant decision (requeue keeps original
score; createdAt is immutable across retries) so future sessions don't
relitigate the Q1 underspec.
2026-05-20 14:53:15 +01:00
Dan Sutton 015787cf62 docs(_plans): add progress tracking + Phase A patterns to master plan
Hardens the master plan against context-loss between sessions:

- Progress table mapping each phase to commits + status.
- Phase A patterns section documenting the discriminated-union
  findResource shape that A1 and A2 established (reusable for Phase
  B/C/D).
- Explicit note on what SyntheticRun has today vs what Phase C's
  replay work will need extended.
- Phase B's exact order spelled out (B1-B6) referencing the locked
  Q-docs.
- A "resuming guidance" footer for a fresh session.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 14:20:36 +01:00
Dan Sutton c8d036aa0d docs(_plans): mollifier API parity master plan + per-question designs
Master plan and five locked sub-design docs covering the API parity work:

- mollifier-api-parity.md — endpoint inventory, invariant, phased TDD plan.
- mollifier-listing-design.md (Q1) — ZSET buffer, compound cursor, no banner.
- mollifier-replay-design.md (Q2) — single code path, PG-or-buffer resolution.
- mollifier-mutation-race-design.md (Q3) — wait-and-bounce with safety net.
- mollifier-cancel-design.md (Q4) — mark_cancelled + drainer bifurcation.
- mollifier-idempotency-design.md (Q5) — keys in both stores symmetrically.

Plus the original phase-3 plan it builds on and the bash parity script
that surfaced the gaps and acts as the regression guard during
implementation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 13:38:03 +01:00
Dan Sutton 4a8305a061 docs(_plans): mollifier rollout playbook
Per-org rollout procedure for turning the trigger-burst mollifier on
across the fleet. Mirrors the plan's structure (pre-rollout → test cloud
→ first customer → expansion → kill switches) but reflects the controls
that actually shipped, not the plan's original design:

  - Per-ORG opt-in via `Organization.featureFlags.mollifierEnabled` JSON
    (not per-env via the global FeatureFlag table — the shipped impl
    deliberately keeps the trigger hot path free of an extra DB query).
  - Per-replica drainer via the `TRIGGER_MOLLIFIER_DRAINER_ENABLED` env
    (defaults to inherit `TRIGGER_MOLLIFIER_ENABLED`).
  - `TRIGGER_MOLLIFIER_*` env-var prefix.
  - `MollifierConfigurationError` fail-loud-on-boot for misconfigured
    shutdown timeouts (referenced in the alarm list).
  - State matrix updated to the three live controls (gate / org flag /
    drainer flag) rather than the two-keyed per-env model in the plan.

Companion to `.server-changes/mollifier-phase-3-live.md` (changelog
entry) — this file is the operator runbook.
2026-05-18 13:22:33 +01:00