Update changes - #25
Merged
Merged
Conversation
The /command autocomplete could show a command list without project skills for up to a minute before they appeared. Two client-side and one daemon-side defect combined: - fetchAgentCommands discarded list_commands_response.error and returned the empty commands array as success, so daemon errors (agent not found, provider unavailable) were cached by react-query. - Draft listings fired before the composer model resolved; the daemon returns an empty list for modelless drafts, which the draft query then cached with an infinite staleTime. - Every draft listing spawned a throwaway provider process (~800ms for pi), amplifying how often the races could be observed. Client: throw on response.error and keep modelless draft queries pending via resolveAgentCommandsQueryEnabled. Daemon: cache listDraftCommands results per config for 30s, never caching failures.
The scroll-to-bottom and collapse-all tool call buttons used a ghost Button variant, which rendered as bare icons that blended into content text. Style them with the shared composerPillStyles contract so they read as the same pill controls as the task and diff-stat buttons in the composer track row.
v0.11.2 changed package-lock.json (version fields + peer flags), which shifts the npm-deps FOD hash. nix.yml only runs on pull_request, so the staleness was never caught on main; the ubuntu build job auto-updates the hash in-workspace via update-nix.sh, but build-desktop-darwin builds from the committed hash and failed with a FOD hash mismatch. Both the darwin job's 'got' hash and the ubuntu job's 'Computed hash' agree on sha256-kOB3MF8XABFlRFG/eKsV1VvCUaON1pcsaHgtaMFc5EY=.
- git mv spec/, issues/, epics/ from .codestable/ to codestable/ - epic 001 renamed 001-o- -> 001-x- (accepted at 2026-08-31); epic002 refs updated - epic 002 work log moved to epics/002-o-retained-capabilities-delivery/work-log.md - legacy attention.md and current_work pointer removed - new skeleton dirs (vision/notes/talks/tools) added; spec/index.md kept as-is - epic002 contract path .codestable -> codestable
21/21 ITEM integrated across 5 waves (PR #16-#20 merged with exact-head CI green). Stable conclusions graduated to Project Spec: timeline restore and session import in agent-conversation, revision resume/paste/activity in terminal, new workspace.md (branch/push state, hover agents, agent naming), new connection.md (release channel routing, hosted HTTPS guard, pairing hostname). Epic spec marked closed with final delivery index.
…tion Commit and PR creation run agent LLM generation (title/body or commit message) with retries before the git/forge call, so the request can legitimately take far longer than the 60s default session RPC timeout. The client timed out first and surfaced an error while the daemon kept going and still completed the operation, leaving a misleading failure toast next to a real side effect. - checkoutCommit and checkoutPrCreate default to a 5-minute RPC timeout (CHECKOUT_GIT_METADATA_TIMEOUT_MS) so the client waits for the actual result instead of abandoning the request. - Git action error toasts distinguish RPC timeout from real failures: a timeout now says the daemon may still be processing the request and to check the workspace before retrying, avoiding duplicate commits or PRs; everything else keeps the concrete error message. - New i18n key workspace.git.actions.toasts.mayStillBeRunning, synced across all 9 supported languages.
5f92519 made fetchAgentCommands throw on list_commands_response.error to stop caching daemon failures. That also caught the benign reply the daemon sends when the agent exists but its provider has no command list (mock sessions, CLIs without slash commands): 'Agent does not support listing commands'. The thrown error flipped the composer autocomplete into its error placeholder, replacing the option list and hiding the always- available client commands — 'slash quit selected from autocomplete' then failed waiting for /exit, deterministically (5/5 repeats). Return an empty provider list for that specific message; other daemon errors still throw so failed listings are not cached.
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.
Automated PR generated by BySpace.