Repository navigation
feat(protocol): add run --bridge and sessions --show for out-of-process hosts - #192
Merged
Merged
Conversation
- fuseraft-server linked the CLI's assemblies and broke on every internal refactor; clients now get a documented JSON contract instead - Wire records are separate from internal types and pinned by tests, so reshaping a model can't silently change what clients parse - --json on sessions (plus --repl for chats), memory/context/schedule list, plugins and models; human output is unchanged - protocolVersion on the bridge's ready event and a hello handshake on the serve socket let clients detect breaking changes - docs/protocol.md replaces the stale bridge table in cli-reference.md
- YamlDotNet wrote DateTimeOffset as a property-bag mapping it couldn't read back, so NextRun always loaded as default and schedule run ran every job on every invocation - Timestamps are now one ISO 8601 UTC scalar, matching the format docs/cli-reference.md already shows - Job files written by older versions are still read (utc_ticks, falling back to utc_date_time) and are rewritten in the new format after their next run
…ss hosts - fuseraft-server needs to drive an orchestration session without linking CLI internals; run --bridge streams ready/agent_message/tool_calling/result JSONL and reads approval_response/interrupt on stdin - Bridge builds with HITL gating like serve, so shell, file and tool actions plus route handoffs are approved by the host instead of auto-running - sessions --show <id> (--json) returns a session's full message history so hosts can render past sessions started from the terminal - sessions --show/--delete crashed on a malformed id; now reports not found
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.
Stacked on #190 — retarget to
mainbefore merging #190.What
fuseraft run --bridge: runs one orchestration session as a JSONL process for an out-of-process host (fuseraft-server). Emitsready(withprotocolVersion),agent_starting,tool_calling,token_budget_warning,agent_message, and a finalresult; readsapproval_responseandinterrupton stdin.serve, so shell commands, file writes, tool actions and route handoffs (route_approval, new) are approved by the host.--hitl(there's no terminal to pause on) with aresultevent rather than hanging.fuseraft sessions --show <id>: prints a session's messages; with--json, returns it in anitemenvelope (SessionDetail/AgentMessagewire records).sessions --showandsessions --deletecrashed on a malformed id (the store throwsArgumentException); both now report "not found". The--deletecrash predates this branch.All additive: no existing event, field or text output changes, so the VS Code extension is unaffected.
Docs
docs/protocol.mdcovers the run bridge transport, its events, and the new records;docs/cli-reference.mdlists--bridgeand--show.Testing
sessions --show/--deleteand route approvals over the JSON bridge; full suite passes.FUSERAFT_HOME): approve and deny of file writes and shell commands, interrupt then--resume, bad config, and--hitlrejection.feature/out-of-process).