[Spec 83] rev. 12: retract the FR-3 finding - #101
Merged
Conversation
…unchanged builder-bugfix-97 investigated #97, measured it against the live stream, and reported that the prescribed fix was a no-op before writing any code. It is right and I re-measured to confirm. Rev. 4 measured 13 builders all returning parentId workspace:<path>, zero with an architect parent, and concluded FR-3 was unsatisfiable. The measurement was taken when that workspace had no live builders, so every row was an orphaned worktree, and a missing global.db row read as a missing feature. Re-measured with live builders present: 15 builders, 2 parented to architect:<path>#uiv2, 13 to the workspace. The 2 are the only rows in global.db.builders. v2-projection.ts:95 joins getBuilders().spawnedByArchitect, not discoverBuilders, so the null in discoverBuilders never reaches the wire. FR-3 works and goal 4 now lists it as satisfied. D13's instruction to the client does not change: render the parentId the wire sends, never infer one. Only the justification was wrong. The never-infer rule survives intact and is now the more important half - name-matching those 13 orphans to uiv2 would have produced a plausible tree and buried the real defect. That defect is filed as #100: a worktree with no global.db row can be seen by every surface and removed by none, since afx cleanup reports Builder not found and git worktree remove is forbidden. #97 is closed as already-working. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem. Spec 83 recorded FR-3 as unsatisfiable and filed #97 against
discoverBuilders. Both were wrong. FR-3 works.Root cause. Rev. 4 measured
GET /v2/eventsand got 13 builders, every one withparentId: "workspace:<path>", zero with an architect parent. That measurement was taken when the workspace had no live builders, so all 13 rows were orphaned worktrees. A missingglobal.dbrow read as a missing feature.Re-measured with live builders present:
The 2 are the only rows in
global.db.buildersfor that workspace.v2-projection.ts:95joinsgetBuilders().spawnedByArchitect, notdiscoverBuilders, so the hardcoded null atoverview.ts:602, 662, 697never reaches the wire.Fix. Goal 4 lists FR-3 as satisfied. The evidence table retracts finding 4. D13 keeps its instruction and replaces its justification.
The client behaviour does not change. D13 still says: render the
parentIdthe wire sends, never infer one. Both parent shapes are real and both appear in one tree. The never-infer rule is now the more important half — name-matching those 13 orphans touiv2would have produced a plausible tree and buried the real defect.What was actually there is filed as #100: a worktree with no
global.dbrow can be seen by every surface and removed by none.afx cleanup -p 78returnsBuilder not found for project, andgit worktree removeis forbidden by the irreversible-acts rule. 13 have accumulated in this workspace and nothing prunes them.Credit.
builder-bugfix-97was spawned to fix #97, investigated the stated cause, measured it against the live stream, and reported that the prescribed fix was a no-op — before writing any code. #97 is closed as already-working with no PR.Testing
v2-projection.ts:95joinsgetBuilders(), sodiscoverBuilders' null is not on the path.builder-spir-83needs no rework.🤖 Generated with Claude Code