Skip to content

Releases: inhere/suga

v0.52.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 10:19

Change Log

Refactor

  • refactor(agentcore): move DurationFromSeconds into api to keep the layering ddb4a39
  • refactor(store): drop the xhen session origin 743ebe9
  • refactor(sugasdk): drop the DefaultOrigin alias; tidy a stale comment 97630f1
  • refactor(agentcore): make the no-vision image note English 7edcb65

Feature

  • feat(chatui): extract line editor ed57126
  • feat(sugasdk): pin sessions from garbage collection 1a38d3f
  • feat(chatui): extract markdown and streaming text 9c46a9b
  • feat(sugasdk): add stable memory UUIDs a48a437
  • feat(sugasdk): add entry lookup and session cancel 6f758d4
  • feat(chatui): extract approval prompts ba871b4
  • feat(adddir)!: separate SUGA_ADD_DIRS entries with commas 9e19a40
  • feat(tools): give background tasks their own timeout cap 7757218
  • feat(tools): keep session_message out of gofer jobs by default 598c031
  • feat(sugasdk): default session origin sdk; hosts keep sessions with Pin 539c576
  • feat(chat): color the tool lines by tool family; add chat.colors d8f05bc
  • feat(llm): keep the upstream prompt cache across idle sessions and summaries 3bc75d6
  • feat(llm): expand provider header placeholders to turn, model and provider f613f7b
  • feat(run): --clear-ctx starts the turn on an empty segment of the same session f4217f4
  • feat(stream-json): report the turn's context occupancy 285016b
  • feat(sugasdk): let a host pin a session's project memory scope d925da0
  • feat(tools): refuse to overwrite a file changed since it was read a1dd838

Fixed

  • fix(tools): clamp model-given seconds before converting to a duration fec3ebe
  • fix(tools): preserve task limits and defaults c369d02
  • fix(personal): the elided-image note says the picture is still there 27d12aa
  • fix(chat): mark a read tool with ▸, not ⏺, so it is not read as ▣ bf41a89
  • fix(personal): shorten the elided-image note and read it from the catalog fc5cf09
  • fix(tools): file_grep exclude reads a wildcard as a file pattern b069b58
  • fix(hooks): a Stop wait that reaches its bound is not a failure fa5779e
  • fix(tools): name the character a path cannot carry, instead of the OS text 7972ba3
  • fix(loop_guard): remind a call whose argument prefix keeps failing c5b9875
  • fix(wiring): sub-agent runtimes keep the host's project memory key 9a5718e
  • fix(llm): retry a response whose tool arguments carry reasoning-channel text 0f3e9df
  • fix(tools): refuse a recursive delete of home, root, an ancestor or an outside path bd41155
  • fix(tools): a writable --add-dir counts as inside for the delete guard f40a43a
  • fix(tools): suga's own undo and restores refresh the write guard 4b15065

Other

  • chore(tracker): close the cache hit-rate issue after v0.51.0 f2eec09
  • docs(store): keep the host-managed retention note next to the pin note 1d2c40b
  • chore(tracker): close the session pin issue d0fce71
  • docs(store): restore the memory_meta notes next to the uuid note 23bb824
  • chore(tracker): close the memory uuid issue 7492588
  • docs(sugasdk): keep the request-id note on claimRequest b0cbabb
  • chore(tracker): close the entry-ref issue bbcd00d
  • docs(chatui): restore the approval prompt notes moved from internal/chat b5c0ce6
  • chore(tracker): flaky builtin skills release test on Windows 827415f
  • chore(tracker): two sugasdk read APIs xhen needs ec4531f
  • chore: add some ENV name on suga help fc81203
  • test(tools): explicit background calls also stop at the task cap 6434912
  • chore(tracker): SQLITE_BUSY in toolEventHook under xhen cfc158a
  • chore(tracker): migrate the pty smoke to Go and gopty 9beb20e
  • docs: document sdk session retention and Pin 3feb609
  • test(wiring): budget for the file_grep exclude wording 54beb55
  • docs: changelog for the file_grep exclude and Stop hook timeout fixes d5d9d95
  • docs(skill): name the Codex channel's session headers as the cache cause 2aecb75
  • chore: rename a config dir 7525b76
  • docs(design): draft the native /responses/compact design 6344a2c
  • docs: --clear-ctx and the stream-json context object b65f188
  • docs(skill): mention --clear-ctx and the stream-json context object in suga-guide 8eff402
  • test(stream-json): pin the context object on turn_end and the default window eff6d7d
  • chore(tracker): retry on reasoning-channel text leaking into tool arguments 21acf08
  • test(run): pin --clear-ctx to an empty segment and the cleared deferred tools 8ff75ce
  • chore(tracker): move six Reasonix-survey issues from the workspace tracker e77b885
  • chore(tracker): close batch 47 issues 561f117
  • chore(tracker): memory edit after re-adding a removed title 2b2bffd

v0.51.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 15:49

Change Log

Refactor

  • refactor(personal): fold the handoff shape check into one function bfa6a52

Feature

  • feat(personal): persist the last request fingerprint and split resumed calls into buckets 409d404
  • feat(inspect): prefix reuse rate and per-segment section hashes cc829da
  • feat(eval): report which segment sections change 44afa67
  • feat(personal): write a segment break's handoff package on the segment prefix 61f1335
  • feat(trace): count handoff_reuse in --analyze and the eval summary 7fcb9c2
  • feat(trace): name where a rebuilt segment request differs edc9ef9
  • feat(config): handoff prefix reuse off by default after the evaluation d67f5e7

Fixed

  • fix(personal): rebuild the segment request so a resumed process can reuse the prefix 79f7112
  • fix(inspect): keep failed attempts out of the cache buckets 6c7630c
  • fix(personal): reuse the prefix for a compaction between turns 4ed5000
  • fix(personal): declare the last turn's tool table in a between-turn break f45a719
  • fix(personal): stop sending tool_choice:none on the handoff prefix call eee38cd
  • fix(personal): name the missing handoff sections and accept deeper headings e33c94f
  • fix(personal): accept handoff section headings written in the conversation's language 78cb038

Other

  • docs(research): what suga can take from a Codex harness/context/memory write-up 68fca8b
  • docs: cache hit buckets second step (resume fingerprint, provider switch, reuse rate) e25816f
  • chore(tracker): note the full sha for the CI wait 4a8121a
  • chore(tracker): suga contracts for xhen links dced137
  • docs(design): handoff call reuses the session prefix (draft 0.1) 4fd7268
  • docs(design): handoff prefix reuse approved (0.2) f7e65ce
  • docs: changelog and cache-bucket research pointer for the handoff reuse 35017e4
  • test(cli): lock that an all-success session shows no failed_attempts row 1b19bbe
  • test(wiring): drive the between-turn handoff reuse through the assembly e646c41
  • test(personal): keep a discarded handoff answer in the debug log cfd82fe
  • docs(design): handoff prefix reuse 0.4 - record the rebuild and fingerprint changes b8318fb
  • chore: fix flag error, update desc 8b05dad
  • test(personal): cover the translated-headings handoff on the real segment break 88306c4
  • chore(tracker): tool_choice none breaks the cached prefix ac239f7

v0.50.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 07:15

Change Log

Refactor

  • refactor(chat): move sub-agent progress out of render.go 25a0a67
  • refactor(chat): read the status and notice lines from the catalog only 9bff5a5

Feature

  • feat(demo): record a chat demo with a fake model timeline 801e963
  • feat(inspect): classify model calls by cache bucket and report hit rates 1bb8ef8
  • feat(eval): report cache hit rate per bucket in the summary and compare 32f0d25
  • feat(inspect): a resumed process gets its own resume bucket 91e8f8a
  • feat(i18n): add language catalog facade 7230adf
  • feat(config): add language setting e30e9a3
  • feat(wiring): assemble immutable ui catalog 125319d
  • feat(chat): one place to take the UI translator from 8d88d76
  • feat(chat): localize status output 5cab98d
  • feat(chat): localize command help dec9cf5
  • feat(chat): localize approval prompts f69ff26
  • feat(personal): localize visible runtime status e0204b8
  • feat(chat): finish localizing status output 5dee8b3
  • feat(host): localize host-facing diagnostics fea0049
  • feat(cli): localize user-facing output 9206b15
  • feat(chat): localize the remaining status text c1d4206
  • feat(cli): finish localizing user-facing output 306a38b
  • feat(cli): translate the --verify text-mode diagnostics d8397f0
  • feat(cli): show --output-schema compile errors in the UI language 7c6eac5
  • feat(i18n): add model-facing english minimum set faa9623
  • feat(cli)!: group sessions, compact and undo under suga session 84a52fc
  • feat(cli): forward the old session commands with a notice fa2d8fb

Fixed

  • fix(demo): drain the fake model log and edit the demo's own file ce1850d
  • fix(i18n): look up GetUserDefaultLocaleName before calling it f0a77cf
  • fix(wiring): restore the comments T3 overwrote and test the language assembly 631e6e8
  • fix(chat): restore the SessionID comment removed by the status migration 98f62e5
  • fix(clipboardimage): drop the unused fmt import on Linux f28484b

Other

  • test(ptye2e): wait for what a step prints, not for a prompt the echo already shows 2e2bd9f
  • chore(tracker): ptye2e wait rule 04e4782
  • docs(demo): document the chat demo recording and link it from the READMEs 7521014
  • docs: add MIT license and refresh README c22da77
  • docs(readme): quick start uses a runnable model line and current Claude id d604fe9
  • docs(demo): add the recorded chat demo cast and its GIF 1a2ad9c
  • docs(readme): show the demo GIF in place of the placeholder 8928d10
  • chore(tracker): track within-segment cache hit rate (suga-jh7b) 9efd22a
  • chore(tracker): remember cache hit rate as an ongoing focus e116976
  • docs(research): record the cache bucket definitions and a measured run 0fcf6de
  • chore(tracker): record the first cache bucket measurement (suga-jh7b) 38785fe
  • docs(research): inventory of Chinese strings for i18n 7aaa04f
  • docs(design): i18n and the lang setting, draft 0.2 with review 9186000
  • docs(design): i18n design 0.3 approved, with phase 1b 2ad667a
  • docs(design): use the Approved status form the validator expects 1aef034
  • docs(design): i18n 0.4 - the key is language, aliases normalised dc4fbb5
  • docs: add i18n implementation plan 9a184ec
  • docs(plan): i18n plan 0.2 after supervisor review 5355752
  • docs(plan): i18n plan 0.2 approved 05d353f
  • docs(i18n): add T0 baseline and dependency check report c3ff721
  • docs(plan): i18n plan 0.3 - implementation rules from T0 6e5f034
  • test(i18n): accept any area files as long as both languages match b5dd4d7
  • test: pin SUGA_LANGUAGE=zh where tests go through the real assembly 3a52fe2
  • test(smoke): run the pty smokes with SUGA_LANGUAGE=zh 114ad2e
  • test(personal): English coverage for the usage hints and the recovery notice a832cc6
  • test(smoke): pin zh ui and add english chat coverage dd35d95
  • test(smoke): pick free ports instead of fixed ones 5c11016
  • docs: document the language setting d9a91f3
  • test(ptye2e): cover the English chat UI 1968207
  • docs(smoke): document the language pin and auto ports fd5d8bb
  • chore(tracker): record the i18n phase 1 leftovers 04a630a
  • test(smoke): default chat_loop_guard --bin to tmp/smoke/suga ecd5ef8
  • docs(cli): document the verifyFailedError helpers 6fa732f
  • chore(tracker): track the session command group e8f601e
  • chore(tracker): record the session group decisions bffd7ff
  • docs: name the session commands by their suga session spelling 8a6942f
  • chore(tracker): note the session group merge 11fa2b7
  • docs(research): i18n phase 1b real-model evaluation 5829be8

v0.49.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 16:19

Change Log

Feature

  • feat(chat): add :skills and :context commands and hint unknown commands 82ca1c6
  • feat(llm): record real provider SSE replay fixtures 6a7efa7
  • feat(eval): compare subcommand and prompt-effect ledger a960a26
  • feat(eval): cache rows and per-task timing split in compare report 8d8ef6f
  • feat(chat): 输入历史默认按项目隔离(chat.history_scope) dc139fa

Other

  • chore(deps): bump golang.org/x/term from 0.46.0 to 0.47.0 (#8) 34ffa08
  • chore(deps): bump github.com/gookit/gopty from 0.1.1 to 0.1.2 (#12) 552f829
  • chore(tracker): deferred-on session_search increase 25a9614
  • chore(deps): bump golang.org/x/image from 0.22.0 to 0.47.0 (#11) 59aede6
  • chore(deps): bump golang.org/x/text from 0.42.0 to 0.43.0 (#6) 19501e3
  • chore(deps): bump github.com/santhosh-tekuri/jsonschema/v6 (#10) f91a596
  • chore(deps): bump golang.org/x/net from 0.59.0 to 0.61.0 (#7) 60022b1
  • chore(tracker): :skills and :context chat commands issue 540bf60
  • docs: analyze deferred session search usage da91995
  • docs: :skills and :context commands, unknown command hint; smoke checks 7b4c968
  • chore(tracker): close hg30 okbt bb8e0a9
  • chore(tracker): close 8pug xw5g 2f57fd7
  • test(llm): replay recorded provider SSE fixtures through the real parsers 21843f9
  • test(llm): fuzz the SSE stream parsers against the recorded fixtures e864055
  • test: expand cross-platform pty smoke coverage 5b59fcc
  • test(llm): run idle/retry/timeout waits on the synctest fake clock f3b6e21
  • docs: CHANGELOG for SSE replay fixtures, fuzz and synctest work 15bd92c
  • test(eval): a stub run may take 0 ms 7d1049b
  • test(ptye2e): cover answered prompts, Ctrl-C on a long tool, :queue -d, :tasks -k and resume 3ab7564
  • test(chat): ptye2e 历史按项目隔离的场景(project/all 两个范围) 744aef4
  • docs(chat): chat.history_scope 文档与 CHANGELOG 条目 ed52ac8
  • chore(tracker): ptye2e flake note f1fdfaa
  • test(ptye2e): leave chat with exitChat, not two back-to-back Ctrl-C 13718ba

v0.48.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 07:11

Change Log

Feature

  • feat(tools): trim the first batch of duplicated tool description wording 1c5baf3
  • feat(chat): :tasks 默认只列运行中+最近结束,新增 -a/-k/-h deaefc6
  • feat(tools): defer low-frequency native tools by name (T2) with listing, search params (T3) and segment apply plus tool_call proxy (T4) ae0c6b5
  • feat(observe): report deferred native tools in the context and tool_search events (T5) 2b78880
  • feat(manifest): name the deferred and loaded tools in the resident context note (T5) 8b2ef7c
  • feat(chat): every local command answers -h from one usage table 7405115

Fixed

  • fix(chat): 子 agent 状态行按调用 ID 记账,随结果、回合结束和后台任务清理 c31567a
  • fix(chat): 子 agent 条目加锁,后台子 agent 的进度与 :tasks 读同一张表 da000c3
  • fix(chat): 无调用 ID 的 provider 按 description 记子 agent 条目 2b3ba0c
  • fix(tools): name the directories no_ignore brings back a2e79ba
  • fix(chat): :tasks -k says an ended task needs no kill; agent smoke checks match what a pty shows 42b327c
  • fix(chat): repaint a drawn block whose read is gone with the new read's prompt dacb41a
  • fix(native): a run cancelled between Start and Started is a cancellation d688eb7

Other

  • chore(tracker): release flow notes how to preview the intranet upload b19e83e
  • docs: 新增 native 工具按需加载设计(Draft 0.1,待批准) 10ecc9b
  • test(wiring): cap every native tool schema behind toolSchemaBudget a0727cc
  • docs: 未发布记录工具描述精简第一批 cb3a8cb
  • chore(tracker): agent status leak and :tasks options ccb1bed
  • docs(design): native deferred tools 0.2 after review (in-segment calls via probe or proxy tool) 19ac735
  • test(personal): tool 事件带调用 ID、子 agent 进度带父调用 ID bc05c09
  • test(smoke): chat_agent 加子 agent 报错/取消/kill 后状态行清理的场景 0a7e1dc
  • docs(design): native deferred tools 0.2 approved 1a477ec
  • docs(plan): native deferred tools plan draft 0.1 24735eb
  • docs(plan): native deferred tools plan approved 5119f74
  • docs(T1): provider probe - models do not call undeclared tools, proxy tool_call selected 5ad113c
  • docs(T6): document tools.deferred_native and tools.deferred_apply 260c837
  • test(T6): add longsession-lowfreq-tools eval task needing a folded output read-back 181fd73
  • test(T6): pty smoke for deferred native tools (tool_search, tool_call, segment fold) 5f684aa
  • docs(T6): document deferred native tools in README and suga-guide references a487c2b
  • test(T6): keep the 503 rid distinct from the filler lines in the new eval task 0aa1895
  • docs(plan): record native deferred tools implementation status a9ac54e
  • chore(tracker): prompt residue after a question 1903ff9
  • chore(tracker): close xr4t h53s 4e72159
  • test(ptysmoke): make chat_deferred_native run and check what it claims d3f017d
  • test(chat): cover the stale-block repaint at the editor and the chat prompt path 2f0a799
  • test(ptysmoke): check the prompt row after answered questions in chat_memory/chat_approval c65f6bf
  • docs: changelog for the answered-question prompt restore (suga-9ew7) 30992dd
  • test(ptysmoke): cover the per-command -h and the queue/checkpoints arguments e41a0ca
  • docs: chat command help, -h and the queue/checkpoints arguments 8e81720
  • chore(tracker): unknown chat command issue a1a63a0
  • test(ptysmoke): fakellm's reply chain is one if/elif again 4ccb0bc
  • chore(tracker): rule - full smoke after a fakellm change 7304ffb
  • test(ptysmoke): chat_tool_lines reads the one-command-per-line :help 70937de
  • docs(brand): add the suga mark, wordmark and icon assets 180d2f7

v0.47.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 06:09

Change Log

Refactor

  • refactor(llm): log the pool's connect-failure cooldown with the attempt's elapsed 01926f1

Feature

  • feat(tools/native): file_read reads pictures (T1) 7082d52
  • feat(tools): skip the prefetch run-ahead for picture calls (T2) f72f312
  • feat(wiring): file_read reads pictures through the runtime's pipeline (T3) 97ae75a
  • feat(personal): say file_read for an omitted picture, smoke the chat path (T5) 39b1a08
  • feat(eval): repeat summary with pass counts and mean/min-max, plus a timing split per run 02d9aeb

Fixed

  • fix(llm): switch to the fallback model at once when a connect fails 0e8d043
  • fix(llm): replay tool_use input as {} when arguments were dropped 6512509
  • fix(llm): keep the connect timeouts on proxied provider transports 7811198
  • fix(eval): record the timing split for omp and claude runs too 64340e6
  • fix(personal): keep the deadline hint stable within a turn 3f2b5c6
  • fix(personal): freeze the deadline hint's position at the turn's first request 3032c0b
  • fix(eval): keep the variant overview at plain means, ranges stay per task c4a38ba
  • fix(eval): name the variant in the timing and long-session rows 050c997

Other

  • test(tools): pin view_image as a hidden alias (T4) b690a5d
  • docs: file_read reads pictures, view_image is a hidden alias (T6) 10054a1
  • test(personal): prove the observed tool table passes a listed tool through (T3) efed3be
  • test(personal): the omitted-picture note names file_read (T5) e1f4a28
  • test(tools): a picture result survives the output layer, refs note in paths (T1) 191aaab
  • docs(personal): the recorder's vision field no longer scopes the tool table (T3) cdce7ac
  • test(ptysmoke): make chat_read_image run - fakellm image mode, picture-carrying user message, pipe pump ccc5c59
  • docs(plan): file_read images implemented; close yri4 89e883e
  • chore(tracker): thinking block signature issue afbfd04
  • test(proctree): wait up to 60s for the detached child's pid and print the launcher output 102a37e
  • test(eval): cover repeat aggregation, the unchanged single-run table and the timing split a00d434
  • docs(changelog): connect-phase failover and cooldown f8cb26b
  • docs(skill): connect-phase failover in the config reference 87fc850
  • test(wiring): real-assembly fallback on a refused primary connection 748fe13
  • test(eval): run --repeat 2 through the real task loop against the stub agent 03aa3ed
  • docs(eval): document the repeat summary and the turn/compaction/fault timing split a5e30a3
  • docs: 固定前缀(system + 工具 schema)缩减报告,实测 20 个工具 28,240 字符 6d0d7ac
  • chore(tracker): release flow adds build-all and the intranet upload e7b19b7

v0.46.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 03:44

Change Log

Feature

  • feat(memory): add read-only 'suga memory lint' report 1bae624
  • feat(outschema): T1 compile, extract and check 210d212
  • feat(outschema): T2 per-request ephemeral context 928389c
  • feat(outschema): T3 shared contract run and trace event 99fbaca
  • feat(outschema): T4 run --output-schema, exit code 6 and result line 9752417
  • feat(outschema): T5 sugasdk Prompt.OutputSchema 80e777b
  • feat(tools): 人工批准的工具调用在模型可见结果前注明 e660294
  • feat(compact): 交接包按小节设输出预算并在折叠时去重旧坐标 5239e54

Fixed

  • fix(chat): 会话消息来源标签无条件添加,正文自带的 [...] 前缀不能替代标签 fb2eb69
  • fix(memory): report a same-title pair only as a lint conflict f1c2339
  • fix: proctree(windows) start the shell suspended and resume it after the job assignment b029cdf
  • fix(outschema): the contract block goes before this turn's messages (plan T2) 349c177
  • fix: nudge 内置 unverified-write 白名单放宽到解释器跑工作区脚本(长会话分析 #5) 591e71f
  • fix(tools): 人工批准注记改为追加在结果末尾(保住 ⎿ ok 摘要的首行输出) e8ce68f
  • fix(compact): no output cap on the handoff summary call 0439355

Other

  • test(chat): two delivered lines may ride one merged turn 26a0fe7
  • test(ptysmoke): chat_delivery 增加正文伪造来源标签的冒烟检查 15e58dd
  • docs(changelog): 未发布记会话消息来源标签无条件添加的修复 edb13cf
  • docs: analyse the cost of the longsession-hard naming run 6392943
  • docs: document 'suga memory lint' and its JSON report fb6c49d
  • docs: verify the nudge findings and the cost split against the trace 53a550e
  • docs: compare handoff growth and nudge findings across the four hard tasks a1eabfc
  • docs(design): output schema contract (draft 0.1 for approval) 23735ca
  • test(ptysmoke): send the forged message before waiting for it a478910
  • docs(design): output schema 0.2 after review (ephemeral request context, keep number text) e650a6c
  • docs(changelog): sugasdk Memory.List returns bodies for the files backend 16c968e
  • docs(design): output schema 0.2 approved; next-batch priorities tracked 2d73ffa
  • test: proctree(windows) suspend/assignment/kill-and-limit coverage 3085755
  • docs: changelog for the suspended proctree start on Windows d029ba7
  • docs(plan): output schema phase 1 plan draft 0.1 fe26314
  • docs(plan): output schema phase 1 approved; close co5x 41c7695
  • test(outschema): T1 assert the sandbox sentence of an external ref 02fe8c0
  • docs(outschema): T6 document run --output-schema and the SDK field 018cbb3
  • test(output): T4 cover the result line's output_schema field bb313ca
  • test(cli): T4 cover the schema file path and an unknown draft ff2df25
  • docs(plan): output schema phase 1 implemented; close ikk5 2066288
  • chore(tracker): approval note issue 8b84ccf
  • test(eval): slim longsession-hard-naming-rules to its constraint checks 774e742
  • test(wiring): chat 人工批准注明与自动放行不注明的单测 6979328
  • docs(design): file_read 并入 view_image 设计稿(suga-yri4) 4b7027f
  • test(acpserver): 允许/总是允许/拒绝三种应答下的模型可见结果注明 795e775
  • docs: CHANGELOG 记录人工批准注明;补注释 abd7d2e
  • test(ptysmoke): chat_approval 断言人工批准注记显示、记住的 always 不注明 cd527f6
  • docs: changelog 交接包小节输出预算与折叠去重 34ce7f6
  • docs(design): 段投影设计补交接包小节预算与折叠去重 410afe5
  • docs(design): file_read images 0.2 after review (alias removal condition, benefit size) fd5bf12
  • docs(design): file_read images — template sections (scope, architecture, flows, open questions, gate) 8f78ac9
  • docs(design): file_read images 0.2 approved 3ed6d7b
  • docs(plan): file_read images plan draft 0.1 61a4565
  • docs(plan): file_read images plan approved 841b7c6

v0.45.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 15:31

Change Log

Fixed

  • fix(snapshots): cleanup does not open a writer's unpublished .partial record 21feb3b

Other

  • test(native): busyCommand lives with its only (Windows) user 10fe02d

v0.45.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 15:16

Change Log

Refactor

  • refactor(wiring): 去掉未被调用的 CLI 能力构建包装(staticcheck U1000) b3c6b6a

Feature

  • feat(personal): add read-only SessionCard for one session's current state 7c5cbf5
  • feat(wiring): 宿主扩展点:进程内额外工具与宿主上下文 bfe475b
  • feat(store): 新增 xhen 会话来源,gc --retention 不再按期清理宿主管理会话 4da1e4a
  • feat(personal): 嵌入方可通过 wiring.Options.SessionOrigin 指定会话来源 c2ebe70
  • feat(cli): suga sessions 默认隐藏 xhen 会话并新增 --origin 过滤 3b30b08
  • feat(sdk): add pkg/sugasdk process-in SDK for embedding hosts 057eb1a
  • feat(llm): stream idle timeout for streamed responses (suga-32zx) fcf9cb7
  • feat(tools): approve the rewritten call, and refuse it when the rewriter fails or panics 3a537d0
  • feat(sugasdk): Send 支持可选 RequestID 幂等与投递不确定语义 6f8104a
  • feat(chat): a PreToolUse hook gates tool calls before the approval decision f575398
  • feat(agentcore): 每次工具调用生成 invocation_id 经 ctx 传给工具 1381101
  • feat(personal): 有副作用工具执行前记 admitted,中断回合不重放该调用 58d8cfa
  • feat(personal): 中断小结把状态未知的调用单独标注 08c9d4f
  • feat(cli): add suga compact to break a session segment from the command line 1671c75
  • feat(config): 新增按场景指定模型的 models.compact/idle/handoff 配置键 8aac3bc
  • feat(personal): 空闲整理与 --from 交接按场景取模型 6202295
  • feat(wiring): 装配场景模型 provider 并在 manifest 显示各场景模型 b5c113d
  • feat(shell): shell 子进程资源限制(memory/processes/cpu_time,suga-jysz) b24b386
  • feat(eval): long-session tasks with forced compaction and per-turn checks b40841d
  • feat(eval): 新增 4 个更难的 longsession-hard-* 长会话任务与正则文件检查 f122c82
  • feat(chat): T1 message ID, receipt states, --id and --wait-processed 64aad23
  • feat(chat): T2 merge queued session messages and dedupe by ID bdb8fa1
  • feat(chat): T3 processed/failed receipts and the failure barrier 56f94c0
  • feat(chat): T4 exit receipt discarded and message status query 0941916

Fixed

  • fix(acpserver): hide host-managed sessions from session/list by default (suga-kz0r) 47a12dc
  • fix(personal): require a first-person future marker in the built-in promise-zh rules 9f3a762
  • fix(llm): bound one request's retries by retry.max_elapsed (suga-255e) d3f0091
  • fix(agentcore): a panic in a host hook becomes an error instead of crashing the run 7217ff2
  • fix(sugasdk): stream 回调的 turnID 访问加锁与 claim 冲突路径 nil 防御 4381de4
  • fix(config): report an off retry/timeout bound as 0s like the other duration keys 6d89dcf
  • fix(nudge): quote the promise from the earliest pattern match 6301779
  • fix(sugasdk): 请求记录改存小摘要,重放从该回合助手条目重建输出(suga-sg0w 审核1) 41d207a
  • fix(sugasdk): 每会话仅保留最近 200 条请求记录,删最旧已完成、running 保留(suga-sg0w 审核2) b42912d
  • fix(chat): install the PreToolUse gate from the hooks client itself 5ec5f11
  • fix(personal): write the admit ledger after approval, before execution 93aa5d3
  • fix(snapshots): 损坏的记录不再让快照层整个会话不可用 1bb59ce
  • fix(snapshots): 清理时修复缺 meta.json 的旧记录目录 d3fa86f
  • fix(eval): report per-turn detail only for long sessions (compaction or >=3 turns) f7fcde3
  • fix(shell): 超限提示按输出判断,后台任务也写进输出;测试用 OS 分配调用 d7174f7
  • fix(shell): cap Unix memory with RLIMIT_DATA, not RLIMIT_AS fde7a64
  • fix(eval): 未传 --model 时记录实际解析出的模型并新增 MODEL 列(suga-h5vn) 6100a63
  • fix(eval): rule-update 末轮明确只列生效规则,避免把作废规则算成违规 8c72953
  • fix(chat): --wait-processed also waits for a message an idle chat takes at once 047750d
  • fix(chat): a turn that ends early still settles its message receipts 502b83d
  • fix(chat): delivery smoke passes in a pty; duplicates, exit and discarded receipts 4cf093e

Other

  • test(personal): a read-only store answers the same session card 47e2abf
  • chore(tracker): chatui extraction and slow-exit issues d2a84a8
  • test(wiring): 宿主扩展点测试:额外工具与宿主上下文 aa7ecbd
  • docs: CHANGELOG 未发布记录宿主扩展点(进程内额外工具、宿主上下文) 1071d63
  • test(wiring): Options.HostContext 透传到段起始记录与常驻上下文统计 4a8edb4
  • test(personal): 交接后的新段取最新宿主上下文 0d56b9f
  • docs: 补充 xhen 会话来源的 sessions / gc 说明 d36e711
  • chore(tracker): acp session/list origin issue a7e20cb
  • chore(tracker): whip borrowing issues ca40587
  • test(sdk): cover the guards, panic recovery, busy turn and the public API bd17ca4
  • test(sdk): parse the package files directly instead of the deprecated ParseDir c132075
  • docs(sdk): document the embedding SDK and record it in the changelog 76e8165
  • test(sdk): a panicking host hook comes back as an error too 5797525
  • test(sdk,config): cover the memory confirmation adapter, the directory filter and the loaded home record 6c1ec59
  • test(sdk): a cancelled Send ends the turn with CANCELED b743ff9
  • test(sdk): closing the engine closes the sessions it opened f07d6b7
  • docs(design): verify the current session_message delivery semantics (suga-vvw2) 3017f67
  • test(sugasdk): RequestID 幂等/并发/崩溃不确定/无 id 不变的用例 b69b546
  • docs(changelog): 记录 sugasdk 幂等 Send(suga-sg0w) cb23b48
  • test(cli): a failing provider ends the run within retry.max_elapsed (suga-255e) 0cfa090
  • docs(usage): note the host-managed session filter of ACP session/list f1d0394
  • docs: the three hard rules of tool-call hooks (PreToolUse gate) 45747c5
  • test(personal): keep the chat_nudge smoke reply in the promise table 191dbf3
  • test(llm): a fallback provider keeps its own retry budget (suga-255e) af9574fbe5bc3715b229f...
Read more

v0.44.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 02:05

Change Log

Refactor

  • refactor(loop-guard): share the per-group hint budget between R1/R2 and R3 e04298e
  • refactor(tools): move the language analysis into tools/native/codeintel 7205d09
  • refactor(codeintel): take every test command from the language rules f098a04
  • refactor(native): 内置输出规则目录 rules/ 改名为 outrules/ 167ee3b

Feature

  • feat(nudge): check a turn that stopped too early (agents.nudge) 6c87bce
  • feat(nudge): render the nudge trace event in suga inspect trace 71721e5
  • feat(nudge): 规则模型分层加载(内置规则 + nudge-rules.yaml) 1941501
  • feat(nudge): 三层规则文件接入 wiring 与 manifest 1127b9f
  • feat(codeintel): describe declaration languages in rule files 0da4619
  • feat(wiring): load layered lang-rules.yaml and show it in the manifest ac16793
  • feat: suga inspect rules 命令与 manifest 输出规则 ddb27dd
  • feat(mcp): parse tools/list annotations on each tool ee4416a
  • feat(acp): report kind=read for MCP tools declaring readOnlyHint b306c48
  • feat(codeintel): 新增 Dart/Flutter 语言规则(符号、引用遮蔽、测试命令识别) e6e94f8
  • feat(outrules): 新增 flutter/dart 输出规则(test/analyze/build/pub get) 8b59f5d

Fixed

  • fix(loop-guard): key repeats by result, reset on successful edits, add R3 failed-command rule cbb3eec
  • fix(chat): Ctrl-C 结束本地命令时,把输入行的半行随 abort 事件归还 3cead92
  • fix(nudge): push back before --verify, skip cut-off answers f84eeaf
  • fix(observe): redact the shell command kept in the trace ad5bf72
  • fix(codeintel): keep the built-in registry intact when a rule takes an extension fde9a89
  • fix: suga inspect rules 归入只读启动路径,与 inspect manifest 一致不写 SUGA_HOME 3d0f94a

Other

  • chore(tracker): release flow memory, flaky Ctrl-C test issue 52e6b2c
  • test(nudge): chat pty smoke for the too-early hint and config tests e4a850e
  • docs: CHANGELOG 记录 Ctrl-C 半行归还的修复 71ea4f1
  • test(nudge): end-to-end N1 push and --verify skipping N1 73c9a37
  • docs(nudge): changelog, README, suga-guide config row and the design note 2830322
  • test(smoke): loop guard chat smoke covers edit/shell alternation and the R3 failed-command rule 9442e08
  • docs(loop-guard): describe the result-aware rules and R3 in CHANGELOG and the guide 9fb8b25
  • test(nudge): keep the evidence on one line and cover the plan evidence path 8b21d24
  • docs(loop-guard): fix stale field and hook comments for the result key and R3 e4da6de
  • chore(tracker): 记录 suga-l7u2 修复进展评论 ea65b16
  • docs(nudge): suga-guide chat section for the too-early hint f1f6708
  • docs(design): xhen (Startrail) resident assistant, draft 0.1 55e8069
  • test(ptysmoke): chat_nudge session id pattern accepts sg_ bebb51f
  • docs(design): lang-rules.yaml for symbols, refs and test commands (draft 0.1) b14e613
  • docs(design): lang-rules approved (0.2), codeintel sub-package 168bad7
  • test(native): characterize file_symbols and file_refs output as golden files e593711
  • docs(nudge): nudge-rules.yaml 文档与冒烟场景 1bedda9
  • test(ptysmoke): chat_nudge starts from an empty workspace and counts both parts c6d1a19
  • test(tools): guard the layering of the codeintel sub-package af01395
  • style(tools): name the exported RefDrops.Describe in its doc comment be04da5
  • test(wiring): guard the manifest's language rule sections 05e5dd8
  • docs: lang-rules.yaml format, fields and the manifest section 062ce00
  • style(codeintel): gofmt the LangRule struct 3cefd77
  • test(codeintel): the C# refs case looks up Reload and sees a call site 6c25223
  • docs: 新增 suga-guide references/rules.md,四种规则文件统一参考 795362e
  • docs(skill): suga-guide 加编写/修改规则文件入口与 references/rules.md 链接 a18660c
  • test: rules.md 文档示例必须可通过对应 Load 函数解析 db5ae07
  • docs: README 命令列表补 suga inspect rules,CHANGELOG 记录 inspect rules 与 rules.md 参考 540150d
  • docs: README.zh-CN lists suga inspect rules 5ddfd1a
  • test(chat): Win32Pause counts the mode switches once the output settled 1c548c1
  • docs: move the xhen design to the xhen repository ae5dd12
  • docs: 更新 outrules 路径与 Dart/Flutter 输出规则覆盖说明 99527f1
  • test(codeintel): Dart 样例补 StatelessWidget 与表达式体 build,刷新黄金文件 c94d1c3