Reject replace and empty-draft prefill outside the plain phase or after disposal, make replacement its own undo step instead of a merged seed edit, and decide the separator from detect-coordinate text so reference chips do not add a spurious newline. Extend the real SessionInput coverage and document selection replacement, guards, and undo semantics.
The vendor rescope check reads every tracked path through one git ls-files call; the default 1 MiB child-process buffer overflows on this checkout. Match the other repository-wide git readers at 16 MiB.
Add prefill(text, options) to the public InputActions and session-scope SessionInput faces. Empty or whitespace-only drafts and mode: 'replace' replace the draft; otherwise the API inserts at the caret in one undo step, with a configurable separator when the preceding character is non-whitespace. Return false for empty text, a changed revision, a locked submission, or a disposed session. Document the plugin-facing API in the package README, update existing action fixtures, and cover the behavior through the real SessionInput pipeline.
* fix(forge): make reference and worktree tests portable
* test(worktree): cover error and text cancellation reasons
* test(forge): brace void arrow bodies in the reference lookup spec
* test(ci): expect the joined version script path in the pre-merge check
---------
Co-authored-by: imccyu <[email protected]>
The scan now reads exactly the manifests the release tooling rewrites, names
every directory and file it cannot read, and refuses an empty corpus; the
command takes the root it checks so the exit code is tested, and the workflow
reports a crashed check as a warning in report mode.
Each step is a spawn whose stdio reaches the job log, the first failure stops
the list, and the script decides from CHECK_MODE whether to annotate as an
error or a warning, so the workflow only calls it.
The missing-script branch now fails in block mode instead of passing, the shell
block parses, the version walk refuses a directory it cannot read or one that
holds no manifest, the install is watched before anything else can throw, and a
spec runs `bash -n` over every Policy shell block.
`Policy / Pre-Merge Check` now runs `scripts/pre-merge-check.ts` under plain
Node and knows nothing else about the merged tree. That script installs the
dependencies, checks that every released manifest carries the root version
while the install runs, and builds the Host and Client contracts, reporting
which step failed.