Commit graph

16 commits

Author SHA1 Message Date
codex
5c6d8df755 docs: record central fleet projection reset (CUST-WP-0068-T09)
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Image main-54b09ee. the-custodian reset-ack then fleet refuse-mode:
52 applied, 69 noop, 2 identifier-collision refusals, 0 retirements.
Fleet-ack not run — nothing was refused for retirement.
2026-08-28 21:42:05 +02:00
codex
6cd450fa55 finish CUST-WP-0068: recover, disposition, discard the cache
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 2s
Close T02–T06 from live hub evidence, disposition clay-borg product
records as not workplans, lift the task-reset restriction in state-hub,
dump and remove the retired local Postgres instance, and record ADR-010's
work-record divergence as closed.
2026-08-28 21:06:25 +02:00
codex
454300e490 finish CUST-WP-0067-T07 and CUST-WP-0068-T01
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Repo Manager now owns the State Hub access map and the registrar no longer
fails its own generated-index precondition. Close 0067; 0068 continues with
the remaining recovery tasks.
2026-08-28 20:48:26 +02:00
codex
7265018275 chore(consistency): write back registrar identifiers
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Keep the UUIDs the registrar minted for CUST-IN-0015, CUST-WP-0068-T09,
and the ad-hoc workplans after the run failed on an unrelated historic
task create.
2026-08-28 20:33:31 +02:00
codex
ece1290648 chore(workplan): measure CUST-WP-0068-T09 against the live projection
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
The reset now exists and has run fleet-wide, so T09 moves from wait to todo.
Every railiance-wp-* row is retired and its identifier released, meeting the
first acceptance clause.

The recorded 305 stale task rows no longer describes what is there: measured
against what the forge derives, 21 orphaned rows remain under live workplans
(0 open), 557 have no record_id at all (34 open), and 512 sit under workplans
retired today. Most of the 305 left the live surface with their workplans
rather than being repaired.

What remains is one change: reset_repository_projection still skips the tasks
of existing workplans, a restriction adopted when hub tasks had no canonical
identifier. They have one now, so the reason is gone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 17:51:04 +02:00
codex
c0c836ac1e feat(workplan): record the duplicate-identity dispositions
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
KONT-WP-0013 renumbered, archived RAILIANCE-WP migrated, unqualified ADHOC
accepted per CUST-WP-0066, OPS-WP-* newly visible and undecided. Forge-side
collisions fell 45 to 16.

Central still reports 35 duplicates because archived workplans are never
registered — the registrar scans only top-level workplans, closed archives being
frozen under ADR-007. The renames re-derived projection UUIDs, so the old rows
are now unclaimed by any file, which is exactly the condition ADR-012 decision
7's reset retires. The duplicates clear when that reset runs, not before.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 08:08:25 +02:00
custodian-sync
104c8f98aa chore(consistency): renormalize lifecycle state [auto]
Updated by fix-consistency on 2026-08-25:
  - workplan status: ready → active
2026-08-25 23:27:44 +02:00
codex
4ef81c7ed0 feat(workplan): close CUST-WP-0068-T07 — binding gap repaired and orphans ruled
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
The fleet-wide re-sync took unbacked workplans from 265 to 29. ADR-010's orphan
rules applied to the remainder: all 29 are closed, none is an ADR-001 violation,
and all are retained as provenance under the "closed hub-first records" rule.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 23:23:55 +02:00
codex
9f60894df8 feat(workplan): CUST-WP-0068 — binding re-sync clears 236 apparent orphans
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Fleet-wide re-sync across 120 repositories: 1075 bindings sent, 1015 written,
workplans recording no backing file fell from 265 to 29. ADR-010 predicted this
as the "broken links" class and it was 89% of the apparent orphans.

The 29 remaining are all closed: 23 finished, 6 archived, none open.

Corrects T09's scope: the prefix migration left 4 orphaned rows, not 26. The
other 22 are still backed by the archived RAILIANCE-WP files that migration
deliberately did not rename. The overstatement came from counting rows by slug
prefix rather than by whether a file backs them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 23:20:16 +02:00
codex
2edde0edf9 feat(workplan): widen CUST-WP-0068-T09 to every stale hub row
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
An attempt to purge stale task rows established that the hub has no hard-delete
for work records at all: DELETE /tasks/{id} is cancel_task, DELETE
/workstreams/{id} is 410 Gone, and no session.delete exists for either.
Re-derivation is not one removal option among several, it is the only one
permitted — a deliberate property, since a read model that cannot drop a record
except by re-deriving cannot be quietly edited into disagreeing with its source.

Scope is now 26 workplan rows plus 305 task rows across 44 workplans, of which
only 9 show open. All wait on ADR-012's per-repository reset.

No records were mutated: eight cancel calls hit STATE-WP-0080 tasks that were
already cancel.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 23:08:04 +02:00
codex
6629212985 feat(workplan): record the RAILIANCE-WP orphan debt as CUST-WP-0068-T09
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Migrating active workplans off the retired family prefix left 26 hub rows with
no backing file. Accepted deliberately: the alternative was one repository
carrying two prefixes indefinitely.

Blocked on ADR-012 decision 7's per-repository reset — C-07 is not fixable and
hand-deleting hub rows is the direct central edit ADR-010 decision 6 forbids.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 23:00:47 +02:00
codex
0dfdb9b63f feat(workplan): record CUST-WP-0068 recovery outcome — 964 of 1075 records
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Central 670 -> 1018 workplans; cache-only gap 426 -> 111.

T06 was scoped as an identifier-migration decision and that framing was wrong.
Two defects did most of the blocking: 50 repositories carried retired
gitea-remote URLs on central so fix-consistency could not match them, and the
registrar was blind to records that had an identifier but were absent from the
hub. Both were masked by a generic error whose real message sat in a child
process's stderr.

Also records the repo-wide re-key that severed eight working identifiers on
kaizen-agentic, and the rule now enforced in code to prevent it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 20:28:17 +02:00
codex
b422a615b6 feat(workplan): CUST-WP-0068-T07 binding order fixed and 63/73 explained
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
The registrar now binds workplan files in the same pass as minting, verified
end to end. The unbound remainder is explained: those identifiers are the
cache-only records this workplan exists to recover, so the count is a progress
indicator rather than a fault.

Remaining under T07: re-sync fleet-wide, re-measure the 278, then disposition
whatever is genuinely orphaned.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 15:39:37 +02:00
codex
262ac4a6bb fix(workplan): rescope CUST-WP-0068-T07 — the orphan count rests on a broken field
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
backing_filename is written only by the bindings sync, which fix-consistency
runs before the registrar mints the UUID. Newly registered workplans therefore
record no backing file. Reproduced on CUST-WP-0068 itself.

278 of 800 workplans on central record no backing file, which is what ADR-010
predicted as the "broken links" class. The 23 cache-only orphans were counted
with the same field, so that number is an investigation starting point rather
than a work list.

T07 now repairs the ordering and re-measures before dispositioning anything.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 15:24:14 +02:00
repo-manager
b436c44653 chore(registrar): assign State Hub identifiers
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
2026-08-25 15:19:05 +02:00
codex
bccf2a950f feat(workplan): open CUST-WP-0068 for cache-only work-record recovery
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Promotes the remainder of CUST-WP-0067-T10. 297 workplans and their tasks
still exist only in the retired local hub, which is why its database cannot be
discarded.

Eight tasks covering the registrar's self-defeating precondition, per-repo
unblocking, six non-conforming identifiers, clay-borg's 50 unparseable
workplans, the 176 with non-empty projections, the identifier ruling that
overlaps RMGR-WP-0005, 23 orphans, and final convergence.

Carries forward a correction: ten of sixteen records flagged as
non-conforming are ADHOC-YYYY-MM-DD, which is the documented convention. The
classifier's pattern was wrong, not the files.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 15:15:31 +02:00