Skip to content

Feature hexsystemplan#210

Open
Diplow wants to merge 24 commits intodevelopfrom
feature-hexsystemplan
Open

Feature hexsystemplan#210
Diplow wants to merge 24 commits intodevelopfrom
feature-hexsystemplan

Conversation

@Diplow
Copy link
Owner

@Diplow Diplow commented Jan 20, 2026

No description provided.

Diplow and others added 3 commits January 20, 2026 14:27
Add new traversal subsystem that finds leaf tiles (tiles with no structural
children) in a hexagonal hierarchy. Supports depth-first traversal in
direction order (1-6), skipping composed children and hexplans.

Key features:
- getAllLeafTiles: Returns all leaves under a root coordinate
- getNextIncompleteLeaf: Finds first incomplete leaf given a completion set
- Handles meta-leaf pattern where tiles gain children between traversals

Part of run orchestration feature (Plan 1 of 5).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… orchestration

- Add parseAgentResponse utility to extract structured status from agent responses
- Update SYSTEM template with execution-instructions section and blockage context
- Remove orchestrator template - orchestration now handled at API layer
- Add wasBlocked/blockageReason fields to PromptData for resuming blocked runs
- Update tests and documentation

Plan 3 of run-orchestration feature.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add new _run-services subsystem to manage "run" objects that track
autonomous execution state of SYSTEM tiles. Includes database table,
repository, service, and 24 integration tests.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@vercel
Copy link

vercel bot commented Jan 20, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
hexframe Ready Ready Preview, Comment Jan 28, 2026 4:29pm

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 20, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Implements external orchestration pattern where each API call executes
one leaf tile and returns. Callers loop until isComplete is true.

- Add agentic.run tRPC mutation with tile type validation
- Add run MCP tool handler for agent access
- Integrate LeafTraversalService and RunService from domain layer
- Parse agent responses for completion/blockage status
- Include blockage context when resuming failed runs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add frontend integration for SYSTEM tile execution via the agentic.run
endpoint. SYSTEM tiles and custom type tiles now show a "Run" action
in the context menu that triggers execution.

Changes:
- Add useRun hook for managing run execution state and callbacks
- Add run-actions.ts builder for SYSTEM tile menu items
- Wire up onRunClick through context menu component chain
- Add 18 tests for useRun hook covering all status transitions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change coord_user_id from varchar(255) to text in schema to match
  actual database type (converted in migration 0010)
- Regenerate snapshots 0007-0011 with correct UUID format
- Add missing snapshots 0012-0017 for manual migrations

This fixes drizzle-kit "malformed snapshot" errors and eliminates
the data-loss warning when running migrations locally.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ion input

Replace immediate run execution with an interactive RunWidget that:
- Accepts optional instructions before starting execution
- Shows real-time execution progress with current step
- Displays clickable tile navigation links for executed steps
- Tracks elapsed time during execution
- Handles blocked state with resume functionality
- Shows completion summary with all executed steps

The widget integrates with the existing useRun hook and follows
the event-driven architecture pattern used by other widgets.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add hexecutePrompt to run mutation response for transparency
- Create PromptDisplay component with collapsible prompt view
- Update RunningState to show current step's prompt
- Update StepsList with per-step prompt expansion
- Update BlockedState with input field for resume context
- Add resumeWithInput to pass user context when resuming

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added hexplan content handling in useRunWidget, including current step and parent hexplan data.
- Updated useRun hook to pass step title and hexplan content on step completion and blockage.
- Modified RunService to resume blocked runs instead of creating new ones, ensuring proper state management.
- Implemented hexplan fetching and instruction propagation in the agentic router.
- Enhanced prompt generation to include hexplan content and instructions for better user guidance.
- Updated tests to cover new hexplan functionality and ensure proper integration.
- Restructure prompt template: execution instructions at beginning,
  hexplan at end for better agent context
- Update execution instructions to guide agents on editing hexplan
  (not creating) with discussion flow guidance
- Remove [User input on resume] prefix - backend now handles formatting
- Append user feedback to hexplan end instead of prepending instruction
- Update hexplan generators to use Initial Instruction format and
  clearer status markers for discussion history

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… RunWidget

- Add ToolCallEntry type for tracking MCP tool calls during execution
- Extend ExecutionLogEntry with hexplanContent and toolCalls fields
- Update RunService.markStepCompleted/markStepBlocked to store new fields
- Capture tool calls via StreamCallbacks in run mutation
- Show executed steps in idle state for historical visibility
- Add purple-themed tool calls display with collapsible arguments/results

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
getRunState was using getOpenRun() which only found runs with status='open',
causing blocked runs to not display when opening the RunWidget.

- Rename getOpenRun() to getResumableRun() for clarity
- Use findResumableByRootCoords() to include both open and blocked runs
- Remove unused findOpenByRootCoords() repository method
- Update tests to verify blocked runs are now returned

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…edState UI

- Add /run command: shows RunsListWidget (no args) or RunWidget (with coords)
- Create RunsListWidget with status filter (Active/Closed/All) and run list
- Add listRuns backend: repository, service, and tRPC procedure
- Extract StepsList into subsystem with separate components for better maintainability
- Redesign BlockedState with compact layout, collapsible sections, and inline controls
- Add CollapsibleSection component for reusable expandable UI
- Add cleanup-runs.ts script for database maintenance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…gation

- Fix empty hexplan status bug: treat empty as PENDING, not COMPLETE
- Simplify EXECUTION_INSTRUCTIONS_SECTION to concise one-liner
- Simplify HEXRUN_INTRO to one-liner
- Remove step-based orchestration from hexplan (RunService handles this)
- Simplify generateParentHexplanContent/generateLeafHexplanContent to just
  contain instruction (no more 📋 steps tracking)
- Restore ancestor hexplan inclusion for instruction propagation
- Skip step-based instructions when hexplan is empty
- Update tests to match simplified hexplan format

The key insight: RunService now handles orchestration externally, so hexplans
no longer need step tracking. They're now just for instruction propagation
from root to subtasks via ancestor context.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
LeafTraversalService was explicitly excluding the root tile from being
considered a leaf, even when it had no structural children. This caused
`run` to immediately close without executing anything when called on a
tile without subtasks.

Now when getAllLeafTiles is called on a tile with no children, the tile
itself is returned as the leaf to execute.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Claude Agent SDK spawns a subprocess with the prompt as command-line
arguments, which has OS size limits (~128KB-2MB). When prompts exceed this
limit, Node throws a cryptic "spawn E2BIG" error.

Added _checkPromptSize() helper that throws a helpful PAYLOAD_TOO_LARGE
error with guidance on how to fix (move large content to context tiles).

The check is applied to:
- run procedure (before step execution)
- executeTask procedure (before LLM call)
- hexecute procedure (before returning prompt)

Limit set to 100KB as a conservative threshold.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…storage

Move hexplan storage from direction-0 tiles (ephemeral, per-task) to a
run_hexplans join table (persistent, per-run). This enables:
- Multiple runs to have independent hexplan state
- Historical preservation of execution context
- No need for deleteHexplan cleanup between runs
- Cleaner separation between tile content and execution state

Changes:
- Add run_hexplans schema with composite primary key (runId, coords)
- Add RunHexplanRepository for CRUD operations
- Extend RunService with hexplan methods (get, set, getForRun)
- Add updateRunHexplan mutation and getActiveRunForCoords query
- Update hexecute MCP tool to use runId instead of deleteHexplan
- Add updateRunHexplan MCP tool for agents to update run hexplans
- Update RunWidget UI to use new API endpoints
- Remove "Delete Hexplan" option from tile context menus
- Update compose expansion to show center tile instead of direction-0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When updating a tile with only content, the preview field was being
unexpectedly set to null. The root cause was that updateRef was
reconstructing an object with all properties (including undefined ones),
which triggered hasOwnProperty checks in the repository layer, causing
undefined ?? null to evaluate to null.

Fix both service and actions layers to only include explicitly defined
fields in update objects, preserving existing values for unspecified fields.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Relaxes the itemType hierarchy constraint to permit ORGANIZATIONAL tiles
as children of CONTEXT tiles, enabling better organization within
reference material hierarchies.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…/Monitor

Replace abstract "system thinkers" framing with concrete product description:
- Create: decompose goals, get AI help, attach context
- Activate: run, observe, refine on failure
- Share: publish, fork, learn from others
- Compose: reuse context, systems as tools
- Monitor: track usage and health across portfolio

Remove MISSION.md as the mission isn't clear yet.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diplow and others added 2 commits January 27, 2026 14:08
…ommand

- Deleted the refactor for clarity guide from `.claude/commands/refactor-clarity.md`.
- Removed the walkthrough command documentation from `.claude/commands/walkthrough.md`.

chore: update .gitignore to include archive directory

- Added `.claude/archive/` to the .gitignore file to prevent tracking of archive files.

docs: enhance CLAUDE.md with subsystem architecture details

- Introduced a new section on subsystem architecture, detailing the structure and constraints of subsystems.
- Added workflows for feature planning, impact analysis, and new subsystem introduction.
- Updated the core development section with additional commands for subsystem navigation.

feat: add subsystem tree utility for visualizing subsystem hierarchy

- Implemented a new script to dump the subsystem hierarchy as an ASCII tree or JSON.
- Created `scripts/subsystem-tree/README.md` for usage instructions.
- Added discovery and rendering logic for subsystem trees in `scripts/subsystem-tree/discovery.py` and `scripts/subsystem-tree/renderer.py`.
- Introduced a CLI entry point in `scripts/subsystem-tree/main.py` to facilitate command-line usage.
…odule

- Merge scripts/subsystem-tree/ into architecture/tree/ with relative imports
- Move scripts/checks/shared/ (TypeScript parser) into architecture/shared/
- Update ruleof6 to import parser from architecture.shared
- Remove deadcode checker and all references (CI, package.json, CLAUDE.md, tests)
- Replace scripts/checks/architecture/ with git submodule (Diplow/subsystem-architecture)
- Add submodules: recursive to architecture and ruleof6 CI checkout steps
- Create scripts/checks/run-subsystem-tree.py as hexframe-specific wrapper

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diplow and others added 2 commits January 28, 2026 10:05
- Point subsystem-architecture submodule to rewritten README
- Fix CLAUDE.md reference: scripts/subsystem-tree/README.md →
  scripts/checks/architecture/README.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update check:ruleof6 script to use submodule CLI
- Delete hexframe-local ruleof6 directory (logic moved to submodule)
- Add Rule of 6 section to CLAUDE.md
- Update submodule to include ruleof6/ module

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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