Skip to content

fix: compatibility with agent-shell v0.73.4 - #4

Open
mwmcarney wants to merge 8 commits into
cassandracomar:mainfrom
mwmcarney:fix/compat-agent-shell-v0.73.4
Open

fix: compatibility with agent-shell v0.73.4#4
mwmcarney wants to merge 8 commits into
cassandracomar:mainfrom
mwmcarney:fix/compat-agent-shell-v0.73.4

Conversation

@mwmcarney

Copy link
Copy Markdown

Summary

  • Update all calls to removed/renamed private API functions to their v0.73.4 equivalents (agent-shell--prompt-queue-enqueue, agent-shell--prompt-queue-process-next, shell-maker-busy)
  • Replace global shell-maker-finish-output-hook with a scoped agent-shell-subscribe-to :event turn-complete subscription for queue draining
  • Fix load-order issue where define-globalized-minor-mode referenced its dummy variable before it was defined

Test plan

  • (require 'agent-shell-dispatch) loads without errors
  • agent-shell-dispatch-start-current registers a task graph and renders SVG header
  • agent-shell-dispatch-report transitions nodes through working/done states
  • Fan-out/fan-in graph (9 nodes, 3 parallel) renders and animates correctly
  • agent-shell-dispatch-stop tears down cleanly
  • agent-shell-dispatch-spawn-agent creates background agent buffers

🤖 Generated with Claude Code

mwmcarney and others added 8 commits August 19, 2026 09:12
Replace removed private functions with their current equivalents:
- agent-shell--enqueue-request -> agent-shell--prompt-queue-enqueue
- agent-shell--process-pending-request -> agent-shell--prompt-queue-process-next
- shell-maker--busy (variable) -> shell-maker-busy (public function)
- agent-shell-diff :old/:new/:file kwargs -> :diffs list-of-alists

Replace shell-maker-finish-output-hook with a per-buffer
agent-shell-subscribe-to :event turn-complete subscription for
queue draining -- scoped to the dispatcher buffer only.

Add forward declarations for remaining private API dependencies
and agent skills configuration files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The define-globalized-minor-mode macro references its second argument
as a variable at expansion time. The defvar must precede the macro call.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add agent-shell-dispatch-wayfinder.el, a bridge that connects wayfinder
skill efforts to the dispatch SVG task graph. Supports two tracker
backends:

- Local markdown (.scratch/<effort>/issues/) — the default
- GitHub Issues (via `gh` CLI with wayfinder:* labels)

The bridge parses tickets and blocking edges into dispatch task nodes,
handles fog-of-war (incremental add/remove as tickets are
graduated/scoped-out), and syncs statuses as tickets are
claimed/resolved.

New public API in agent-shell-dispatch.el:

- agent-shell-dispatch-add-task: insert/replace a single node
- agent-shell-dispatch-add-tasks: batch insert with one rebuild
- agent-shell-dispatch-remove-task: remove node + clean dangling edges

These enable the wayfinder bridge to grow/shrink the graph without
restarting the full dispatch session (preserving subscriptions, timers,
agent registrations, and accumulated statuses).

README updated with wayfinder integration section including the
CLAUDE.md/AGENTS.md snippet users should add to wire up the lifecycle
hooks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract dispatch state structs and status resolution into
agent-shell-dispatch-state.el (was untracked, causing load failure on
fresh Emacs starts via elpaca). Add comprehensive integration test
suite (34 tests) verifying end-to-end interaction between dispatch,
render, messages, and wayfinder modules. Fix two pre-existing test
failures where shell-maker-busy stub was not bound during working-state
assertions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add wayfinder auto-start: when a ticket's blockers are all done, it
  starts automatically. Works on initial load and cascades through the
  graph via turn-complete subscriptions on subagent buffers.

- Gate permission rendering in dispatcher behind feature variable
  `agent-shell-dispatch-msg-show-permissions-in-dispatcher` (default nil).
  SVG lock icon still shows regardless; native permission UI displays
  in the subagent's own buffer when the feature is off.

- Fix sync-statuses to never downgrade working/done back to
  claimed/waiting from file state.

- Prune stale permissions every render cycle via build-status-map.

- Add CLAUDE.md dispatch commands section teaching agents how to
  interact with the dispatch system via emacsclient.

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