NCBM
19ac4533d4
core/tools: invalidate lineno read state on file mutation
2026-08-01 01:22:30 +08:00
NCBM
56ac8d17d7
core/tools: restrict edit_lineno to lines read with line numbers
2026-08-01 01:21:00 +08:00
NCBM
1d4e48f6f3
core/agent: normalize provider usage structs in token_usage_from_api
2026-08-01 01:09:12 +08:00
NCBM
626012e92f
core/agent: unify provider finish_reason mapping
2026-08-01 01:05:26 +08:00
NCBM
5198a8da20
core/agent: align missing-terminal contract in messages dispatch
2026-08-01 01:05:17 +08:00
NCBM
e29e66dbc7
core/agent: surface openai responses stream error events
2026-08-01 01:05:09 +08:00
NCBM
06f1b386a0
test/lmproto: cover anthropic messages client HTTP round-trips
2026-08-01 00:41:59 +08:00
NCBM
44a5f047ba
core/runtime: plumb anthropic HTTP timeout
2026-08-01 00:34:41 +08:00
NCBM
3a671f73ea
core/agent: wire anthropic messages bridge and dispatch
2026-08-01 00:34:32 +08:00
NCBM
de7cae83e4
core/agent: restore OpenAI responses dispatch and provider_tools
2026-08-01 00:34:15 +08:00
NCBM
ad58d6cdc6
lint: drop dead code that blocks basedpyright (unused helper and import)
2026-08-01 00:33:25 +08:00
NCBM
ef3594ad62
core/tools: change ask_user_choice and ask_user_form params from JSON strings to typed lists
2026-07-29 01:42:00 +08:00
NCBM
f5b566b371
core/tools: add per-turn guard requiring lineno read before edit_lineno
2026-07-29 01:40:31 +08:00
NCBM
60f9c9b56d
core/agent: danger classification overrides YOLO tag in confirm pipeline
2026-07-29 01:37:17 +08:00
NCBM
904ac3d982
core/agent: remove turn-start todo nag -- nag only fires after complete turn
2026-07-29 01:07:59 +08:00
NCBM
f60fd876c6
test: update for kind-based dispatch and remove ResponsesChatClient references
2026-07-29 00:46:08 +08:00
NCBM
0ce9ed84a0
core/agent: suppress end-of-turn todo nag on retry when turn-start pair survived
2026-07-28 23:52:06 +08:00
NCBM
a83c67ba6d
test/agent: cover synthetic_tool todo nag retry detection
...
Adds 7 unit tests for _synthetic_todo_pair_after and committed_prefix_end
with synthetic todo nag pairs: survival across rollback, detection at
correct index, immunity to real tool calls, and multiple rollbacks.
These directly verify the guard that prevents duplicate turn-start
nag injection on /retry when a synthetic pair from a previous failed
attempt survived rollback (committed tool batch).
2026-07-28 23:45:27 +08:00
NCBM
9600d2f757
core/lmproto: coerce developer role for chat completions
2026-07-28 22:16:36 +08:00
NCBM
c7ee9b0063
test/config: cover model-level preset routing
2026-07-28 21:45:59 +08:00
NCBM
0ca92dfd7e
core/config: networking ssrf_assume_public_cidrs for fetch Fake-IP
2026-07-24 20:20:30 +08:00
NCBM
f3cefccefc
test/memory: cover session context usage fields
2026-07-24 19:41:37 +08:00
NCBM
e3e0cf2080
core/agent: append-only directive checkpoints on token bands
2026-07-24 19:40:37 +08:00
NCBM
f5a667567d
test/tools: cover fetch SSRF, methods, and user-agent
2026-07-24 19:08:10 +08:00
NCBM
908e68665b
core/agent: run_aside side turns; CLI /btw with --tools
2026-07-24 17:42:34 +08:00
NCBM
559a3410bc
core/config: write LF strings as TOML multi-line literals
2026-07-24 17:21:50 +08:00
NCBM
da4d3d097a
core/config: persist provider models as TOML inline tables
2026-07-24 17:11:39 +08:00
NCBM
03e04f9a38
core/cli: plugins list/enable/disable commands and /plugins slash
2026-07-24 16:44:44 +08:00
NCBM
1d718582ac
core/tools: drop process workspace/todo globals; require bound state
2026-07-24 16:32:33 +08:00
NCBM
4215a8cea0
core/config: top-level [plugins] enable/disable allowlist
2026-07-24 16:19:50 +08:00
NCBM
ac3230647a
test/agent: bind todo tools via SessionState instead of process global
2026-07-24 16:00:17 +08:00
NCBM
8baaa3f2e1
core/tools: hang workspace policy on InstanceState
2026-07-24 15:58:55 +08:00
NCBM
6c6cec05c4
core/cli: bind todo persist via session state, not process global
2026-07-24 15:49:57 +08:00
NCBM
7a3704edc1
core/tools: resolve_path accepts instance workspace root
2026-07-24 15:41:59 +08:00
NCBM
90c07061f3
core/tools: persist soft-confirm grants under session.data
2026-07-24 15:41:39 +08:00
NCBM
3d5380a3d4
core/tools: todo tools commit via session.data transactions
2026-07-24 15:31:26 +08:00
NCBM
e82a226f91
core/tools: serialize domain objects on PersistentDataView commit
2026-07-24 15:31:06 +08:00
NCBM
96518974be
core/tools: allowlisted entry-point plugin loader
2026-07-24 15:09:11 +08:00
NCBM
662e95f693
core/cli: /tools --list shows tags and catalog source
2026-07-24 15:04:33 +08:00
NCBM
7253ca84dd
core/tools: prefer instance workspace and session todo views
2026-07-24 15:02:52 +08:00
NCBM
12c8adda3a
test/tools: catalog, grants, and async tool helpers
2026-07-24 14:57:03 +08:00
NCBM
30beec6600
core/config: split agent system_prompt and tool_directives
2026-07-21 22:55:51 +08:00
NCBM
db7c097466
test/cli: isolate oneshot chat from user-data database
2026-07-21 22:44:26 +08:00
NCBM
b06bb1d409
core/agent: shift persist_from when prepending system prompt
2026-07-21 22:44:09 +08:00
NCBM
b51d4780ab
core/agent: refresh synthetic_tool todo nags to live stack
2026-07-21 22:42:27 +08:00
NCBM
6d74d31cea
core/config: default system prompt for coding agent tools
2026-07-20 18:21:27 +08:00
NCBM
767578723e
core/runtime: configurable provider HTTP request timeouts
2026-07-20 18:08:27 +08:00
NCBM
879e28ea4c
core/agent: synthetic_tool review always when stack non-empty
...
needs_review is true for any non-empty stack so end-of-turn inject
keeps firing under synthetic_tool. Message history keeps only the last
todo-nag tool pair (dedupe by todo-nag- tool_call_id).
2026-07-20 16:20:01 +08:00
NCBM
7bdd9ff8b7
chore: pin ruff and basedpyright for prek and lockfile
...
Match prek additional_dependencies and pyproject dev pins to pdm.lock
(ruff==0.15.22, basedpyright==1.39.9). Format fix for ruff 0.15.22.
2026-07-20 04:35:26 +08:00
NCBM
59017fd61b
core/agent: synthetic_tool nag uses real todo_list render body
...
developer/user keep OPEN WORK prose; synthetic_tool injects forged
todo_list call with stack.render() only so the result matches a real
tool output.
2026-07-20 04:10:21 +08:00