chore(deps): bump github.com/skeema/knownhosts from 1.3.1 to 1.3.2#9
Open
dependabot[bot] wants to merge 1 commit into
Open
chore(deps): bump github.com/skeema/knownhosts from 1.3.1 to 1.3.2#9dependabot[bot] wants to merge 1 commit into
dependabot[bot] wants to merge 1 commit into
Conversation
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
Task #9. Wires the per-pane harness cache + ipcMain handlers + preload surface so the renderer can talk to the integrated agent runtime without touching wavesrv. No renderer code consumes this yet — usePiChat (task #12) is the first consumer. New: emain/agent-ipc.ts (~210 LOC) - harnessCache: Map<sessionPath, PaneHarness> - subscriptions: per-(sender, sessionPath) tracking + auto-release on sender 'destroyed' - registerAgentIpcHandlers() wires: handle "agent:create-session" (cwd) → AgentSessionMeta handle "agent:list-sessions-for-cwd" (cwd) → AgentSessionMeta[] handle "agent:send" (opts) → {sessionMetadata} (returns immediately; prompt runs in background) on "agent:abort" (sessionPath) on "agent:subscribe" (sessionPath) on "agent:unsubscribe" (sessionPath) - Single "agent:event" channel carries {sessionPath, event} — mirrors the dir-watch pattern (renderer strings never embed in channel names, security per emain-ipc.ts:518 comment). Wired in: emain/emain-ipc.ts initIpcHandlers() calls registerAgentIpcHandlers() before the rest of the init body. Preload: emain/preload.ts - Single ipcRenderer.on("agent:event") dispatcher fans events to per-sessionPath callback sets (same shape as dirWatchCallbacks). - exposeInMainWorld api.agent namespace: createSession(cwd) → Promise<AgentSessionMeta> listSessionsForCwd(cwd) → Promise<AgentSessionMeta[]> send(opts) → Promise<{sessionMetadata}> abort(sessionPath) subscribe(sessionPath, callback) → unsubscribe fn Types: frontend/types/custom.d.ts - ElectronApi.agent: matching surface declaration - AgentSendOptions: send-payload shape (provider/model/reasoning + pane context + optional sessionMetadata) Send semantics send() returns immediately with the resolved sessionMetadata so the renderer can write block.meta and begin streaming. The prompt() call fires in background; AgentHarness emits the assistant message stream + any errors through "agent:event". This matches the architecture doc §5.2 + §6.3 contract. What's NOT in this commit - Renderer-side hook (usePiChat) — task #12; the legacy useChat / HTTP-to-wavesrv path stays live until that lands. - Crest-specific tools — task #10; AgentHarness is built with tools: [] for now. - Permissions hook — task #11; no beforeToolCall yet. - Integration test against an actual LLM — task #14. Verification - tsc --noEmit -p tsconfig.json: 0 new errors in emain/ (58 pre-existing project-wide). - vitest run: 126/126 (no test changes; existing surface intact). - npx tsx emain/agent/_spike.ts: imports + harness construction still load cleanly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
…up plan Snapshot for the morning review. Records what landed in the autonomous session (tasks #9, #10-partial, #11, #12-half), what was explicitly NOT done and why (high-blast-radius wiring, deferred tool designs, missing API-key access), the architecture invariants the new code commits to, and a recommended pickup order keyed to how much time the user has when they come back. Read this first in the morning. The architecture story itself is already in docs/agent-runtime-architecture.md; this doc is just the "where we are right now" companion. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Jason-Shen2
added a commit
that referenced
this pull request
May 24, 2026
Steps 3+4+5 of task #12 in one commit (intentionally co-located so the project compiles at every commit boundary). After this, the renderer is fully driven by usePiChat → slicePiRuns → AgentBlockElement on the pi AgentMessage shape; the ai-sdk WaveUIMessage path and TerminalModel's agent-state Jotai atoms are gone. Engine layer (terminal-model + Block) - engine/types.ts: Removed AgentPayload (assistantText / parts / status etc.) and replaced with AgentBlockRef = { runId, createdAt }. Agent state lives on the React side now; the engine only carries a marker. - engine/block.ts: Replaced block.agentPayload with block.agentRef. Deleted appendAgentText / setAgentText / setAgentStatus (the mutators the ai-sdk useChat → applyAgentDelta bridge called). - engine/blocks.ts: appendAgentBlock(runId) — single-arg factory; no userText or payload bookkeeping. Block id = `agent_${runId}`. - terminal-model.ts: Removed agentChatStatusAtom, agentChatIdAtom, agentModelOverrideAtom, agentPartsAtom (~4 jotai atoms gone). Removed submitAgentMessage, applyAgentDelta, applyAgentText, applyAgentParts, applyAgentStatus (~5 methods, ~60 LOC). Added appendAgentRun(runId) — idempotent, just appends a marker block and bumps revision. - Removed WaveUIMessagePart import. Renderer - agent-chat-host.tsx (full rewrite, 224 → ~165 LOC): Uses usePiChat with model selection / pane context / session metadata from terminal-view. Watches chat.messages, slices into runs via slicePiRuns, calls model.appendAgentRun for newly-seen runIds, fires onRunsChange to feed BlockListElement. Exposes a stable AgentChatHostApi (send / abort / getRuns) via onReady. Refuses to send when selection unresolved — surfaces specific resolver error via onUserError. - agent-block-element.tsx (full rewrite, 328 → ~245 LOC): Takes a PiRun. Walks run.responseMessages, accumulates text from assistant.content[type=text], emits a ToolCallCard for each assistant.content[type=toolCall] paired with the matching toolResult message (looked up by toolUseId). Header status comes from run.status; error footer from run.errorMessage. Markdown rendering preserved via react-markdown. - block-list-element.tsx: agentChatId prop replaced with agentRunsById: Map<runId, PiRun>. Agent block branch: look up run via block.agentRef.runId, render placeholder if not yet in map (handles first message_start in-flight or pane reopened pre-load), else mount AgentBlockElement. - terminal-view.tsx: Replaced chatId useMemo with block.meta["agent:session"] (read via useOrefMetaKeyAtom). onSessionMinted writes back when first send mints metadata. Replaced agentSubmitRef with agentApiRef holding the full AgentChatHostApi. Added agentRunsById state, updated via AgentChatHost.onRunsChange. Removed aiConfig / aiConfigError / chatId props passed to AgentChatHost; replaced with modelSelection / paneContext / sessionMetadata / selectionError shape matching the new contract. Test layer - engine/agent-flow.test.ts: DELETED — tested the old payload mutator API which no longer exists. slicePiRuns + AgentBlockElement integration is covered by slice-pi-runs.test.ts + the rewrite covers the rest. - engine/blocks.test.ts: rewritten — new appendAgentBlock(runId) signature, asserts agentRef.runId + agent_${runId} id format. - engine/block-handler.test.ts: defensive-guard test now asserts agentRef.runId is preserved (instead of agentPayload.assistantText). - terminal-model.test.ts: agent-section rewritten — covers appendAgentRun idempotency, revision bump, empty-runId no-op. Preview env - preview-electron-api.ts: stubbed api.agent.* so the preview pages still satisfy ElectronApi after the task #9 IPC addition. What's still dead-but-present (cleanup in next commit): - tool-use-card.tsx + tool-action-header / tool-command-card / tool-diff-card / tool-ask-card / citation-chips (~1180 LOC) — no longer imported by anything; deleting in step 6 cleanup. - aitypes.ts WaveUIMessage / WaveUIMessagePart / WaveUIDataToolUse — same. - @ai-sdk/react in package.json — deletable next commit. Verification - tsc --noEmit -p tsconfig.json: 58 pre-existing errors unchanged, 0 new errors in the agent path. - vitest run: 172/172 pass. - Manual smoke deferred to step 6. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bumps [github.com/skeema/knownhosts](https://github.com/skeema/knownhosts) from 1.3.1 to 1.3.2. - [Commits](skeema/knownhosts@v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: github.com/skeema/knownhosts dependency-version: 1.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
c1db0f0 to
03db712
Compare
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.
Bumps github.com/skeema/knownhosts from 1.3.1 to 1.3.2.
Commits
b9f50b4ci: use Go 1.24 as per minimum in go.mod3e58378update golang.org/x/crypto to v0.42.0; revise IPv6 logic5b6f59ftests: fix test logic for x/crypto 0.37.0 changeeef7455update dependency golang.org/x/crypto to v0.39.0e3098efupdate dependency golang.org/x/crypto to v0.36.0c884d65ci: add govulncheck; pin goveralls version; use Go 1.23a8761dacomments: update to reflect golang.org/x/crypto/ssh/knownhosts change