Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
256 commits
Select commit Hold shift + click to select a range
837a6f8
perf(capacity): collapse build_canonical_state's reverse scans to one…
HUQIANTAO Jun 3, 2026
c0b3682
perf(capacity): let scan_canonical_inputs early-exit without verified…
HUQIANTAO Jun 3, 2026
3b0ef3f
perf(history): cache output_rows and selected_output_indices per cell
HUQIANTAO Jun 3, 2026
863f55c
perf(history): simplify output_rows cache API and switch to FNV-1a
HUQIANTAO Jun 3, 2026
68784cf
fix(tui): add scroll support to plan prompt modal
Implementist Jun 3, 2026
1669e3c
fix(tui): address code review feedback on plan prompt modal
Implementist Jun 3, 2026
14db9b2
fix(tui): avoid spurious exit-confirmation on short plan after scroll…
Implementist Jun 3, 2026
537a8bc
fix(tui): replace manual div_ceil with usize::div_ceil to satisfy cli…
Implementist Jun 3, 2026
11c448d
fix(plan_prompt): remove step truncation to allow content overflow in…
Implementist Jun 3, 2026
6d79d55
fix(plan_prompt): use display-width for leading spaces and de-hardcod…
Implementist Jun 3, 2026
47c071a
chore: apply cargo fmt fix to plan_prompt.rs
Implementist Jun 3, 2026
e3a5255
fix(plan_prompt): clear pending_g on Esc, deduplicate render_modal_ch…
Implementist Jun 3, 2026
966b5cf
refactor(plan_prompt): use display-width in wrap_text, skip wasted re…
Implementist Jun 3, 2026
88422f3
fix(plan_prompt): pre-wrap CJK+Latin mixed text to avoid forced line-…
Implementist Jun 3, 2026
4401f7a
feat(tools): hide legacy subagent and shell aliases from model catalo…
Hmbown Jun 4, 2026
27db89c
docs: update TOOL_SURFACE.md with v0.9.0 hidden-alias table (#2682, #…
Hmbown Jun 4, 2026
7b2a7e5
fix: Windows sub-agent completion halves TUI render width
jrcjrcc Jun 3, 2026
159f509
fix(tui): invalidate fanout card rows on sibling starts
Hmbown Jun 4, 2026
8502784
fix(xiaomi-mimo): use token-plan api-key auth
Hmbown Jun 4, 2026
44ceabd
docs: refresh README and v0.9 execution map
Hmbown Jun 4, 2026
5dc1a63
docs: harvest provider fallback chain RFC
Hmbown Jun 4, 2026
111a805
docs: mark mention depth hint harvested
Hmbown Jun 4, 2026
311eb40
feat(tui): add bounded restore snapshot listing
Hmbown Jun 4, 2026
868f99b
docs: update v0.9 PR harvest map
Hmbown Jun 4, 2026
60f8e7d
refactor(web_run): split cache locks for page reads
Hmbown Jun 4, 2026
98edba3
refactor(engine): append turn metadata after user text
HUQIANTAO Jun 4, 2026
42d27c0
ci: soften contribution intake gates
Hmbown Jun 4, 2026
445a7c8
ci: avoid duplicate PR gate comments
Hmbown Jun 4, 2026
5f51f89
chore: seed APPROVED_CONTRIBUTORS with recurring contributors (>=2 me…
Hmbown Jun 4, 2026
23c9481
feat: add HarmonyOS OpenHarmony support
Hmbown Jun 4, 2026
fb86737
test(settings): assert migrated settings display canonical path
Hmbown Jun 4, 2026
002f8f0
ci: enforce mappable co-author credit
Hmbown Jun 4, 2026
66c88dd
feat(runtime): allow thread workspace updates
Hmbown Jun 4, 2026
7ac8063
feat(plan): preserve rich PlanArtifact context
Hmbown Jun 4, 2026
9719b45
fix(skills): merge configured and workspace skill dirs
Hmbown Jun 4, 2026
55024a1
fix(subagent): inherit tool-agent model route
Hmbown Jun 4, 2026
c76ec47
feat(transcript): collapse dense tool runs
Hmbown Jun 4, 2026
e92202c
docs(release): update v0.9 stabilization ledger
Hmbown Jun 4, 2026
3332751
feat(runtime): save completed threads as sessions
Hmbown Jun 4, 2026
e14fc47
fix(tui): label pending input delivery modes
Hmbown Jun 4, 2026
8d4eb0c
fix(context): bound auto-generated project context
Hmbown Jun 4, 2026
185beb5
docs: expand v0.9 stewardship README
Hmbown Jun 4, 2026
3cb4923
feat(sidebar): show full details for truncated rows
Hmbown Jun 4, 2026
ad3d619
feat(subagent): preserve checkpoints for timeout continuation
Hmbown Jun 4, 2026
5b3ee9d
fix(tasks): fail stale running tasks after restart
Hmbown Jun 4, 2026
5d006a9
docs: record superseded transcript collapse PR
Hmbown Jun 4, 2026
8d9cd44
fix(tui): make queued follow-up edits recoverable
Hmbown Jun 4, 2026
6a7063c
ci(ohos): guard unsupported target dependencies
Hmbown Jun 4, 2026
e18f072
perf(context): cache project context with content signatures
Hmbown Jun 4, 2026
f5e6d46
docs: add agent stewardship guidance
Hmbown Jun 4, 2026
13cabac
docs(config): clarify provider path suffix support
Hmbown Jun 4, 2026
586640a
feat(config): add typed harness posture profiles
Hmbown Jun 4, 2026
0d66ef3
feat(hooks): add turn_end observer hook
Hmbown Jun 4, 2026
56f8044
feat(tui): show focused approval details
Hmbown Jun 4, 2026
15b129c
docs: clarify v0.9 README release status
Hmbown Jun 4, 2026
960bdc9
docs(providers): document Xiaomi MiMo Token Plan region endpoints
Hmbown Jun 5, 2026
9e29c22
fix(mcp): preserve underscored MCP server names in tool routing
Hmbown Jun 5, 2026
9d13960
feat(pricing): price Xiaomi MiMo primary models at matching DeepSeek …
Hmbown Jun 5, 2026
74b3268
fix(tui): render hydrated deferred-tool results as loaded, not run done
Hmbown Jun 5, 2026
70adeee
docs(v0.9): record #2746/#2747, #2750, #2756, #2757 harvests and #274…
Hmbown Jun 5, 2026
de86cc1
fix(tui): install rustls provider before HTTP clients
Hmbown Jun 5, 2026
47577d5
fix(tui): #2760 correct sessions resume footer
Hmbown Jun 5, 2026
32be8a3
Merge pull request #2761 from Hmbown/codex/harvest-2760-session-resum…
Hmbown Jun 5, 2026
1f703ba
docs(v0.9): record recent harvest closures
Hmbown Jun 5, 2026
01e5c42
docs(v0.9): record plan and tool harvest closures
Hmbown Jun 5, 2026
28d6b10
docs(v0.9): record runtime and legacy harvest closures
Hmbown Jun 5, 2026
1e54be0
fix(tui): refresh branch status after shell changes
Hmbown Jun 5, 2026
b3bdd6e
Merge pull request #2763 from Hmbown/codex/fix-live-branch-status-ref…
Hmbown Jun 5, 2026
494c8a5
fix(tui): gate shell child kill helper off Windows
Hmbown Jun 5, 2026
c00d5aa
Merge pull request #2764 from Hmbown/codex/fix-windows-shellchild-kil…
Hmbown Jun 5, 2026
cbb1142
test(shell): #2528 widen background completion wait
Hmbown Jun 5, 2026
7919338
Merge pull request #2765 from Hmbown/codex/harvest-2528-shell-test-wait
Hmbown Jun 5, 2026
933637b
feat(search): harvest custom duckduckgo endpoint
Hmbown Jun 5, 2026
8cbdf95
Merge pull request #2767 from Hmbown/codex/harvest-2510-search-base-url
Hmbown Jun 5, 2026
91215d5
feat(tui): harvest custom completion sound files
Hmbown Jun 5, 2026
4b61462
Merge pull request #2768 from Hmbown/codex/harvest-2512-completion-so…
Hmbown Jun 5, 2026
54f7556
fix(tui): harvest provider auth rollback
cyq1017 Jun 5, 2026
499ec42
Merge pull request #2769 from Hmbown/codex/harvest-2755-provider-auth…
Hmbown Jun 5, 2026
c36e4d7
fix(mcp): harvest trusted workspace MCP config
cyq1017 Jun 5, 2026
95e2419
Merge pull request #2770 from Hmbown/codex/harvest-2751-workspace-mcp…
Hmbown Jun 5, 2026
b527bd5
feat(init): harvest LLM-guided AGENTS.md init
HUQIANTAO Jun 5, 2026
f483544
Merge pull request #2771 from Hmbown/codex/harvest-2759-init-polish
Hmbown Jun 5, 2026
912d6ae
fix(tui): #2742 avoid static Ollama model suggestions
Hmbown Jun 5, 2026
68fb6e3
Merge pull request #2772 from Hmbown/codex/harvest-2742-ollama-comple…
Hmbown Jun 5, 2026
8869f6a
fix(mcp): #2744 preserve underscored names in displays
Hmbown Jun 5, 2026
b1d4d74
Merge pull request #2774 from Hmbown/codex/harvest-2744-mcp-display
Hmbown Jun 5, 2026
b000096
docs: drop internal v0.9 execution map
Hmbown Jun 5, 2026
cba5537
fix(config): keep path suffix out of project overrides
Hmbown Jun 5, 2026
bf0a3bc
Merge pull request #2775 from Hmbown/codex/remove-v090-execution-map
Hmbown Jun 5, 2026
0b07b81
Merge pull request #2776 from Hmbown/codex/harden-path-suffix-project…
Hmbown Jun 5, 2026
e5fe46d
feat(tui): expose stream chunk timeout config
Hmbown Jun 5, 2026
3ca8925
Merge pull request #2778 from Hmbown/codex/harvest-2507-stream-timeout
Hmbown Jun 5, 2026
93d08a8
feat(config): add dormant provider fallback chain
Hmbown Jun 5, 2026
1d50ed9
Merge pull request #2779 from Hmbown/codex/harvest-2777-fallback-chai…
Hmbown Jun 5, 2026
02c3579
feat(tui): ghost-text prompt suggestion after each turn
punkcanyang Jun 5, 2026
2e49b14
test(config): isolate provider chain runtime resolution
Hmbown Jun 5, 2026
786e5fe
Merge pull request #2793 from Hmbown/codex/fix-provider-chain-env-test
Hmbown Jun 5, 2026
5d9f93a
fix(tui): expose external URL opener on unsupported targets
Hmbown Jun 5, 2026
8dbe035
Merge pull request #2794 from Hmbown/codex/harvest-2789-open-external…
Hmbown Jun 5, 2026
0b0d815
fix(tui): enrich auth errors with request context
mvanhorn Jun 5, 2026
6d27bca
Merge pull request #2795 from Hmbown/codex/harvest-2792-auth-context
Hmbown Jun 5, 2026
abe366d
feat(tui): add sidebar slash command
aboimpinto Jun 5, 2026
4a7731f
docs(changelog): note sidebar command harvest
Hmbown Jun 5, 2026
8e2fc97
Merge pull request #2796 from Hmbown/codex/harvest-2788-sidebar-command
Hmbown Jun 5, 2026
af8ff03
feat(web_search): add Sofya search provider
yusufgurdogan Jun 5, 2026
b296f5f
Merge pull request #2797 from Hmbown/codex/harvest-2790-sofya-search
Hmbown Jun 5, 2026
f9d7ae7
test(tui): satisfy all-targets clippy map_or lint
Hmbown Jun 5, 2026
c3ec4b5
Merge pull request #2798 from Hmbown/codex/fix-all-targets-clippy-map-or
Hmbown Jun 5, 2026
5926bf3
feat(tui): add Hugging Face env aliases
hongqitai Jun 5, 2026
15c506b
Merge pull request #2799 from Hmbown/codex/harvest-2780-hf-env-aliases
Hmbown Jun 5, 2026
eb1d08b
fix(tui): address review — turn token, try_lock, static client, lifec…
punkcanyang Jun 5, 2026
be37dbd
feat(config): add Xiaomi MiMo token plan mode
xyuai Jun 5, 2026
1256125
Merge pull request #2800 from Hmbown/codex/harvest-2627-xiaomi-token-…
Hmbown Jun 5, 2026
1f9f860
feat(cache): project mode prompts per request
LeoAlex0 Jun 3, 2026
fbe8d9e
Merge pull request #2801 from Hmbown/codex/harvest-2687-runtime-promp…
Hmbown Jun 5, 2026
57e4a7b
feat(hf): harvest Hugging Face MCP helpers
idling11 Jun 5, 2026
71cb221
Merge pull request #2802 from Hmbown/codex/harvest-2782-hf-mcp-concepts
Hmbown Jun 5, 2026
6b7a05a
Harvest pausable custom command MVP
Hmbown Jun 5, 2026
805d748
fix(tui): surface subagent branch status
Hmbown Jun 5, 2026
8fe8900
Merge pull request #2803 from Hmbown/codex/harvest-2732-pausable-comm…
Hmbown Jun 5, 2026
f082762
Merge pull request #2804 from Hmbown/codex/fix-subagent-branch-status
Hmbown Jun 5, 2026
7fc074c
feat(client): harvest deterministic response cache
Hmbown Jun 5, 2026
e03f2ab
Merge pull request #2805 from Hmbown/codex/harvest-2501-response-cach…
Hmbown Jun 5, 2026
19f5c7a
fix(tui): keep agent progress visible in sidebar
Hmbown Jun 5, 2026
e8bdfcd
Merge pull request #2806 from Hmbown/codex/fix-agents-progress-detail…
Hmbown Jun 5, 2026
18027ae
docs(npm): clarify wrapper README configuration
Hmbown Jun 5, 2026
0e80d4e
Merge pull request #2807 from Hmbown/codex/harvest-2784-npm-readme-cl…
Hmbown Jun 5, 2026
ddaaa4d
docs: credit recurring v0.9 contributors
Hmbown Jun 6, 2026
e6078b7
Merge pull request #2809 from Hmbown/codex/v090-credit-contributors
Hmbown Jun 6, 2026
38fd4b1
feat(whaleflow): add typed workflow foundation
Hmbown Jun 6, 2026
ef239df
Merge pull request #2810 from Hmbown/codex/v090-whaleflow-foundation
Hmbown Jun 6, 2026
bed43e7
feat(vscode): add local runtime extension scaffold
Hmbown Jun 6, 2026
bb8b1d3
Merge pull request #2811 from Hmbown/codex/v090-vscode-scaffold
Hmbown Jun 6, 2026
7d8308a
docs: credit VS Code plugin request trail
Hmbown Jun 6, 2026
4c317bb
Merge pull request #2812 from Hmbown/codex/v090-vscode-credit
Hmbown Jun 6, 2026
54cbcd0
chore: map AdityaVG13 for harvested credit
Hmbown Jun 6, 2026
90234c1
Merge pull request #2813 from Hmbown/codex/v090-author-map-adityavg13
Hmbown Jun 6, 2026
ab29986
feat(vscode): add read-only agent view preview
Hmbown Jun 6, 2026
dda5901
Merge pull request #2814 from Hmbown/codex/v090-vscode-agent-view-pre…
Hmbown Jun 6, 2026
f8b26b4
feat(whaleflow): add serializable run result records
Hmbown Jun 6, 2026
a2cc6bd
feat(whaleflow): add trace store schema migration
Hmbown Jun 6, 2026
8ab629a
docs: credit current v0.9 stewardship contributors
Hmbown Jun 6, 2026
7dfc81b
chore: allowlist AdityaVG13 for v0.9 stewardship
Hmbown Jun 6, 2026
d868a0b
feat(prompts): harvest static composer override
Hmbown Jun 6, 2026
5d491bc
feat(config): harvest provider metadata registry
Hmbown Jun 6, 2026
d1f3c65
feat(whaleflow): add typed workflow spec IR
Hmbown Jun 6, 2026
bb88358
feat(runtime-api): add read-only snapshot listing
Hmbown Jun 6, 2026
cfbaba7
feat(whaleflow): add mock executor skeleton
Hmbown Jun 6, 2026
38a0d55
feat(whaleflow): add Starlark compile gate
Hmbown Jun 6, 2026
1bacaf7
feat(runtime-api): expose thread branch metadata
Hmbown Jun 6, 2026
7873835
feat(tui): show live background shell output (#2826)
Hmbown Jun 6, 2026
d10634c
feat(whaleflow): add usage telemetry to mock results (#2827)
Hmbown Jun 6, 2026
293643e
feat(vscode): show runtime restore points (#2828)
Hmbown Jun 6, 2026
79c0bd4
feat(whaleflow): replay recorded workflow outputs (#2829)
Hmbown Jun 6, 2026
5044a29
feat(whaleflow): add model role policy registry (#2830)
Hmbown Jun 6, 2026
e5974aa
feat(whaleflow): run dogfood workflow with mock executor (#2831)
Hmbown Jun 6, 2026
50b773f
feat(vscode): auto-refresh read-only agent view (#2832)
Hmbown Jun 6, 2026
85b5ca5
feat(whaleflow): add memo telemetry counters (#2833)
Hmbown Jun 6, 2026
190e9f3
feat(config): add provider TLS skip verify
Hmbown Jun 6, 2026
6269cb9
fix(cli): include TLS skip flag in runtime option tests
Hmbown Jun 6, 2026
56fa055
fix(tui): count workspace MCP servers in status surfaces
Hmbown Jun 6, 2026
96b825b
docs(runtime): document read-only VS Code Agent View APIs
Hmbown Jun 6, 2026
6bb564e
fix(whaleflow): reject unknown workflow references (#2837)
Hmbown Jun 6, 2026
d784f1e
feat(compaction): add dormant hard compaction planner (#2838)
Hmbown Jun 6, 2026
14d14f5
feat(whaleflow): add teacher candidate artifacts (#2839)
Hmbown Jun 6, 2026
6a527fc
feat(whaleflow): add student replay promotion gate (#2840)
Hmbown Jun 6, 2026
7fc4ec8
feat(whaleflow): mark mock cancellation and budgets (#2841)
Hmbown Jun 6, 2026
a705275
docs(whaleflow): define external memory cutline (#2842)
Hmbown Jun 6, 2026
2bb24d0
docs(release): add v0.9 acceptance matrix (#2843)
Hmbown Jun 6, 2026
efbcc68
docs(harness): define profile cutline (#2844)
Hmbown Jun 6, 2026
e22a7da
docs(harness): align v0.9 profile acceptance
Hmbown Jun 6, 2026
cd9a044
docs(release): fill v0.9 acceptance evidence
Hmbown Jun 6, 2026
23a188e
fix(vscode): keep agent view metadata on snapshot errors
Hmbown Jun 6, 2026
35cd09a
fix(tui): classify stream decode failures as network errors
Hmbown Jun 6, 2026
e60eeb8
feat(config): add dormant harness profile resolver
Hmbown Jun 6, 2026
73c8318
test(whaleflow): replay dogfood workflow from recorded trace
Hmbown Jun 6, 2026
caa1d4a
docs(release): mark deferred v0.9 acceptance gates
Hmbown Jun 6, 2026
e69ea45
docs(release): resolve v0.9 UI acceptance cutline
Hmbown Jun 6, 2026
a5a6b0a
docs(release): record slash picker v0.9 evidence
Hmbown Jun 6, 2026
2561a54
docs(release): close v0.9 credit rollback gates (#2856)
Hmbown Jun 6, 2026
ab8e3a1
docs(release): record v0.9 core gate evidence (#2857)
Hmbown Jun 6, 2026
b2e1ba1
docs(release): mark asset verification as pre-npm gate (#2858)
Hmbown Jun 6, 2026
7bd6827
docs(release): record macOS startup evidence (#2859)
Hmbown Jun 6, 2026
137d65c
docs(release): record DeepSeek v4 live smoke (#2860)
Hmbown Jun 6, 2026
cc3cbc8
docs(release): record Linux startup evidence (#2861)
Hmbown Jun 6, 2026
5bd2f6a
feat(runtime-api): expose git status metadata for agent view (#2862)
Hmbown Jun 6, 2026
e687b07
fix(tui): make prompt suggestion configurable (opt-in, default off)
punkcanyang Jun 6, 2026
80246f0
test(tui): add prompt suggestion config and widget tests
punkcanyang Jun 6, 2026
649d399
feat(tui): add multi-tab system core (manager + persistence)
Jun 6, 2026
7fcd7d7
chore(tui): address Phase 2 bot review on narrow tab-core harvest
Jun 6, 2026
1f99fcb
feat(tui): add hotbar action registry foundation
reidliu41 Jun 6, 2026
da6b814
fix(tui): prevent AltGr from swallowing @/#/$/!/%/ characters in comp…
ousamabenyounes Jun 6, 2026
700a36e
style(tui): format AltGr sidebar shortcut guards
Hmbown Jun 6, 2026
c9ce6c9
fix(tui): harden hotbar action dispatch
Hmbown Jun 6, 2026
ffaf110
fix(tui): advance tab restore counters
Hmbown Jun 6, 2026
461c22f
Merge pull request #2867 from ousamabenyounes/fix/azerty-altgr-at-key…
Hmbown Jun 6, 2026
a7c1c03
Merge pull request #2866 from reidliu41/feat/hotbar-action-registry
Hmbown Jun 6, 2026
0b96e89
Merge pull request #2864 from ljm3790865/feat/tab-core-narrow
Hmbown Jun 6, 2026
6b1de93
chore(release): credit direct v0.9 community merges
Hmbown Jun 6, 2026
ce17f06
feat(vscode): show thread git metadata
Hmbown Jun 6, 2026
ad70739
Merge pull request #2868 from Hmbown/codex/v090-vscode-git-meta
Hmbown Jun 6, 2026
fa9ad02
fix(tui): list saved models from all providers in picker
ousamabenyounes Jun 6, 2026
db0ce5b
refactor(tui): parse provider keys once in picker row build
ousamabenyounes Jun 6, 2026
5300dc4
chore: enforce lf for rust sources
aboimpinto Jun 7, 2026
8e8b45a
test: make command-adjacent tests hermetic
aboimpinto Jun 7, 2026
18df8db
refactor: extract neutral command support
aboimpinto Jun 7, 2026
fefd63f
fix: address command layer review feedback
aboimpinto Jun 7, 2026
59d12f3
Merge pull request #2871 from aboimpinto/feat/2791-command-parity-har…
Hmbown Jun 7, 2026
9b500a7
Prepare v0.9.0 release build
Hmbown Jun 7, 2026
f2159b7
docs(release): honor v0.9 contributor credits
Hmbown Jun 7, 2026
fde931e
chore(release): allow trusted v0.9 contributors
Hmbown Jun 7, 2026
3d676c2
chore(tui): harden exec harness signals
Hmbown Jun 7, 2026
00407b5
feat(config): add hotbar slot persistence
reidliu41 Jun 7, 2026
427bd5d
feat(cache): slim runtime_prompt to minimal tag, move policy descript…
LeoAlex0 Jun 7, 2026
0b5d574
fix(cache): address CR feedback — blank lines, heading hierarchy, deb…
LeoAlex0 Jun 7, 2026
12167b3
refactor(cache): replace taxonomy_body strip hack with source-level r…
LeoAlex0 Jun 7, 2026
039abb2
refactor(cache): remove render_core_tool_taxonomy_block, inline to bo…
LeoAlex0 Jun 7, 2026
c6c3d2c
refactor(cache): inline single-call helpers, remove dead code
LeoAlex0 Jun 7, 2026
7b900b8
test(cache): rename misleading test — does not exercise Op::ChangeMod…
LeoAlex0 Jun 7, 2026
256f34c
fix(cache): set temp spillover root in cache_inspect test to survive …
LeoAlex0 Jun 7, 2026
96bff65
test(tui): add command parity harness
aboimpinto Jun 7, 2026
acaae1c
test(tui): address command harness review
aboimpinto Jun 7, 2026
55d7499
test: add runtime_policy_reference composition test, strengthen Chang…
LeoAlex0 Jun 7, 2026
ef4dc5c
fix: error handling bugs - log instead of silently swallowing errors
HUQIANTAO Jun 7, 2026
27fac5d
fix: security bugs in execpolicy, app-server, and tools
HUQIANTAO Jun 7, 2026
4304c89
fix: concurrency bugs - mutex handling, thread spawning, and resource…
HUQIANTAO Jun 7, 2026
eb3a989
fix: address review comments on engine.rs
HUQIANTAO Jun 7, 2026
75593a0
fix: address security review comments
HUQIANTAO Jun 7, 2026
27ca872
fix: use Box<dyn Write + Send> for cross-platform tracing writer
HUQIANTAO Jun 7, 2026
265b8ee
fix: add tracing dependency to core crate and apply cargo fmt
HUQIANTAO Jun 7, 2026
4dd0a47
style: apply cargo fmt formatting
HUQIANTAO Jun 7, 2026
9aa71e2
chore: update Cargo.lock for tracing dependency in core crate
HUQIANTAO Jun 7, 2026
3c197d7
fix: add sse_task field to SseTransport test initializer
HUQIANTAO Jun 7, 2026
5e761a6
fix: collapse nested if-let to satisfy clippy::collapsible_if lint
HUQIANTAO Jun 7, 2026
5cab151
fix: add tracing dependency to app-server crate
HUQIANTAO Jun 7, 2026
bdf7b15
revert: use std::thread::spawn for fire-and-forget hooks
HUQIANTAO Jun 7, 2026
d90031f
Add Gherkin acceptance E2E harness example
aboimpinto Jun 7, 2026
c25f7af
Address acceptance harness review feedback
aboimpinto Jun 7, 2026
97f6e0b
fix(tui): use sort_by_key to satisfy clippy::unnecessary_sort_by
ousamabenyounes Jun 7, 2026
b0d9c31
Merge PR #2878 from aboimpinto: Layer 2 command parity harness
Hmbown Jun 7, 2026
2c56f77
Merge PR #2887 from aboimpinto: Gherkin acceptance E2E harness
Hmbown Jun 7, 2026
a42e911
Merge PR #2873 from reidliu41: hotbar slot persistence
Hmbown Jun 7, 2026
3619962
Merge PR #2874 from LeoAlex0: slim runtime_prompt to minimal tag
Hmbown Jun 7, 2026
a54d08f
chore(fmt): rustfmt engine tests from PR #2874
Hmbown Jun 7, 2026
face4dc
Merge PR #2877 from LeoAlex0: cache_inspect test spillover root
Hmbown Jun 7, 2026
4caa287
Merge PR #2882 from HUQIANTAO: security fixes in execution policy and…
Hmbown Jun 7, 2026
1a9549b
Merge PR #2881 from HUQIANTAO: log instead of swallowing errors
Hmbown Jun 7, 2026
b39e00e
Merge PR #2883 from HUQIANTAO: concurrency hardening (mutex recovery,…
Hmbown Jun 7, 2026
8d329a4
Merge PR #2869 from ousamabenyounes: list saved models from all provi…
Hmbown Jun 7, 2026
ab65495
Merge PR #2781 from punkcanyang: opt-in ghost-text follow-up suggestion
Hmbown Jun 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# HarmonyOS/OpenHarmony cross-build paths are intentionally not configured
# here. Cargo does not expand environment variables inside target linker paths
# or CMake toolchain paths, so checked-in absolute SDK paths make the workspace
# machine-specific.
#
# See docs/HarmonyOS.md for setup details.
#
# Set OHOS_NATIVE_SDK to the OpenHarmony native SDK directory, then load one of:
#
# PowerShell:
# . .\scripts\ohos-env.ps1
#
# Linux/macOS:
# . ./scripts/ohos-env.sh
#
# The setup scripts export Cargo's target-specific linker, AR, CC, CXX, CFLAGS,
# CXXFLAGS, CARGO_ENCODED_RUSTFLAGS, CC_SHELL_ESCAPED_FLAGS, and
# CMAKE_TOOLCHAIN_FILE variables for aarch64-unknown-linux-ohos.
3 changes: 3 additions & 0 deletions .cnb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
script: |
set -eu
./scripts/release/check-versions.sh
./scripts/release/check-ohos-deps.sh
cargo fmt --all -- --check
cargo check --workspace --all-targets --locked
cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
Expand Down Expand Up @@ -75,6 +76,7 @@
script: |
set -eu
./scripts/release/check-versions.sh
./scripts/release/check-ohos-deps.sh
cargo fmt --all -- --check
cargo check --workspace --all-targets --locked
cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
Expand Down Expand Up @@ -123,6 +125,7 @@ $:
apt-get install -y git libdbus-1-dev nodejs pkg-config
./scripts/release/check-versions.sh
./scripts/release/check-ohos-deps.sh
cargo build --release --locked -p codewhale-cli -p codewhale-tui
mkdir -p target/cnb-release
Expand Down
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,11 @@
# produces different compiled binaries on Windows vs Linux/macOS.
crates/tui/src/prompts/*.md text eol=lf

# Rustfmt writes LF; keep Rust sources stable across Windows/Linux/macOS.
*.rs text eol=lf

# Keep repository attributes themselves stable on every platform.
.gitattributes text eol=lf

# Everything else auto-detects (default).
* text=auto
53 changes: 53 additions & 0 deletions .github/APPROVED_CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,56 @@
# issue:username
# all:username
all:hmbown
all:reidliu41
all:ousamabenyounes
all:ljm3790865
all:HUQIANTAO
all:xyuai
all:merchloubna70-dot
all:h3c-hexin
all:axobase001
all:donglovejava
all:Oliver-ZPLiu
all:idling11
all:angziii
all:aboimpinto
all:encyc
all:Duducoco
all:cyq1017
all:zlh124
all:THINKER-ONLY
all:nightt5879
all:Liu-Vince
all:JiarenWang
all:wdw8276
all:pengyou200902
all:linzhiqin2003
all:LING71671
all:JasonOA888
all:Inference1
all:hongqitai
all:gordonlu
all:gaord
all:zhuangbiaowei
all:yuanchenglu
all:Vishnu1837
all:sximelon
all:Sskift
all:New2Niu
all:shenjackyuanjie
all:AdityaVG13
all:mvanhorn
all:MengZ-super
all:membphis
all:LeoAlex0
all:Lee-take
all:lbcheng888
all:Implementist
all:jrcjrcc
all:yusufgurdogan
all:kunpeng-ai-lab
all:elowen53
all:CrepuscularIRIS
all:chnjames
all:ChaceLyee2101
all:AresNing
106 changes: 106 additions & 0 deletions .github/AUTHOR_MAP
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# Contributor credit identity map.
#
# Format:
# alias = Display Name <id+login@users.noreply.github.com>
#
# The right-hand side must use GitHub's numeric noreply address so harvested
# co-author credit lands in the contributor graph. The left-hand side may be a
# GitHub login, old-style noreply address, raw email from a contributor commit,
# or local machine email seen in older harvested history.

hmbown = Hmbown <101357273+Hmbown@users.noreply.github.com>
reidliu41 = reidliu41 <61492567+reidliu41@users.noreply.github.com>
reid201711@gmail.com = reidliu41 <61492567+reidliu41@users.noreply.github.com>
ousamabenyounes = Ben Younes <2910651+ousamabenyounes@users.noreply.github.com>
benyounes.ousama@gmail.com = Ben Younes <2910651+ousamabenyounes@users.noreply.github.com>
ljm3790865 = ljm3790865 <263429444+ljm3790865@users.noreply.github.com>
HUQIANTAO = HUQIANTAO <58421104+HUQIANTAO@users.noreply.github.com>
Hu Qiantao = HUQIANTAO <58421104+HUQIANTAO@users.noreply.github.com>
huqiantao@users.noreply.github.com = HUQIANTAO <58421104+HUQIANTAO@users.noreply.github.com>
huqiantao@HudeMacBook-Air.local = HUQIANTAO <58421104+HUQIANTAO@users.noreply.github.com>
tom_huu@qq.com = HUQIANTAO <58421104+HUQIANTAO@users.noreply.github.com>
punkcanyang = Punkcan Yang <36871858+punkcanyang@users.noreply.github.com>
Punkcan Yang = Punkcan Yang <36871858+punkcanyang@users.noreply.github.com>
bucunzai@gmail.com = Punkcan Yang <36871858+punkcanyang@users.noreply.github.com>
merchloubna70-dot = merchloubna70-dot <258170091+merchloubna70-dot@users.noreply.github.com>
h3c-hexin = h3c-hexin <13790929+h3c-hexin@users.noreply.github.com>
he.xin@h3c.com = h3c-hexin <13790929+h3c-hexin@users.noreply.github.com>
axobase001 = axobase001 <138223345+axobase001@users.noreply.github.com>
donglovejava = donglovejava <211940267+donglovejava@users.noreply.github.com>
Oliver-ZPLiu = Oliver-ZPLiu <47081637+Oliver-ZPLiu@users.noreply.github.com>
idling11 = idling11 <8055620+idling11@users.noreply.github.com>
Hanmiao Li = idling11 <8055620+idling11@users.noreply.github.com>
894876246@qq.com = idling11 <8055620+idling11@users.noreply.github.com>
angziii = angziii <177907677+angziii@users.noreply.github.com>
aboimpinto = aboimpinto <1231687+aboimpinto@users.noreply.github.com>
Paulo Aboim Pinto = aboimpinto <1231687+aboimpinto@users.noreply.github.com>
aboimpinto@gmail.com = aboimpinto <1231687+aboimpinto@users.noreply.github.com>
encyc = encyc <62669951+encyc@users.noreply.github.com>
Duducoco = Duducoco <69681789+Duducoco@users.noreply.github.com>
cyq1017 = cyq1017 <61975706+cyq1017@users.noreply.github.com>
cyq = cyq1017 <61975706+cyq1017@users.noreply.github.com>
15000851237@163.com = cyq1017 <61975706+cyq1017@users.noreply.github.com>
zlh124 = zlh124 <56312993+zlh124@users.noreply.github.com>
THINKER-ONLY = THINKER-ONLY <181556007+THINKER-ONLY@users.noreply.github.com>
nightt5879 = nightt5879 <87569709+nightt5879@users.noreply.github.com>
Liu-Vince = Liu-Vince <56624166+Liu-Vince@users.noreply.github.com>
Vince = Liu-Vince <56624166+Liu-Vince@users.noreply.github.com>
liuwenchang.x@qq.com = Liu-Vince <56624166+Liu-Vince@users.noreply.github.com>
JiarenWang = JiarenWang <33421508+JiarenWang@users.noreply.github.com>
wdw8276 = wdw8276 <3972439+wdw8276@users.noreply.github.com>
pengyou200902 = pengyou200902 <35026241+pengyou200902@users.noreply.github.com>
linzhiqin2003 = linzhiqin2003 <123250980+linzhiqin2003@users.noreply.github.com>
LING71671 = LING71671 <231181387+LING71671@users.noreply.github.com>
JasonOA888 = JasonOA888 <101583541+JasonOA888@users.noreply.github.com>
Inference1 = Inference1 <68734681+Inference1@users.noreply.github.com>
hongqitai = hongqitai <188678175+hongqitai@users.noreply.github.com>
gordonlu = gordonlu <3125629+gordonlu@users.noreply.github.com>
gaord = gaord <9567937+gaord@users.noreply.github.com>
Ben Gao = gaord <9567937+gaord@users.noreply.github.com>
bengao168@msn.com = gaord <9567937+gaord@users.noreply.github.com>
zhuangbiaowei = zhuangbiaowei <93194+zhuangbiaowei@users.noreply.github.com>
yuanchenglu = yuanchenglu <4088730+yuanchenglu@users.noreply.github.com>
Vishnu1837 = Vishnu1837 <104626273+Vishnu1837@users.noreply.github.com>
sximelon = sximelon <15710511+sximelon@users.noreply.github.com>
Sskift = Sskift <163287349+Sskift@users.noreply.github.com>
New2Niu = New2Niu <19551155+New2Niu@users.noreply.github.com>
mvanhorn = mvanhorn <455140+mvanhorn@users.noreply.github.com>
MengZ-super = MengZ-super <121712068+MengZ-super@users.noreply.github.com>
membphis = membphis <6814606+membphis@users.noreply.github.com>
LeoAlex0 = LeoAlex0 <31839998+LeoAlex0@users.noreply.github.com>
Lee-take = Lee-take <210963840+Lee-take@users.noreply.github.com>
lbcheng888 = lbcheng888 <6716643+lbcheng888@users.noreply.github.com>
kunpeng-ai-lab = kunpeng-ai-lab <16793595+kunpeng-ai-lab@users.noreply.github.com>
elowen53 = elowen53 <88364845+elowen53@users.noreply.github.com>
Elowen = elowen53 <88364845+elowen53@users.noreply.github.com>
xrnc@outlook.com = elowen53 <88364845+elowen53@users.noreply.github.com>
CrepuscularIRIS = CrepuscularIRIS <126939795+CrepuscularIRIS@users.noreply.github.com>
chnjames = chnjames <44110547+chnjames@users.noreply.github.com>
ChaceLyee2101 = ChaceLyee2101 <95995339+ChaceLyee2101@users.noreply.github.com>
ci4ic4 = ci4ic4 <6495973+ci4ic4@users.noreply.github.com>
Chavdar Ivanov = ci4ic4 <6495973+ci4ic4@users.noreply.github.com>
ci4ic4@gmail.com = ci4ic4 <6495973+ci4ic4@users.noreply.github.com>
yusufgurdogan = yusufgurdogan <13736056+yusufgurdogan@users.noreply.github.com>
Yusuf Gurdogan = yusufgurdogan <13736056+yusufgurdogan@users.noreply.github.com>
hotelswith = yusufgurdogan <13736056+yusufgurdogan@users.noreply.github.com>
contact@hotelswith.com = yusufgurdogan <13736056+yusufgurdogan@users.noreply.github.com>
AresNing = AresNing <49557311+AresNing@users.noreply.github.com>

shenjackyuanjie = shenjackyuanjie <54507071+shenjackyuanjie@users.noreply.github.com>
shenjack = shenjackyuanjie <54507071+shenjackyuanjie@users.noreply.github.com>
3695888@qq.com = shenjackyuanjie <54507071+shenjackyuanjie@users.noreply.github.com>
xyuai = xyuai <281015099+xyuai@users.noreply.github.com>
AdityaVG13 = AdityaVG13 <44177453+AdityaVG13@users.noreply.github.com>
adityavgcode@gmail.com = AdityaVG13 <44177453+AdityaVG13@users.noreply.github.com>
Implementist = Implementist <24910011+Implementist@users.noreply.github.com>
implecao = Implementist <24910011+Implementist@users.noreply.github.com>
yuyuyu4993@qq.com = Implementist <24910011+Implementist@users.noreply.github.com>
jrcjrcc = jrcjrcc <192965070+jrcjrcc@users.noreply.github.com>
jrcjrcc@users.noreply.github.com = jrcjrcc <192965070+jrcjrcc@users.noreply.github.com>
RefuseOdd = RefuseOdd <192543033+RefuseOdd@users.noreply.github.com>
wywsoor = wywsoor <26341601+wywsoor@users.noreply.github.com>
hsdbeebou = hsdbeebou <284843096+hsdbeebou@users.noreply.github.com>
tdccccc = tdccccc <79492752+tdccccc@users.noreply.github.com>
greyfreedom = greyfreedom <11493871+greyfreedom@users.noreply.github.com>
greyfreedom@163.com = greyfreedom <11493871+greyfreedom@users.noreply.github.com>
puneetdixit200 = puneetdixit200 <236133619+puneetdixit200@users.noreply.github.com>
1 change: 1 addition & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@
- [ ] Updated docs or comments as needed
- [ ] Added or updated tests where relevant
- [ ] Verified TUI behavior manually if UI changes
- [ ] Harvested/co-authored credit uses a GitHub numeric noreply address
45 changes: 1 addition & 44 deletions .github/scripts/update-homebrew-tap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#
# Expected environment:
# TAG – git tag, e.g. "v0.8.31"
# MANIFEST – path to deepseek-artifacts-sha256.txt
# MANIFEST – path to codewhale-artifacts-sha256.txt
# TAP_REPO – owner/repo of the Homebrew tap
# TOKEN – PAT with contents:write on TAP_REPO (optional; skips if unset)

Expand Down Expand Up @@ -43,15 +43,6 @@ readonly SHA_COD_LINUX_ARM="$(sha codewhale-linux-arm64)"
readonly SHA_TUI_LINUX_ARM="$(sha codewhale-tui-linux-arm64)"
readonly SHA_COD_LINUX_X64="$(sha codewhale-linux-x64)"
readonly SHA_TUI_LINUX_X64="$(sha codewhale-tui-linux-x64)"
# Legacy shims (removed in v0.9.0)
readonly SHA_LEG_MACOS_ARM="$(sha deepseek-macos-arm64)"
readonly SHA_LEG_TUI_MACOS_ARM="$(sha deepseek-tui-macos-arm64)"
readonly SHA_LEG_MACOS_X64="$(sha deepseek-macos-x64)"
readonly SHA_LEG_TUI_MACOS_X64="$(sha deepseek-tui-macos-x64)"
readonly SHA_LEG_LINUX_ARM="$(sha deepseek-linux-arm64)"
readonly SHA_LEG_TUI_LINUX_ARM="$(sha deepseek-tui-linux-arm64)"
readonly SHA_LEG_LINUX_X64="$(sha deepseek-linux-x64)"
readonly SHA_LEG_TUI_LINUX_X64="$(sha deepseek-tui-linux-x64)"

# --- temp dirs --------------------------------------------------------

Expand All @@ -78,29 +69,13 @@ class DeepseekTui < Formula
url "${BASE_URL}/codewhale-tui-macos-arm64", using: :nounzip
sha256 "${SHA_TUI_MACOS_ARM}"
end
resource "legacy-shim" do
url "${BASE_URL}/deepseek-macos-arm64", using: :nounzip
sha256 "${SHA_LEG_MACOS_ARM}"
end
resource "legacy-tui-shim" do
url "${BASE_URL}/deepseek-tui-macos-arm64", using: :nounzip
sha256 "${SHA_LEG_TUI_MACOS_ARM}"
end
else
url "${BASE_URL}/codewhale-macos-x64", using: :nounzip
sha256 "${SHA_COD_MACOS_X64}"
resource "tui" do
url "${BASE_URL}/codewhale-tui-macos-x64", using: :nounzip
sha256 "${SHA_TUI_MACOS_X64}"
end
resource "legacy-shim" do
url "${BASE_URL}/deepseek-macos-x64", using: :nounzip
sha256 "${SHA_LEG_MACOS_X64}"
end
resource "legacy-tui-shim" do
url "${BASE_URL}/deepseek-tui-macos-x64", using: :nounzip
sha256 "${SHA_LEG_TUI_MACOS_X64}"
end
end
end

Expand All @@ -112,37 +87,19 @@ class DeepseekTui < Formula
url "${BASE_URL}/codewhale-tui-linux-arm64", using: :nounzip
sha256 "${SHA_TUI_LINUX_ARM}"
end
resource "legacy-shim" do
url "${BASE_URL}/deepseek-linux-arm64", using: :nounzip
sha256 "${SHA_LEG_LINUX_ARM}"
end
resource "legacy-tui-shim" do
url "${BASE_URL}/deepseek-tui-linux-arm64", using: :nounzip
sha256 "${SHA_LEG_TUI_LINUX_ARM}"
end
else
url "${BASE_URL}/codewhale-linux-x64", using: :nounzip
sha256 "${SHA_COD_LINUX_X64}"
resource "tui" do
url "${BASE_URL}/codewhale-tui-linux-x64", using: :nounzip
sha256 "${SHA_TUI_LINUX_X64}"
end
resource "legacy-shim" do
url "${BASE_URL}/deepseek-linux-x64", using: :nounzip
sha256 "${SHA_LEG_LINUX_X64}"
end
resource "legacy-tui-shim" do
url "${BASE_URL}/deepseek-tui-linux-x64", using: :nounzip
sha256 "${SHA_LEG_TUI_LINUX_X64}"
end
end
end

def install
bin.install Dir["*"].first => "codewhale"
resource("tui").stage { bin.install Dir["*"].first => "codewhale-tui" }
resource("legacy-shim").stage { bin.install Dir["*"].first => "deepseek" }
resource("legacy-tui-shim").stage { bin.install Dir["*"].first => "deepseek-tui" }
end

test do
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,16 @@ jobs:
node-version: 20
- name: Check version drift
run: ./scripts/release/check-versions.sh
- name: Check OHOS dependency graph
run: ./scripts/release/check-ohos-deps.sh

lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
Expand All @@ -50,6 +54,22 @@ jobs:
run: cargo clippy --workspace --all-features --locked -- -D warnings
- name: Check provider registry drift
run: python3 scripts/check-provider-registry.py
- name: Check harvested contributor credit
if: github.event_name != 'schedule'
shell: bash
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
git fetch --no-tags origin "${{ github.base_ref }}"
RANGE="origin/${{ github.base_ref }}..HEAD"
elif [[ "${{ github.event.before }}" != "0000000000000000000000000000000000000000" ]]; then
RANGE="${{ github.event.before }}..${{ github.sha }}"
else
RANGE="HEAD~1..HEAD"
fi
python3 scripts/check-coauthor-trailers.py \
--author-map .github/AUTHOR_MAP \
--range "$RANGE" \
--check-authors
- name: Linux clippy location
run: echo "Linux clippy/test gates run on CNB for mirrored fix/*, rebrand/*, work/v*, and main branches."

Expand Down
Loading