(MOT-3874) feat(shell): post-write checks on coder writes - #415
Conversation
…writes
CoderConfig gains post_write_checks ({match_glob, command, timeout_ms},
default empty, hot-reloads like every coder knob): after a successful
coder::update-file / create-file / apply-patch write, each configured
check whose glob matches a written file's root-relative path runs ONCE
per call (deduplicated by command) via /bin/sh -c with the effective
root as cwd, and its bounded (4 KiB) output lands in the response's
top-level checks array. A failing, timing-out, or unrunnable check
never fails the edit — it is feedback for the caller to act on.
Config-sourced on purpose: workspace files must not choose commands.
Also promotes the fs_scope effective-root convention into
PathResolver::effective_root (context/worktree/checks now share it),
and both harness code prompts tell the model to read the checks array.
The code prompt's no-commit rule left isolated children's worktrees dirty, so clean-only removal kept them and the parent had nothing on wt/<name> to merge. A worktree spawn now appends an explicit commit instruction to the child's task — the sanctioned exception that makes the branch the handoff artifact.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
skill-check — worker0 verified, 32 skipped (no docs/).
Four for four. Nicely done. |
|
Consolidated into #423. |
feat(shell): post_write_checks — report-only diagnostics after coder writes
CoderConfig gains post_write_checks ({match_glob, command, timeout_ms},
default empty, hot-reloads like every coder knob): after a successful
coder::update-file / create-file / apply-patch write, each configured
check whose glob matches a written file's root-relative path runs ONCE
per call (deduplicated by command) via /bin/sh -c with the effective
root as cwd, and its bounded (4 KiB) output lands in the response's
top-level checks array. A failing, timing-out, or unrunnable check
never fails the edit — it is feedback for the caller to act on.
Config-sourced on purpose: workspace files must not choose commands.
Also promotes the fs_scope effective-root convention into
PathResolver::effective_root (context/worktree/checks now share it),
and both harness code prompts tell the model to read the checks array.
chore(shell): clippy — redundant closures in worktree handlers
fix(harness): worktree-isolated children are told to commit their work
The code prompt's no-commit rule left isolated children's worktrees
dirty, so clean-only removal kept them and the parent had nothing on
wt/ to merge. A worktree spawn now appends an explicit commit
instruction to the child's task — the sanctioned exception that makes
the branch the handoff artifact.
Fixes MOT-3874