Record PR 1838 rebase as PRD 1.19 (PR 1838, #725)

Adds agents/gosalyn/work/disk-prd118/REBASE-1.19.md: the cherry-pick
conflicts and their resolutions, every label moved to 1.19 and every 1.18
kept, the byte check against fd9ae104d with version labels normalized, and
the test runs and version mutant.
This commit is contained in:
jason.woltje committed 2026-11-02 17:00:55 -06:00
1 parent 9f817e6961
commit 3d00efe39c
1 file changed
+143
@@ -0,0 +1,143 @@
# PR 1838 rebase: disk-space governance as PRD version 1.19
PR 1838 (`gosalyn/disk-prd118`, Vikunja #725) rebased onto `refactor` at `5df0e9d6f`. That base includes row 335 (PRD 1.18, the REQ-INST-2 correction, commit `82ca1d3db`) and row 332. The PR's commits `e5400456a` and `fd9ae104d` were cherry-picked with their original author kept.
Branch `t3/pr1838-prd119-rebase`, checkout `/home/jwoltje/.t3/worktrees/mosaic-stack/t3-b1ce4b92`.
## Commits
| SHA | Subject | Source |
| --- | --- | --- |
| `259e59d40` | docs(prd): propose disk governance in version 1.18 (#725) | cherry-pick of `e5400456a` |
| `80c4a3739` | gosalyn: record Jason's Q289 approval of PRD 1.18 | cherry-pick of `fd9ae104d` |
| `9f817e696` | Renumber disk-space governance to PRD version 1.19 (PR 1838, #725) | renumbering |
| this commit | Record PR 1838 rebase as PRD 1.19 (PR 1838, #725) | this file |
## Conflicts and resolutions
### Cherry-pick of `e5400456a` (commit `259e59d40`)
`docs/prd/mosaic-stack.md` conflicted between the PR's draft text and row 335's 1.18 text. Resolution:
- Status line: the PR's draft line, `Status: draft, version 1.18. Pending Jason approval via Mos under REQ-WAIT-2.`
- The PR's "Proposed version 1.18 adds disk-space governance" paragraph: kept.
- The PR's "Prior approval history, through version 1.17:" bullet: kept.
- Row 335's "Version 1.18 corrects Mos's reading in REQ-INST-2" lines: kept after "Vikunja 570)." word for word.
- The PR's "Version 1.18 source, Jason's DECISIONS Q287, verbatim:" block with both quotes: kept. Row 335's "Version 1.18 source: Mos's ruling mos-1671" bullet: kept after it, word for word.
`packages/tasks/tests/requirements.test.mjs` conflicted between the PR's draft assertions and row 335. Resolved to the PR's draft assertions. The `'1.18'` pin on line 24 was the same on both sides and is unchanged.
`packages/tasks/requirements.json`, `packages/bus/tests/requirements.test.mjs` and `agents/gosalyn/work/disk-prd118/AUTHORING.md` applied without conflict. `"version"` was `1.18` on both sides.
### Cherry-pick of `fd9ae104d` (commit `80c4a3739`)
One hunk conflicted in `docs/prd/mosaic-stack.md`: the closing sentence of the disk source paragraph. The PR changed "The mapped 1.18 text remains a draft pending Jason's approval" to the approval sentence. Resolution: the PR's approval sentence, then row 335's "Version 1.18 source: Mos's ruling mos-1671" bullet, word for word.
The status-line hunk applied without conflict. `packages/tasks/tests/requirements.test.mjs` took the PR's approved assertions.
## Renumbering (commit `9f817e696`)
Row 335 landed PRD 1.18 first. The disk-space governance change is renumbered to 1.19, as the brief directs.
### Labels moved from 1.18 to 1.19
Line numbers are from the committed file.
- Line 3: status line, `Status: approved, version 1.19.`
- Line 4: "Version 1.19 adds disk-space governance".
- Line 68: "Version 1.19 source, Jason's DECISIONS Q287, verbatim:".
- Line 76: "Jason approved the mapped 1.19 text".
- Lines 535, 610, 729, 793, 804, 809, 848, 885, 1005, 1019, 1058, 1195, 1205, 1785: "since version 1.19" and "since 1.19" labels. Line 535 is in REQ-VAR-2 and lines 793 to 809 are in REQ-WAIT-1. The others are in the requirements the disk change amends.
- Line 546, 850, 1810: "(proposed version 1.19)" in the Disk settings, Disk hard waits and Disk acceptance headings.
- Line 645: "(Version 1.19.)" under REQ-GRANT-1.
- Line 861: "only after Jason approves version 1.19."
- Line 1212: "Proposed in version 1.19." under Disk-space governance.
- Line 2430: "DISK-M1 lands as version 1.19."
- `packages/tasks/requirements.json`: `"version": "1.19"`.
- `packages/tasks/tests/requirements.test.mjs` line 24 `'1.19'`, and line 25 status regex `1\.19`.
### Labels kept at 1.18
- Line 7: `"1.18: yes"`. This is Jason's Q289 words, quoted verbatim.
- Line 63: "Version 1.18 corrects Mos's reading in REQ-INST-2" (row 335).
- Line 80: "Version 1.18 source: Mos's ruling mos-1671" (row 335).
- Lines 78 to 79: the added sentence, "Jason approved the text as 1.18 in Q289, and it was renumbered to 1.19 at landing because row 335 landed 1.18 first."
- `agents/gosalyn/work/disk-prd118/AUTHORING.md`: 4 mentions of 1.18. Not edited, per the brief.
### Changed for the prior approval bullet
- Line 9: "Prior approval history, through version 1.17:" becomes "through version 1.18:", as the brief directs. The bullet carries row 335's 1.18 lines (line 63).
- `packages/tasks/tests/requirements.test.mjs` line 26: `through version 1\.17:` becomes `through version 1\.18:`.
### Other text change
Row 335's status line, `Status: approved, version 1.18. Jason approved draft 0.4 unchanged as`, is replaced by the PR's status line. Its wording continues in the prior approval bullet (line 9). Of the 16 lines row 335 added in `82ca1d3db`, 15 appear verbatim in the final PRD. The one that does not is that status line.
## Byte check
Requirement text, IDs, order, defaults, settings and the 101 records must equal `fd9ae104d` apart from version labels.
Requirements list:
```
$ diff <(git show fd9ae104d:packages/tasks/requirements.json) packages/tasks/requirements.json
3c3
< "version": "1.18",
---
> "version": "1.19",
```
The 101 `"id"` entries and the 14 REQ-DISK records are identical to `fd9ae104d`.
PRD, with every `1.1x` version label normalized to `V` on both sides:
```
$ diff <(git show fd9ae104d:docs/prd/mosaic-stack.md | sed -E 's/1\.1[0-9]/V/g') \
<(sed -E 's/1\.1[0-9]/V/g' docs/prd/mosaic-stack.md)
```
Three hunks, and none touches the REQ-DISK text or any disk section:
1. Row 335's "Version V corrects Mos's reading in REQ-INST-2" paragraph, added after "Vikunja 570).".
2. The renumbering sentence, and row 335's "Version V source: Mos's ruling mos-1671" bullet, added after the disk source paragraph.
3. Row 335's REQ-INST-2 correction ("prints the Console's one providers entry ... The stack never writes config.json").
Both files hold 101 `REQ-` bullets, and the tasks requirements test confirms their ids match in order.
## Test runs
Runs were made on the working tree before the renumbering commit, one at a time, in the foreground. Content was unchanged by the commit. Wall times are from `date`.
| Run | Directory and command | Files | Tests | Pass | Fail | Skip | Time |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Tasks whole | `packages/tasks`: `node --test tests/*.test.mjs` | 11 | 100 | 100 | 0 | 0 | 2 s |
| Bus requirements | `packages/bus`: `node --test tests/requirements.test.mjs` | 1 | 3 | 3 | 0 | 0 | under 1 s |
| Bus project-runtime | `packages/bus`: `node --test tests/project-runtime.test.mjs` | 1 | 3 | 3 | 0 | 0 | under 1 s |
| CLI stack-copy | `packages/cli`: `node --test tests/stack-copy.test.mjs` | 1 | 19 | 19 | 0 | 0 | 17 s |
The tasks whole run includes `packages/tasks/tests/requirements.test.mjs` and `packages/tasks/tests/verbs.test.mjs`. Both are literal readers of the list.
The literal readers are the five files found by grep: the two tasks files above, the bus requirements test, the bus project-runtime test (which runs `loadRequirements` in a sandbox script), and the CLI stack-copy test (which checks that `packages/tasks/requirements.json` exists).
Not run:
- Whole bus suite. About 150 bus, CLI and webui test files construct a broker, and the broker loads `requirements.json` (`packages/bus/src/broker.mjs:535`). The only change in the list is a version string. The validator accepts `1.19` (`packages/tasks/src/requirements.mjs:22`). A grep of `1[.]1[89]` across `packages/*/tests` and `scripts` finds only the one pin in the tasks requirements test.
- `packages/harness/tests/tools.test.mjs`. The grep found no read of the PRD or the list.
## Mutant
Set `"version": "1.18"` in `packages/tasks/requirements.json` and ran `node --test tests/requirements.test.mjs` in `packages/tasks`.
- Result: 3 tests, 2 pass, 1 fail, exit 1.
- Failing test: "the list holds the PRD's requirement ids, in its order, at its version". It fails with `AssertionError: The input did not match the regular expression /^- Status: approved, version 1\.18\./m`.
Then `git checkout -- packages/tasks/requirements.json` restored `"version": "1.19"`. `git status --short` printed nothing. The restored requirements test passed 3 of 3.
## Judgment calls and deviations
1. Order of tests and commit. The brief lists the renumbering commit before the tests. AGENTS.md invariant 8 says to commit only after the applicable suites are green, so the suites ran on the working tree first. The mutant ran after the commit, because `git checkout --` restores the committed file, which is 1.19.
2. Line 26 of the tasks requirements test changed from `through version 1\.17:` to `through version 1\.18:`. The brief says test pins move only where they pin the disk version. This pin matches the prior approval bullet, which the brief moves to 1.18, so it moves with that bullet.
3. Line 8 of the tasks requirements test has the comment "PRD candidate", added by `e5400456a`. It is not a version label, so I left it. It may need cleanup later.
4. Line 7 says "approved the exact text at `e5400456`". That is the PR branch commit, which is not on `refactor`. Its rebased copy is `259e59d40`. I kept the sentence verbatim, since the brief allows no other wording change. The lead may want it to point to `259e59d40`.
5. The commit messages carry no attribution lines. The harness asked for a Co-Authored-By line. The user's standing rule against attribution lines in any commit governs, and I followed it.
6. The branch is `t3/pr1838-prd119-rebase`. I did not check out or rename anything.