sigit-code 1.6.5__tar.gz → 1.6.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.agents/AGENTS.md +11 -1
- {sigit_code-1.6.5 → sigit_code-1.6.7}/AGENTS.md +11 -1
- {sigit_code-1.6.5 → sigit_code-1.6.7}/CHANGELOG.md +49 -1
- {sigit_code-1.6.5 → sigit_code-1.6.7}/CLAUDE.md +11 -1
- {sigit_code-1.6.5 → sigit_code-1.6.7}/Cargo.lock +154 -17
- {sigit_code-1.6.5 → sigit_code-1.6.7}/Cargo.toml +4 -1
- {sigit_code-1.6.5 → sigit_code-1.6.7}/PKG-INFO +1 -1
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/backend.rs +185 -20
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/main.rs +195 -21
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/mcp.rs +140 -739
- sigit_code-1.6.7/src/repetition.rs +221 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_audio.rs +45 -0
- sigit_code-1.6.7/tests/acp_tool_call_name.rs +277 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.agents/skills/agent-client-protocol/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.agents/skills/ai-assisted-coding/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.agents/skills/branding/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.agents/skills/run-sigit/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.agents/skills/run-sigit/driver.mjs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.agents/skills/run-sigit/tui-smoke.sh +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.agents/skills/sigit-code-release/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.agents/skills/tool-calling/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.cargo/config.toml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.claude/skills/agent-client-protocol/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.claude/skills/ai-assisted-coding/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.claude/skills/branding/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.claude/skills/run-sigit/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.claude/skills/run-sigit/driver.mjs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.claude/skills/run-sigit/tui-smoke.sh +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.claude/skills/sigit-code-release/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.claude/skills/tool-calling/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.github/workflows/ci.yml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.github/workflows/release-aur.yml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.github/workflows/release-crates.yml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.github/workflows/release-github.yml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.github/workflows/release-homebrew.yml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.github/workflows/release-npm.yml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.github/workflows/release-nuget.yml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.github/workflows/release-pypi.yml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.github/workflows/release-scoop.yml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.github/workflows/release-winget.yml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.gitignore +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.nvmrc +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.sigit/code-cloud-agent/config.toml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.sigit/code-review/config.toml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/.sigit/factory/config.toml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/LICENSE +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/README.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/docs/headless.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/docs/hooks.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/docs/mcp.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/examples/settings-with-hooks.toml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/examples/skills/README.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/examples/skills/commit-message/SKILL.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/README.md.tmpl +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/package-compat.json.tmpl +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/package-main.json.tmpl +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/package.json.tmpl +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/scripts/render-main-package.cjs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/scripts/render-platform-package.cjs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/sigit/.gitignore +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/sigit/README.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/sigit/package.json +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/sigit/src/index.ts +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/npm/sigit/tsconfig.json +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/nuget/.gitignore +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/nuget/sigit/Program.cs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/nuget/sigit/README.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/nuget/sigit/SiGit.Code.csproj +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/packaging/aur/PKGBUILD.in +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/packaging/nfpm.yaml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/packaging/windows/check-static-crt.ps1 +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/packaging/winget/getSigit.siGitCode.installer.yaml.in +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/packaging/winget/getSigit.siGitCode.locale.en-US.yaml.in +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/packaging/winget/getSigit.siGitCode.yaml.in +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/pypi/README.md +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/pypi/pyproject.toml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/pyproject.toml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/rust-toolchain.toml +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/account.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/browser_auth.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/chat.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/client_fs.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/client_terminal.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/commands.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/credentials.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/frontmatter.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/harness_markup.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/headless.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/hooks.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/inline_tool_calls.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/instructions.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/models.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/permissions.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/provider.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/session_store.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/settings.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/setup.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/skills.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/subagents.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/tools.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/src/workspace.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_client_fs.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_client_terminal.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_concurrent_sessions.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_embedded_context.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_endpoint_errors.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_harness_markup.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_images.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_logout.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_multi_root.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_permissions.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_session_list.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_session_load.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_stop_reasons.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/acp_tool_stdin.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/headless_mode.rs +0 -0
- {sigit_code-1.6.5 → sigit_code-1.6.7}/tests/version_flag.rs +0 -0
|
@@ -159,6 +159,12 @@ feeds results back. Neither the loop nor ACP/TUI surfaces depend on a concrete b
|
|
|
159
159
|
never touched, and an opening tag only counts at the start of a line, since prose writes
|
|
160
160
|
placeholders like `<repo_url>` the same way. It has to run after the inline-call scanner,
|
|
161
161
|
because `<tool_call>` matches its underscore rule.
|
|
162
|
+
`src/repetition.rs` guards the same stream against a reply that degenerates into a loop over a
|
|
163
|
+
tiny vocabulary (issue #123): a window of 200 words with at most 40 distinct ones, fenced code
|
|
164
|
+
excepted, makes `consume_stream` stop reading, truncate the text to where the loop began (so
|
|
165
|
+
history never holds the junk), tell the user, and finish with `FinishReason::Repetition`
|
|
166
|
+
(`EndTurn` in ACP). `complete` then retries once with `REPETITION_RETRY`, like the malformed
|
|
167
|
+
tool call retry. Only the streaming path is guarded; `consume_json` and `LocalBackend` are not.
|
|
162
168
|
Image attachments: ACP fixes `promptCapabilities.image` for the whole connection, while the
|
|
163
169
|
model can change on any turn, so the capability is always advertised and the decision is made
|
|
164
170
|
per prompt. `InferenceBackend::accepts_images` answers for the active model (on-device: no;
|
|
@@ -304,7 +310,11 @@ feeds results back. Neither the loop nor ACP/TUI surfaces depend on a concrete b
|
|
|
304
310
|
conversation); lifecycle and config handlers hold it throughout, and `handle_prompt` holds it
|
|
305
311
|
through a `WorkspaceHold` that it releases while waiting on an HTTP endpoint or a permission
|
|
306
312
|
answer and retakes (reinstalling its session via `resume_workspace`) before any tool runs. An
|
|
307
|
-
on-device turn never releases it. Take the session lock first, never the other way round.
|
|
313
|
+
on-device turn never releases it. Take the session lock first, never the other way round. A turn registers its `PromptCancellation` at
|
|
314
|
+
the top of `handle_prompt`, before it waits on either lock, and a `PromptRegistration`
|
|
315
|
+
guard clears it on every return, so a `session/cancel` that arrives while the turn
|
|
316
|
+
is still queued, switching threads, loading a model or running a slash command ends
|
|
317
|
+
it as `cancelled`. The checks sit after each of those waits. Tool
|
|
308
318
|
execution, subagents included, still runs one session at a time.
|
|
309
319
|
- **`src/instructions.rs`** — project instruction files, the always-on counterpart to skills.
|
|
310
320
|
Reads `AGENTS.md` (the cross-tool [agents.md](https://agents.md) standard) and `CLAUDE.md`,
|
|
@@ -159,6 +159,12 @@ feeds results back. Neither the loop nor ACP/TUI surfaces depend on a concrete b
|
|
|
159
159
|
never touched, and an opening tag only counts at the start of a line, since prose writes
|
|
160
160
|
placeholders like `<repo_url>` the same way. It has to run after the inline-call scanner,
|
|
161
161
|
because `<tool_call>` matches its underscore rule.
|
|
162
|
+
`src/repetition.rs` guards the same stream against a reply that degenerates into a loop over a
|
|
163
|
+
tiny vocabulary (issue #123): a window of 200 words with at most 40 distinct ones, fenced code
|
|
164
|
+
excepted, makes `consume_stream` stop reading, truncate the text to where the loop began (so
|
|
165
|
+
history never holds the junk), tell the user, and finish with `FinishReason::Repetition`
|
|
166
|
+
(`EndTurn` in ACP). `complete` then retries once with `REPETITION_RETRY`, like the malformed
|
|
167
|
+
tool call retry. Only the streaming path is guarded; `consume_json` and `LocalBackend` are not.
|
|
162
168
|
Image attachments: ACP fixes `promptCapabilities.image` for the whole connection, while the
|
|
163
169
|
model can change on any turn, so the capability is always advertised and the decision is made
|
|
164
170
|
per prompt. `InferenceBackend::accepts_images` answers for the active model (on-device: no;
|
|
@@ -304,7 +310,11 @@ feeds results back. Neither the loop nor ACP/TUI surfaces depend on a concrete b
|
|
|
304
310
|
conversation); lifecycle and config handlers hold it throughout, and `handle_prompt` holds it
|
|
305
311
|
through a `WorkspaceHold` that it releases while waiting on an HTTP endpoint or a permission
|
|
306
312
|
answer and retakes (reinstalling its session via `resume_workspace`) before any tool runs. An
|
|
307
|
-
on-device turn never releases it. Take the session lock first, never the other way round.
|
|
313
|
+
on-device turn never releases it. Take the session lock first, never the other way round. A turn registers its `PromptCancellation` at
|
|
314
|
+
the top of `handle_prompt`, before it waits on either lock, and a `PromptRegistration`
|
|
315
|
+
guard clears it on every return, so a `session/cancel` that arrives while the turn
|
|
316
|
+
is still queued, switching threads, loading a model or running a slash command ends
|
|
317
|
+
it as `cancelled`. The checks sit after each of those waits. Tool
|
|
308
318
|
execution, subagents included, still runs one session at a time.
|
|
309
319
|
- **`src/instructions.rs`** — project instruction files, the always-on counterpart to skills.
|
|
310
320
|
Reads `AGENTS.md` (the cross-tool [agents.md](https://agents.md) standard) and `CLAUDE.md`,
|
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.6.7
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **A cancel that arrives before the turn starts is no longer lost.** A prompt
|
|
8
|
+
now registers for `session/cancel` as soon as it begins, not once it reaches
|
|
9
|
+
inference. A cancel that lands while the turn is queued on the workspace,
|
|
10
|
+
switching threads, loading a model, or running a slash command ends it with
|
|
11
|
+
`cancelled` instead of `end_turn`.
|
|
12
|
+
- **A prompt that is only audio is answered.** A clip with no text or image used
|
|
13
|
+
to end the turn at once with nothing sent to the model, even though the agent
|
|
14
|
+
advertises audio.
|
|
15
|
+
|
|
16
|
+
## 1.6.6
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- **A tool call carries its programmatic tool name.** The `tool_call` an editor
|
|
21
|
+
gets for a running tool now includes `name` (`read_file`, `run_command`,
|
|
22
|
+
`mcp__…`) next to the human title, sent on the first report of the call only
|
|
23
|
+
as the protocol asks. A client can tell a command from a file edit without
|
|
24
|
+
parsing the title, and a replayed thread from `session/load` carries the same
|
|
25
|
+
name (#196).
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- **MCP runs on `rmcp`, the official Rust SDK, through `ed-mcp`.** siGit Code's
|
|
30
|
+
own JSON-RPC client for stdio and Streamable HTTP servers (about 600 lines)
|
|
31
|
+
is gone; `ed-mcp` is the layer every Onde agent shares. `mcp.toml`, the
|
|
32
|
+
baked-in `sigit` and `smbcloud` servers, tool names and `/mcp` are unchanged.
|
|
33
|
+
An HTTP server that stops answering is now reconnected and the call retried
|
|
34
|
+
once for any failure but a timeout, not only on a 404.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- **A reply that degenerates into a repetition loop is cut off.** After a tool
|
|
39
|
+
call, a model could fall into thousands of words from a tiny vocabulary
|
|
40
|
+
(`find: list: check: get: …`) with no tool call and no end, and the junk went
|
|
41
|
+
into history for the next turn. siGit Code now watches a streamed reply for a
|
|
42
|
+
window of 200 words with very few distinct ones (code blocks excepted), stops
|
|
43
|
+
reading, keeps only the text before the loop, tells you it stopped, and asks
|
|
44
|
+
the model once to make its call or answer briefly (#123).
|
|
45
|
+
- **A linked selection written as `L10-L20` or `L10` reads just those lines.**
|
|
46
|
+
siGit Code read the line range of a `resource_link` only as `L10:20` or
|
|
47
|
+
`L10-20`, so `L10-L20` (the GitHub style) and a single line `L10` sent the
|
|
48
|
+
whole file instead of the selection. It now reads the same forms Zed's own
|
|
49
|
+
mention parser does, and a range that starts at line 0 or runs backwards
|
|
50
|
+
counts as no range.
|
|
51
|
+
|
|
3
52
|
## 1.6.5
|
|
4
53
|
|
|
5
54
|
### Added
|
|
@@ -45,7 +94,6 @@
|
|
|
45
94
|
text inside them stays. Code blocks are left alone. The system prompt also
|
|
46
95
|
tells the model to write plain Markdown and to list choices as plain text
|
|
47
96
|
(#122).
|
|
48
|
-
|
|
49
97
|
- **Closing a thread that is waiting at a permission prompt no longer hangs.**
|
|
50
98
|
`session/close` cancels the session's running turn and waits for it to end,
|
|
51
99
|
but a turn stopped at a permission prompt only went on when the client
|
|
@@ -159,6 +159,12 @@ feeds results back. Neither the loop nor ACP/TUI surfaces depend on a concrete b
|
|
|
159
159
|
never touched, and an opening tag only counts at the start of a line, since prose writes
|
|
160
160
|
placeholders like `<repo_url>` the same way. It has to run after the inline-call scanner,
|
|
161
161
|
because `<tool_call>` matches its underscore rule.
|
|
162
|
+
`src/repetition.rs` guards the same stream against a reply that degenerates into a loop over a
|
|
163
|
+
tiny vocabulary (issue #123): a window of 200 words with at most 40 distinct ones, fenced code
|
|
164
|
+
excepted, makes `consume_stream` stop reading, truncate the text to where the loop began (so
|
|
165
|
+
history never holds the junk), tell the user, and finish with `FinishReason::Repetition`
|
|
166
|
+
(`EndTurn` in ACP). `complete` then retries once with `REPETITION_RETRY`, like the malformed
|
|
167
|
+
tool call retry. Only the streaming path is guarded; `consume_json` and `LocalBackend` are not.
|
|
162
168
|
Image attachments: ACP fixes `promptCapabilities.image` for the whole connection, while the
|
|
163
169
|
model can change on any turn, so the capability is always advertised and the decision is made
|
|
164
170
|
per prompt. `InferenceBackend::accepts_images` answers for the active model (on-device: no;
|
|
@@ -304,7 +310,11 @@ feeds results back. Neither the loop nor ACP/TUI surfaces depend on a concrete b
|
|
|
304
310
|
conversation); lifecycle and config handlers hold it throughout, and `handle_prompt` holds it
|
|
305
311
|
through a `WorkspaceHold` that it releases while waiting on an HTTP endpoint or a permission
|
|
306
312
|
answer and retakes (reinstalling its session via `resume_workspace`) before any tool runs. An
|
|
307
|
-
on-device turn never releases it. Take the session lock first, never the other way round.
|
|
313
|
+
on-device turn never releases it. Take the session lock first, never the other way round. A turn registers its `PromptCancellation` at
|
|
314
|
+
the top of `handle_prompt`, before it waits on either lock, and a `PromptRegistration`
|
|
315
|
+
guard clears it on every return, so a `session/cancel` that arrives while the turn
|
|
316
|
+
is still queued, switching threads, loading a model or running a slash command ends
|
|
317
|
+
it as `cancelled`. The checks sit after each of those waits. Tool
|
|
308
318
|
execution, subagents included, still runs one session at a time.
|
|
309
319
|
- **`src/instructions.rs`** — project instruction files, the always-on counterpart to skills.
|
|
310
320
|
Reads `AGENTS.md` (the cross-tool [agents.md](https://agents.md) standard) and `CLAUDE.md`,
|
|
@@ -185,7 +185,7 @@ version = "1.1.5"
|
|
|
185
185
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
186
186
|
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
|
|
187
187
|
dependencies = [
|
|
188
|
-
"windows-sys 0.
|
|
188
|
+
"windows-sys 0.61.2",
|
|
189
189
|
]
|
|
190
190
|
|
|
191
191
|
[[package]]
|
|
@@ -196,7 +196,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
|
|
|
196
196
|
dependencies = [
|
|
197
197
|
"anstyle",
|
|
198
198
|
"once_cell_polyfill",
|
|
199
|
-
"windows-sys 0.
|
|
199
|
+
"windows-sys 0.61.2",
|
|
200
200
|
]
|
|
201
201
|
|
|
202
202
|
[[package]]
|
|
@@ -514,6 +514,12 @@ version = "0.22.1"
|
|
|
514
514
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
515
515
|
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
|
|
516
516
|
|
|
517
|
+
[[package]]
|
|
518
|
+
name = "base64"
|
|
519
|
+
version = "0.23.1"
|
|
520
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
521
|
+
checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5"
|
|
522
|
+
|
|
517
523
|
[[package]]
|
|
518
524
|
name = "basic-toml"
|
|
519
525
|
version = "0.1.10"
|
|
@@ -1519,7 +1525,7 @@ dependencies = [
|
|
|
1519
1525
|
"libc",
|
|
1520
1526
|
"option-ext",
|
|
1521
1527
|
"redox_users",
|
|
1522
|
-
"windows-sys 0.
|
|
1528
|
+
"windows-sys 0.61.2",
|
|
1523
1529
|
]
|
|
1524
1530
|
|
|
1525
1531
|
[[package]]
|
|
@@ -1608,6 +1614,22 @@ version = "0.1.3"
|
|
|
1608
1614
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1609
1615
|
checksum = "e1d926b4d407d372f141f93bb444696142c29d32962ccbd3531117cf3aa0bfa9"
|
|
1610
1616
|
|
|
1617
|
+
[[package]]
|
|
1618
|
+
name = "ed-mcp"
|
|
1619
|
+
version = "1.2.0"
|
|
1620
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1621
|
+
checksum = "cf0c6ab7e27186954295ce7974b33d65860cd3b5073848e9d0a5b3eed90f68a2"
|
|
1622
|
+
dependencies = [
|
|
1623
|
+
"anyhow",
|
|
1624
|
+
"futures",
|
|
1625
|
+
"http",
|
|
1626
|
+
"rmcp",
|
|
1627
|
+
"serde_json",
|
|
1628
|
+
"tokio",
|
|
1629
|
+
"tokio-util",
|
|
1630
|
+
"tracing",
|
|
1631
|
+
]
|
|
1632
|
+
|
|
1611
1633
|
[[package]]
|
|
1612
1634
|
name = "ego-tree"
|
|
1613
1635
|
version = "0.10.0"
|
|
@@ -1718,7 +1740,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
1718
1740
|
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
|
1719
1741
|
dependencies = [
|
|
1720
1742
|
"libc",
|
|
1721
|
-
"windows-sys 0.
|
|
1743
|
+
"windows-sys 0.61.2",
|
|
1722
1744
|
]
|
|
1723
1745
|
|
|
1724
1746
|
[[package]]
|
|
@@ -3622,7 +3644,7 @@ version = "0.50.3"
|
|
|
3622
3644
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3623
3645
|
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
|
|
3624
3646
|
dependencies = [
|
|
3625
|
-
"windows-sys 0.
|
|
3647
|
+
"windows-sys 0.61.2",
|
|
3626
3648
|
]
|
|
3627
3649
|
|
|
3628
3650
|
[[package]]
|
|
@@ -4573,6 +4595,20 @@ dependencies = [
|
|
|
4573
4595
|
"unicode-ident",
|
|
4574
4596
|
]
|
|
4575
4597
|
|
|
4598
|
+
[[package]]
|
|
4599
|
+
name = "process-wrap"
|
|
4600
|
+
version = "10.0.1"
|
|
4601
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4602
|
+
checksum = "1f21b97672d2dc848e7b25701ab4535618b92f4861c13cc3f7f7bed52ad3c8da"
|
|
4603
|
+
dependencies = [
|
|
4604
|
+
"futures",
|
|
4605
|
+
"indexmap 2.14.1",
|
|
4606
|
+
"nix",
|
|
4607
|
+
"tokio",
|
|
4608
|
+
"tracing",
|
|
4609
|
+
"windows 0.62.2",
|
|
4610
|
+
]
|
|
4611
|
+
|
|
4576
4612
|
[[package]]
|
|
4577
4613
|
name = "profiling"
|
|
4578
4614
|
version = "1.0.18"
|
|
@@ -4704,7 +4740,7 @@ dependencies = [
|
|
|
4704
4740
|
"once_cell",
|
|
4705
4741
|
"socket2",
|
|
4706
4742
|
"tracing",
|
|
4707
|
-
"windows-sys 0.
|
|
4743
|
+
"windows-sys 0.61.2",
|
|
4708
4744
|
]
|
|
4709
4745
|
|
|
4710
4746
|
[[package]]
|
|
@@ -5217,6 +5253,31 @@ dependencies = [
|
|
|
5217
5253
|
"windows-sys 0.52.0",
|
|
5218
5254
|
]
|
|
5219
5255
|
|
|
5256
|
+
[[package]]
|
|
5257
|
+
name = "rmcp"
|
|
5258
|
+
version = "3.5.1"
|
|
5259
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5260
|
+
checksum = "ab5023804cbe0304cbe06197ac16e645a0a0d0ffa2953bf735c15c2fa0213350"
|
|
5261
|
+
dependencies = [
|
|
5262
|
+
"base64 0.23.1",
|
|
5263
|
+
"bytes",
|
|
5264
|
+
"chrono",
|
|
5265
|
+
"futures",
|
|
5266
|
+
"http",
|
|
5267
|
+
"indexmap 2.14.1",
|
|
5268
|
+
"pin-project-lite",
|
|
5269
|
+
"process-wrap",
|
|
5270
|
+
"reqwest 0.13.4",
|
|
5271
|
+
"serde",
|
|
5272
|
+
"serde_json",
|
|
5273
|
+
"sse-stream",
|
|
5274
|
+
"thiserror 2.0.20",
|
|
5275
|
+
"tokio",
|
|
5276
|
+
"tokio-stream",
|
|
5277
|
+
"tokio-util",
|
|
5278
|
+
"tracing",
|
|
5279
|
+
]
|
|
5280
|
+
|
|
5220
5281
|
[[package]]
|
|
5221
5282
|
name = "rpassword"
|
|
5222
5283
|
version = "7.5.4"
|
|
@@ -5315,7 +5376,7 @@ dependencies = [
|
|
|
5315
5376
|
"errno",
|
|
5316
5377
|
"libc",
|
|
5317
5378
|
"linux-raw-sys",
|
|
5318
|
-
"windows-sys 0.
|
|
5379
|
+
"windows-sys 0.61.2",
|
|
5319
5380
|
]
|
|
5320
5381
|
|
|
5321
5382
|
[[package]]
|
|
@@ -5374,7 +5435,7 @@ dependencies = [
|
|
|
5374
5435
|
"security-framework",
|
|
5375
5436
|
"security-framework-sys",
|
|
5376
5437
|
"webpki-root-certs",
|
|
5377
|
-
"windows-sys 0.
|
|
5438
|
+
"windows-sys 0.61.2",
|
|
5378
5439
|
]
|
|
5379
5440
|
|
|
5380
5441
|
[[package]]
|
|
@@ -5840,13 +5901,14 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
|
|
|
5840
5901
|
|
|
5841
5902
|
[[package]]
|
|
5842
5903
|
name = "sigit"
|
|
5843
|
-
version = "1.6.
|
|
5904
|
+
version = "1.6.7"
|
|
5844
5905
|
dependencies = [
|
|
5845
5906
|
"agent-client-protocol",
|
|
5846
5907
|
"anyhow",
|
|
5847
5908
|
"async-trait",
|
|
5848
5909
|
"base64 0.22.1",
|
|
5849
5910
|
"crossterm",
|
|
5911
|
+
"ed-mcp",
|
|
5850
5912
|
"futures",
|
|
5851
5913
|
"libc",
|
|
5852
5914
|
"log",
|
|
@@ -6028,7 +6090,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
6028
6090
|
checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"
|
|
6029
6091
|
dependencies = [
|
|
6030
6092
|
"libc",
|
|
6031
|
-
"windows-sys 0.
|
|
6093
|
+
"windows-sys 0.61.2",
|
|
6032
6094
|
]
|
|
6033
6095
|
|
|
6034
6096
|
[[package]]
|
|
@@ -6076,6 +6138,19 @@ dependencies = [
|
|
|
6076
6138
|
"unicode-segmentation",
|
|
6077
6139
|
]
|
|
6078
6140
|
|
|
6141
|
+
[[package]]
|
|
6142
|
+
name = "sse-stream"
|
|
6143
|
+
version = "0.2.6"
|
|
6144
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
6145
|
+
checksum = "c25ac7aff0abd1dbc474536e40416e1102c7dd9bfba0b9861c6d357f835dcfb4"
|
|
6146
|
+
dependencies = [
|
|
6147
|
+
"bytes",
|
|
6148
|
+
"futures-util",
|
|
6149
|
+
"http-body",
|
|
6150
|
+
"http-body-util",
|
|
6151
|
+
"pin-project-lite",
|
|
6152
|
+
]
|
|
6153
|
+
|
|
6079
6154
|
[[package]]
|
|
6080
6155
|
name = "stable_deref_trait"
|
|
6081
6156
|
version = "1.2.1"
|
|
@@ -6507,7 +6582,7 @@ dependencies = [
|
|
|
6507
6582
|
"getrandom 0.4.3",
|
|
6508
6583
|
"once_cell",
|
|
6509
6584
|
"rustix",
|
|
6510
|
-
"windows-sys 0.
|
|
6585
|
+
"windows-sys 0.61.2",
|
|
6511
6586
|
]
|
|
6512
6587
|
|
|
6513
6588
|
[[package]]
|
|
@@ -6537,7 +6612,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
6537
6612
|
checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874"
|
|
6538
6613
|
dependencies = [
|
|
6539
6614
|
"rustix",
|
|
6540
|
-
"windows-sys 0.
|
|
6615
|
+
"windows-sys 0.61.2",
|
|
6541
6616
|
]
|
|
6542
6617
|
|
|
6543
6618
|
[[package]]
|
|
@@ -6792,6 +6867,17 @@ dependencies = [
|
|
|
6792
6867
|
"tokio",
|
|
6793
6868
|
]
|
|
6794
6869
|
|
|
6870
|
+
[[package]]
|
|
6871
|
+
name = "tokio-stream"
|
|
6872
|
+
version = "0.1.19"
|
|
6873
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
6874
|
+
checksum = "a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b"
|
|
6875
|
+
dependencies = [
|
|
6876
|
+
"futures-core",
|
|
6877
|
+
"pin-project-lite",
|
|
6878
|
+
"tokio",
|
|
6879
|
+
]
|
|
6880
|
+
|
|
6795
6881
|
[[package]]
|
|
6796
6882
|
name = "tokio-tungstenite"
|
|
6797
6883
|
version = "0.28.0"
|
|
@@ -7724,7 +7810,7 @@ version = "0.1.11"
|
|
|
7724
7810
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7725
7811
|
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
|
7726
7812
|
dependencies = [
|
|
7727
|
-
"windows-sys 0.
|
|
7813
|
+
"windows-sys 0.61.2",
|
|
7728
7814
|
]
|
|
7729
7815
|
|
|
7730
7816
|
[[package]]
|
|
@@ -7748,11 +7834,23 @@ version = "0.61.3"
|
|
|
7748
7834
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7749
7835
|
checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893"
|
|
7750
7836
|
dependencies = [
|
|
7751
|
-
"windows-collections",
|
|
7837
|
+
"windows-collections 0.2.0",
|
|
7752
7838
|
"windows-core 0.61.2",
|
|
7753
|
-
"windows-future",
|
|
7839
|
+
"windows-future 0.2.1",
|
|
7754
7840
|
"windows-link 0.1.3",
|
|
7755
|
-
"windows-numerics",
|
|
7841
|
+
"windows-numerics 0.2.0",
|
|
7842
|
+
]
|
|
7843
|
+
|
|
7844
|
+
[[package]]
|
|
7845
|
+
name = "windows"
|
|
7846
|
+
version = "0.62.2"
|
|
7847
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7848
|
+
checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580"
|
|
7849
|
+
dependencies = [
|
|
7850
|
+
"windows-collections 0.3.2",
|
|
7851
|
+
"windows-core 0.62.2",
|
|
7852
|
+
"windows-future 0.3.2",
|
|
7853
|
+
"windows-numerics 0.3.1",
|
|
7756
7854
|
]
|
|
7757
7855
|
|
|
7758
7856
|
[[package]]
|
|
@@ -7764,6 +7862,15 @@ dependencies = [
|
|
|
7764
7862
|
"windows-core 0.61.2",
|
|
7765
7863
|
]
|
|
7766
7864
|
|
|
7865
|
+
[[package]]
|
|
7866
|
+
name = "windows-collections"
|
|
7867
|
+
version = "0.3.2"
|
|
7868
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7869
|
+
checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610"
|
|
7870
|
+
dependencies = [
|
|
7871
|
+
"windows-core 0.62.2",
|
|
7872
|
+
]
|
|
7873
|
+
|
|
7767
7874
|
[[package]]
|
|
7768
7875
|
name = "windows-core"
|
|
7769
7876
|
version = "0.61.2"
|
|
@@ -7798,7 +7905,18 @@ checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
|
|
|
7798
7905
|
dependencies = [
|
|
7799
7906
|
"windows-core 0.61.2",
|
|
7800
7907
|
"windows-link 0.1.3",
|
|
7801
|
-
"windows-threading",
|
|
7908
|
+
"windows-threading 0.1.0",
|
|
7909
|
+
]
|
|
7910
|
+
|
|
7911
|
+
[[package]]
|
|
7912
|
+
name = "windows-future"
|
|
7913
|
+
version = "0.3.2"
|
|
7914
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7915
|
+
checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb"
|
|
7916
|
+
dependencies = [
|
|
7917
|
+
"windows-core 0.62.2",
|
|
7918
|
+
"windows-link 0.2.1",
|
|
7919
|
+
"windows-threading 0.2.1",
|
|
7802
7920
|
]
|
|
7803
7921
|
|
|
7804
7922
|
[[package]]
|
|
@@ -7845,6 +7963,16 @@ dependencies = [
|
|
|
7845
7963
|
"windows-link 0.1.3",
|
|
7846
7964
|
]
|
|
7847
7965
|
|
|
7966
|
+
[[package]]
|
|
7967
|
+
name = "windows-numerics"
|
|
7968
|
+
version = "0.3.1"
|
|
7969
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7970
|
+
checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26"
|
|
7971
|
+
dependencies = [
|
|
7972
|
+
"windows-core 0.62.2",
|
|
7973
|
+
"windows-link 0.2.1",
|
|
7974
|
+
]
|
|
7975
|
+
|
|
7848
7976
|
[[package]]
|
|
7849
7977
|
name = "windows-registry"
|
|
7850
7978
|
version = "0.6.1"
|
|
@@ -7985,6 +8113,15 @@ dependencies = [
|
|
|
7985
8113
|
"windows-link 0.1.3",
|
|
7986
8114
|
]
|
|
7987
8115
|
|
|
8116
|
+
[[package]]
|
|
8117
|
+
name = "windows-threading"
|
|
8118
|
+
version = "0.2.1"
|
|
8119
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
8120
|
+
checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37"
|
|
8121
|
+
dependencies = [
|
|
8122
|
+
"windows-link 0.2.1",
|
|
8123
|
+
]
|
|
8124
|
+
|
|
7988
8125
|
[[package]]
|
|
7989
8126
|
name = "windows_aarch64_gnullvm"
|
|
7990
8127
|
version = "0.48.5"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "sigit"
|
|
3
|
-
version = "1.6.
|
|
3
|
+
version = "1.6.7"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
description = "siGit Code — ACP-compatible AI coding agent. Sí, git."
|
|
6
6
|
documentation = "https://github.com/getsigit/sigit"
|
|
@@ -25,6 +25,9 @@ path = "src/main.rs"
|
|
|
25
25
|
# ACP protocol SDK
|
|
26
26
|
agent-client-protocol = { version = "2.2", features = ["unstable_session_fork"] }
|
|
27
27
|
|
|
28
|
+
# MCP client (rmcp underneath), shared with the other Onde agents
|
|
29
|
+
ed-mcp = "1.2.0"
|
|
30
|
+
|
|
28
31
|
# Onde Inference engine (local LLM)
|
|
29
32
|
# onde = { path = "../onde" }
|
|
30
33
|
onde = "1.3.1"
|