Skip to content

feat(gadgets): require PR for implementation agent and refactor file editing#85

Merged
zbigniewsobiecki merged 2 commits intodevfrom
feat/session-state-pr-requirement
Jan 18, 2026
Merged

feat(gadgets): require PR for implementation agent and refactor file editing#85
zbigniewsobiecki merged 2 commits intodevfrom
feat/session-state-pr-requirement

Conversation

@zbigniewsobiecki
Copy link
Copy Markdown
Member

Summary

  • Add session state tracking to enforce PR creation for implementation agent
  • Refactor EditFile into three focused gadgets: FileSearchAndReplace, FileInsertContent, FileRemoveContent
  • Move shared matcher logic to src/gadgets/shared/
  • Update WriteFile with improved validation and read tracking
  • Streamline efficiency rules and planning prompts

Session State Feature

The implementation agent was able to call Finish and claim success without actually creating a PR. This change:

  • Introduces src/gadgets/sessionState.ts to track agent type and PR creation status
  • Finish gadget now throws an error if implementation agent hasn't created a PR
  • Other agents (briefing, planning, review, debug) are not affected

File Editing Refactor

Replaces the monolithic EditFile gadget with three focused gadgets:

  • FileSearchAndReplace: Targeted search and replace operations
  • FileInsertContent: Insert content at specific line numbers
  • FileRemoveContent: Remove content by line range or pattern

Shared utilities moved to src/gadgets/shared/:

  • matcher.ts: Common matching utilities
  • types.ts: Shared type definitions
  • diagnostics.ts: Error diagnostics helpers
  • pathValidation.ts: Path validation utilities

Test Plan

  • npm run typecheck passes
  • npm test passes (120 tests)
  • Pre-commit and pre-push hooks pass

🤖 Generated with Claude Code

feat(gadgets): add Finish gadget for early agent termination (#83)
…editing

Major changes:
- Add session state tracking to enforce PR creation for implementation agent
- Refactor EditFile into three focused gadgets: FileSearchAndReplace,
  FileInsertContent, FileRemoveContent
- Move shared matcher logic to src/gadgets/shared/
- Add path validation and diagnostic utilities
- Update WriteFile with improved validation and read tracking
- Streamline efficiency rules and planning prompts

Session state feature:
- New sessionState.ts module tracks agent type and PR creation
- Finish gadget now throws error if implementation agent hasn't created PR
- Prevents incomplete work from being reported as successful

File editing refactor:
- FileSearchAndReplace: targeted search and replace operations
- FileInsertContent: insert content at specific line numbers
- FileRemoveContent: remove content by line range or pattern
- Shared matcher.ts provides common matching utilities
- Better error messages and diagnostics
@zbigniewsobiecki zbigniewsobiecki merged commit 234fe9e into dev Jan 18, 2026
3 checks passed
@zbigniewsobiecki zbigniewsobiecki deleted the feat/session-state-pr-requirement branch January 18, 2026 20:23
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