Repository navigation
Keep workflow context out of skill-command expansion - #38
Merged
Merged
Conversation
Port denkhaus's leading-command behavior and regression cases from fabro-sh/fabro#784. Keep surrounding context outside expansion and allow generated input to bypass it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pebble treated slash tokens anywhere in input as skill commands: a prior-stage
/tmpmention could fail a turn, and a known skill could replace the authored task. Expand only a leading command after optional whitespace; later slash tokens remain literal arguments or prose.Add
CodingInput::with_context(before, after)so applications keep preambles, output contracts, and attachments outside authored-command expansion, pluswithout_skill_expansion()for generated input. Preserve unknown-leading-command errors, skill activation events, and background-agent notification protection. Document the intentional change to inline-command semantics.Ports the leading-command behavior and regression cases contributed by @denkhaus in fabro-sh/fabro#784. Related to #37; the native Petri handoff and integration regressions are in lithoscomputer/petri#118. This PR alone does not complete the Petri rollout. Fabro's public skills/lifecycle documentation still needs the corresponding semantic update.
Validation:
CARGO_INCREMENTAL=0 CARGO_PROFILE_DEV_DEBUG=0 mise run checkpassed, including 1,683 tests, documentation tests, Clippy, formatting, library feature checks, and workflow/whitespace checks. Smaller build artifacts were needed after the machine ran out of disk space; local server/terminal tests ran outside the restrictive sandbox. Nextest reported one skipped test and a leak warning on the passing, unrelatedflood_output_is_drained_and_bounded_even_without_a_live_readertest.New request-level regressions verify literal paths/failure echoes/known-skill mentions, context and image preservation with replacing templates, generated-input bypass, and ordinary follow-up prose. No paid model calls.