Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
schema_version: 1
id: "iss-2610151050383937"
slug: "two-brief-chapters-share-number-37"
severity: "minor"
category: "inconsistency"
source: "agent-observation"
found_during: "v0.15.0 run 2026-10-15"
origin: researcher-authored
production_mode: hand-written
found_at: ".abcd/development/brief/04-surfaces/README.md"
remedy: "Renumber one of 37-embargo.md and 37-reserve.md (the later to land takes the next free number), update its README row, the release-gate manifest's briefDocs and every link to it, and have the brief-register test refuse two chapters with one number."
---

Two brief surface chapters both carry the number 37: 04-surfaces/37-embargo.md and 04-surfaces/37-reserve.md, each minted on its own branch, and the chapter table in 04-surfaces/README.md lists two rows numbered 37. Nothing refused it, because each branch numbered its chapter after the highest on its own base.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
schema_version: 1
id: "iss-2610151050390126"
slug: "the-detector-wiring-check-only-matches"
severity: "minor"
category: "tech-debt"
source: "agent-observation"
found_during: "v0.15.0 run 2026-10-15"
origin: researcher-authored
production_mode: hand-written
found_at: "internal/core/lint"
remedy: "Run the release-gate detector's fill over the committed manifest in a test (through node where it is available, or by porting the substitution) and assert the rendered context names every roster entry with no placeholder left, instead of asserting that two substrings occur in the script's source."
---

The check that the release-gate detector fills its ${commands} and ${agents} placeholders only asserts that two substrings occur in brief-surface-crosscheck.js. With the substitution code commented out the check still passes, so a detector that sends its checkers an unfilled prompt would ship green (review note on chore/merge-hotspots, 2026-10-15).
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
schema_version: 1
id: "iss-2610151050395768"
slug: "the-surfaces-register-is-the-last-shared"
severity: "minor"
category: "tech-debt"
source: "agent-observation"
found_during: "v0.15.0 run 2026-10-15"
origin: researcher-authored
production_mode: hand-written
found_at: ".abcd/development/brief/04-surfaces/README.md"
remedy: "Make the surfaces register's chapter table and its two inline verb lists one entry per line in a stable order (by chapter name, as the release-gate manifest now is), or generate them from the chapter files, so two branches that each add a surface edit different lines."
---

After the release-gate manifest's derived values stop being stored (the chore/merge-hotspots branch, under review on 2026-10-15), the brief's 04-surfaces/README.md register is the main remaining line every surface-adding branch edits: its chapter table ends on the newest number and two of its rows are single-line inline lists of verbs, so two such branches conflict there. Measured on the ten surface-adding pull requests of 2026-09-24 to 2026-10-15: the table end in 8, the agents-and-hosts row in 5, the one-file-per-verb list in 5.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
schema_version: 1
id: "iss-2610151050403016"
slug: "the-embargo-storepath-package-has-no"
severity: "nitpick"
category: "tech-debt"
source: "agent-observation"
found_during: "v0.15.0 run 2026-10-15"
origin: researcher-authored
production_mode: hand-written
found_at: "internal/core/peers"
remedy: "Add a storepath test covering a repository with a root commit, one without, and a SHA-256 repository, so the path rule is pinned where it now lives rather than only through embargo's and peers' tests."
---

The embargo store's path moved into a leaf package, internal/core/embargo/storepath, to break an import cycle when the embargo branch merged main (2026-10-15, PR #1015). The package has no test of its own; its rule is exercised only through the embargo and peers tests.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
schema_version: 1
id: "iss-2610151050411986"
slug: "the-plain-test-step-no-longer-pins-its"
severity: "minor"
category: "tech-debt"
source: "agent-observation"
found_during: "v0.15.0 run 2026-10-15"
origin: researcher-authored
production_mode: hand-written
found_at: "internal/core/lint"
remedy: "Have TestPlainTestStepRunsTheWholeModule refuse any word starting with - in the plain test step's command, so a -short or -run added to the required plain lane fails the test as the old exact match did."
---

After the CI speed lane (#1014) let the plain test step name its slowest packages first, the test that guards that step drops every word starting with - before comparing package sets. A plain step changed to go test -short -run=TestA ... ./... now passes both TestMacOSLegRunsItsSuiteOnlyWhereItLands and TestPlainTestStepRunsTheWholeModule, where the old exact match refused it (review note, 2026-10-15).
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
schema_version: 1
id: "iss-2610151050413162"
slug: "the-raw-session-test-fails-when-no-pty"
severity: "minor"
category: "bug"
source: "agent-observation"
found_during: "v0.15.0 run 2026-10-15"
origin: researcher-authored
production_mode: hand-written
found_at: "internal/term"
remedy: "Skip TestRawSessionLeavesNothingBehind (and any sibling that opens /dev/ptmx) with a stated reason when the pseudo-terminal cannot be opened, as the ptytest helpers do, instead of failing the package."
---

TestRawSessionLeavesNothingBehind fails, rather than skips, when the machine cannot open a pseudo-terminal: a preflight on 2026-10-15 failed only on 'opening a pseudo-terminal: /dev/ptmx: device not configured' with 40 of 511 ptys in use, and the same test passed three times straight after. A transient pty failure therefore fails a whole preflight.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
schema_version: 1
id: "iss-2610151050427571"
slug: "a-worktree-cut-from-origin-main-tracks"
severity: "minor"
category: "process"
source: "agent-observation"
found_during: "v0.15.0 run 2026-10-15"
origin: researcher-authored
production_mode: hand-written
found_at: "worktrees cut from origin/main"
remedy: "Document in the CONCURRENCY rules that a lane worktree is made with git worktree add --no-track -b <name> <path> origin/main (or its upstream unset), and have every push abcd or a runbook makes name an explicit refspec to the branch's own name."
---

A lane worktree made with git worktree add -b <name> <path> origin/main tracks origin/main, so a bare git push from it aims at main. On 2026-10-15 a post-preflight push from such a branch was refused only by push.default=simple, because the names differ; under push.default=upstream it would have pushed a feature branch's commits to main.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ found_during: "the cancel policy's speed lane for the ubuntu check leg, 2026-10-
origin: researcher-authored
production_mode: hand-written
found_at: ".github/workflows/ci.yml"
remedy: "Cut the ubuntu check job's wall time by at least five minutes without raising its timeout or changing a required check or the step split: name the slowest packages first in both test steps, share the live-repository fixtures the heaviest race tests rebuild, and make the run lock's retry delay injectable for the take-back test, then confirm from the job's step times on the merge queue."
remedy: "Cut the ubuntu check job's wall time by at least five minutes without raising its timeout or changing a required check or the step split: name the slowest packages first in both test steps, share the live-repository fixtures the heaviest race tests rebuild, and make the run lock's wait (lockTimeout) shortenable from tests for the series back-off test, then confirm from the job's step times on the merge queue."
resolution: "Fixed by the CI speed lane (#1014, merge 058ba43b3). Its merge-queue run confirmed it: the ubuntu check job took 15m38s against its 30-minute limit (race step 10m39s, from about 21), and the macOS check job 30m09s against 45 (from 40 to 45). No timeout, required check or step split changed."
impact: internal
resolved_by:
commit: "058ba43b3"
---

The ubuntu leg of ci.yml's check job (timeout-minutes 30) now runs at its limit for every pull request, and the cancel policy of 2026-09-28 has fired: a check cancelled at the cap twice for the same reason stops that pull request and opens a speed lane. PR #1003 (feat/memory-recall-notes) was cancelled at 30 minutes twice: run 38676280619 attempt 2 spent 03:58:37-04:06:22 in Test (about 8 minutes) and was still in Test (race, internal) from 04:06:22 when it was cancelled at 04:27:48. PR #1008 passed in 25m40 only on a rerun after its first attempt was cancelled at 30m05, and the merge-queue entry for PR #976 (run 38680018438) was cancelled at 30 minutes too, with internal/core/implement/loop still running. On passing runs the race step took 16-18 minutes and the plain step 6-7; the race step's package times sum to about 3,500-3,750 seconds on the four-core runner, so it is bound by total CPU rather than by one package, and its heaviest packages are internal/core/lifeboat (578-594s), internal/core/reading (547-557s), internal/core/launch (357-365s) and internal/surface/cli (333-367s). iss-2610142326511964 covers the macOS leg's slowdown; this is the ubuntu leg. <!-- record-lint: forward-looking -->
Loading