feat(patcher): PatcherContext + PatchConversation + tmbx CLI (closes #117)#119
Open
hugolytics wants to merge 25 commits into
Open
feat(patcher): PatcherContext + PatchConversation + tmbx CLI (closes #117)#119hugolytics wants to merge 25 commits into
hugolytics wants to merge 25 commits into
Conversation
- Added a new implementation plan for aligning VS Code Slack bot debug configurations with the Graphiti+Neo4j stack. - Created a new Docker Compose file to define the necessary services including `calendar-mcp`, `neo4j`, and `graphiti-mcp`. - Introduced a script to manage the local debug infrastructure for the Slack bot. - Developed a new module for shared durable constraint memory contract. - Added VS Code tasks for starting the development server. - Implemented unit tests for the Graphiti constraint memory client and the VS Code debug stack.
…p_target/work_window
…ter 3 session appearances
…pening hours duplicate
…nical routine constraints Adds one-time migration script that sets frame_slot, is_startup_prefetch, and aspect_id in the hints.aspect_classification JSON for existing PROFILE/ DATESPAN constraints so the scheduler treats them as protected daily anchors. Ran against live DB — updated 45 rows. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Covers PatcherContext, PatchConversation, TimeboxPatcher refactor, and fateforger patch CLI. Refs #117. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PatcherContext/ErrorFeedback/PatchConversation, TimeboxPatcher refactor, and fateforger patch REPL CLI. Refs #117. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tion for multi-turn retries Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… minor cleanup Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…v template Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Summary
_PATCHER_SYSTEM_PROMPT/_build_contextwithPatcherContextPydantic model —system_prompt()is cacheable per stage,user_message_text()is rebuilt per callErrorFeedbackmodel so the LLM gets all three states (original plan, attempted patch, partial result) on retry — it can patch-the-patch or rewrite from scratchPatchConversationfor caller-owned multi-turn history; retries append to conversation rather than rebuilding a monolithic context stringTimeboxPatcherto own the retry loop using both; deletes dead_format_actions,_build_context,_to_log_stringtmbxREPL CLI (load / patch / validate / submit / show / reset / quit) viafateforger.cli.patch; thin orchestrator — no LLM calls, no retry logic, no prompt stringsTest Plan
pytest tests/unit/test_patcher_context.py— 23 tests for ErrorFeedback, PatcherContext, PatchConversationpytest tests/unit/test_patching.py— existing + 3 new tests verify PatcherContext delegation and multi-turn retrypytest tests/unit/test_patch_cli.py— 6 tests for PatchSessionpytest tests/unit/ -q— 1023 passed, 2 pre-existing failures (unrelated to this PR, in test_timeboxing_session_init_order and test_timeboxing_stage_actions)tmbx --helpshows expected usage after installArchitecture note
The CLI is deliberately thin: it holds
PatchConversation, callsTimeboxPatcher.apply_patch(), and delegates everything else. The agent re-implementation (separate epic) will compose these same components programmatically.🤖 Generated with Claude Code