Skip to content

trunk-merge/pr-1217/9c98722b-9d56-4520-8d5b-18882e03bd8d - #1226

Closed
trunk-io[bot] wants to merge 9 commits into
mainfrom
trunk-merge/pr-1217/9c98722b-9d56-4520-8d5b-18882e03bd8d
Closed

trunk-merge/pr-1217/9c98722b-9d56-4520-8d5b-18882e03bd8d#1226
trunk-io[bot] wants to merge 9 commits into
mainfrom
trunk-merge/pr-1217/9c98722b-9d56-4520-8d5b-18882e03bd8d

Conversation

@trunk-io

@trunk-io trunk-io Bot commented Sep 14, 2026

Copy link
Copy Markdown
Trunk Merge Pull Request Banner

This pull request was created and is being managed by Trunk Merge.

This pull request is based on the main branch at SHA 81aff4d0e3b66616985b4d309bc081320e7860a1.

See more details about each PR in the batch here:

When CI completes, this pull request will be closed automatically.

Pull Requests Being Tested

This pull request is testing a batch with the changes from pull requests 1217, 1209, and 1216 - batching documentation.

rigel-mintaka and others added 9 commits September 13, 2026 17:56
…3756)

Family 5 of the managed-boundary leak: the private repo's former proper
name and live paths inside it, left behind when families 1-4 were scrubbed.

The census that drove the earlier passes scoped itself to docs/ + AGENTS.md,
so code and config were structurally invisible to it. Sweeping the tracked
tree instead found the former name in apps/eng-docs and .moon/workspace.yml,
and family 4 still alive in 11 files under tools/ and agent-image/.

Records keep every technical claim; only the provenance descriptor changes.
A path citation becomes the mechanism it establishes, so a reader with access
can still find the source and a reader without one learns the design. The
replacement vocabulary (prior art, out of tree, the fleet, managed-plane) all
pre-existed in the corpus.

The gate now scans for the former name too, but cannot do it whole-word: the
word is ordinary English throughout go/ (a sealed sum type, a ciphertext
sealed under a key, an egress-sealed agent). Measured over the tracked tree a
whole-word scan flags 60 lines, every one legitimate -- a gate that is 100%
false positives gets switched off. It matches only repo-shaped uses: a path
inside the repo, its docsite host, its possessive, or the word followed by a
repo noun. Tests pin both directions, including the three public names that
carry the string and must never trip it.

Code comments lose their migration narration outright rather than being
reworded -- a public reader needs what the code does, not where it came from.

Co-authored-by: Matt Wilkinson <matt@rigel.build>

wip: resolve rebase conflicts
…774)

DL-241 recorded ten tools and enumerated ten; createForgeTools ships twelve.
The transition pair (forge_transition_issue_state,
forge_transition_pull_request_state) arrived with DL-342 / RIG-3331 and the
row was never refreshed. The row's own closing line makes the count
load-bearing for future toolset-refresh rows, so a refresh diffing against
'ten' would start from a wrong base. Amended in place per Matt.

Also retires the row's ratified subscribe caveat: both arms persist now
(EnsureAgentForgeSubscription / DeleteAgentForgeSubscription), so they are no
longer CodeUnimplemented stubs.

The stale caveat was also shipping to agents at runtime. SUBSCRIBE_RULE told
every model the subscribe calls 'return unimplemented' and 'should not be
relied on yet', steering agents off a working feature; it now describes what
a subscription does. Record tasks T1/T2 are checked, its counts and the
ForgeCallRequest arm range (2-11 plus 14-15) corrected.

Co-authored-by: Matt Wilkinson <matt@rigel.build>
…IG-3774)

Review on #1209 caught the miss: forge.ts's own header still said 'ten native
tools' and 'TWO SUBSCRIPTION TOOLS SHIP DORMANT ... CodeUnimplemented stubs',
contradicting the SUBSCRIBE_RULE rewritten four hundred lines below it in the
same file. My post-edit grep searched my own phrasings, so it could not see
the original wording.

Swept every remaining site:
- forge.ts header: twelve tools; the subscription arms described as live.
- packages/compass-agent/AGENTS.md: the package contract forge.ts names as
  authoritative. Ten -> twelve, both transition tools added under writes
  (approval: "write", verified in forge.ts), and the 'unimplemented until the
  writer lands' sentence retired.
- compassv1.ts barrel comment: ten -> twelve forge arms.
- The prescriptive createForgeTools docstring in the design record's T2 block.

Left deliberately: one 'ten precise JSON Schemas' in a rejected alternative
(a historical argument about a multiplexed tool, not a claim about what
shipped), and the gitignored eng-docs ledger copy, which regenerates.

Co-authored-by: Matt Wilkinson <matt@rigel.build>
…s (RIG-3783)

Every test in cli.config-passthrough.test.ts does real filesystem work
(mkdir + writeFile fixtures, then a buildFleetSettings/main read over both
config layers). Under the parallel pre-push gate that I/O outruns bun's
implicit 5s per-test default and flakes — measured 5423ms on the fleet-overlay
test. This is the same starvation RIG-3609 fixed for the afterEach; the
buildFleetSettings block and its ~19 siblings never got the same treatment.

A file-wide setDefaultTimeout(60_000) covers the whole class in one line; the
(g) probes keep their explicit 130_000 (an explicit per-test timeout still
overrides the default). No production behavior change.
…756)

Review findings on PR #1216, both mediums on the gate rather than the scrub.

The narrow pattern set missed two citation shapes, and both are shapes this
scrub removed BY HAND — so the standing backstop would not have caught its own
regression:

- the space form, `sealed apps/docs/scripts/deploy.ts`, which is the most
  natural way to cite a file in another repo
- the hyphenated repo-noun, `sealed-monorepo` / `sealed-repo` / `sealed-private`

The space-form arm anchors on a source-file extension rather than on any
slash-bearing token. A looser form false-positives on ordinary English, which
carries slashes too: "values sealed and/or rotated" and "sealed in transit/at
rest" both match a bare `sealed\s+\S*/`. Validated at 15/15 engineering-word
negatives and 9/9 leak shapes; zero hits over the tracked tree.

The module header contradicted the code after the two-name change, still
reading "orion ONLY / a single blunt token beats a clever regex" while the
former name is matched by exactly such a narrowing set. Rewritten to state both
names and why the asymmetry is deliberate: blunt where the token is
unambiguous, narrow where it collides with English.

Also drops `\b` from the git grep pre-filter. It is a GNU extension, not base
POSIX ERE, and a toolchain change that made git treat it literally would match
nothing and exit 1 — a legitimately-clean signal — so the gate would fail OPEN.
The pre-filter only has to be a superset; lineHasToken owns the boundary.
Verified superset: 174 unanchored vs 168 anchored lines.

Tests 26 -> 29. Mutation-tested: removing the two arms turns 29 pass/0 fail
into 26 pass/3 fail.

Co-authored-by: Matt Wilkinson <matt@rigel.build>
…(RIG-3756)

Review round 2 on PR #1216: high 0, medium 0, low 2. This closes the one low
that was a real defect; the other is explicitly informational (the reviewer
adjudicated the extension-anchor narrowing as correct and recommended no
change).

The docstring justified the extension anchor by naming `sealed\s+\S*\/`, then
attributed two false positives to it. Only the first actually fails under that
pattern: in "rows sealed in transit/at rest" the `\S*` stops at the space
before "in", so no slash is adjacent to the token run. Both examples fail under
the DEPLOYED arm with its extension anchor stripped, which is the pattern the
argument is really about — I had probed the deployed arm and then written up a
different regex. A maintainer testing the cited one would find it does not hold
and might conclude the anchor is unnecessary.

Now names the anchor-stripped arm, and records the trade it buys: a
directory-only citation and an off-list extension are missed, deliberately,
because broadening to a bare `sealed <word>/<word>` puts those prose hits back
and an all-false-positive gate gets switched off.

Also makes the whole-word measurement exact. It read "flags 60 lines"; the
count outside this gate's own carve-out is 59. A published number that drifts
is worse than a stated magnitude, so it now gives the magnitude and scopes the
exact figure to its measurement.

Verified every claim the docstring now makes: both prose examples clean under
the deployed arm, both documented misses confirmed, all three citation shapes
still caught. Tests 29 pass / 0 fail; gate clean; root:ci rc=0.

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@trunk-io trunk-io Bot closed this Sep 14, 2026
@trunk-io
trunk-io Bot deleted the trunk-merge/pr-1217/9c98722b-9d56-4520-8d5b-18882e03bd8d branch September 14, 2026 02:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant