Hunter B
b1cc6ecf5d
merge: fleet security/trust + headless-worker foundation + depth unification
2026-06-13 01:11:50 -07:00
Hunter B
e8b52ac57a
feat(fleet): security/trust + headless-worker foundation; unify recursion depth
...
Lands the Agent Fleet security/trust boundary and the headless-worker bridge on
the v0.8.60 line, and collapses the sub-agent and fleet recursion model into a
single shared axis (Hunter steer: "not two moving targets").
Security & trust (#3165 ):
- FleetTrustLevel, FleetSecurityPolicy, FleetSecretRef (redacted), FleetWorkerAuth,
FleetCapabilityGrant, FleetAlertEndpoint (redacted) in protocol.
- secrets: resolve_direct(key, source_hint) — fleet secret resolution, never logged.
- Host adapters refuse secret-bearing env keys; SSH uses SendEnv (no argv secrets).
Roles & delegation (#3167 ):
- fleet role -> SubAgentType mapping; reviewer/verifier default read-only.
Headless worker bridge (#3096/#3154, partial — still simulation, real spawn next):
- worker_runtime: FleetTaskSpec -> AgentWorkerSpec, status -> ledger events,
exec hardening (mirrors #3027 ), parallel-safe read-only tool set (#2983 ).
- FleetManager carries an optional SharedSubAgentManager + exec config.
Recursion depth — ONE axis:
- codewhale_config now owns DEFAULT_SPAWN_DEPTH (3) + MAX_SPAWN_DEPTH_CEILING (3).
- sub-agent DEFAULT_MAX_SPAWN_DEPTH and the fleet clamp both source these consts.
- fleet default raised 1 -> 3 to match standalone sub-agents; root runs at depth 0,
budget gates child delegation. End-to-end test proves a depth-0 fleet worker
reaches 3 nested levels (afford >= 3).
Dogfood scaffolding (#3166 , partial): docs/examples/fleet-dogfood.toml.
Tests green: codewhale-config fleet, codewhale-tui fleet (58), subagent max_depth;
cargo fmt + git diff --check clean; cargo check --workspace ok.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 01:10:30 -07:00
Hunter B
7c52d6ae11
Merge provider model refresh for v0.8.60
2026-06-12 23:57:54 -07:00
Hunter B
754cff1c84
Refresh GLM and MiniMax provider models
2026-06-12 23:56:01 -07:00
Hunter B
344e89c93d
merge #3082 Checklist strategy workflow
2026-06-12 22:55:23 -07:00
Hunter B
751ff943aa
fix(tui): group strategy context under work checklist
2026-06-12 22:55:11 -07:00
Hunter B
467bb309dd
merge #3142 Agent run receipts
2026-06-12 22:46:08 -07:00
Hunter B
c0ba6ce5ad
feat(subagents): add agent run receipts
2026-06-12 22:45:53 -07:00
Hunter B
07670871d0
merge #3164 Fleet manager runbook skill
2026-06-12 22:26:49 -07:00
Hunter B
fb1a27b4f2
feat(fleet): add manager runbook skill
2026-06-12 22:26:35 -07:00
Hunter B
33f112143d
merge #3163 Runtime SDK fleet helpers
2026-06-12 22:17:40 -07:00
Hunter B
26925ae644
feat(runtime-sdk): add fleet helper client
...
Refs #3163 .
Adds the @codewhale/runtime-sdk workspace with typed fleet Runtime API helpers, protocol-shaped TypeScript declarations, JSON/SSE event fixture handling, and typed RuntimeCapabilityError failures for create/event-stream endpoints that the Rust API has not exposed yet.
Documents the SDK contract in docs/RUNTIME_API.md and wires npm workspace verification through npm test --workspace @codewhale/runtime-sdk.
2026-06-12 22:17:16 -07:00
Hunter B
e8f6816472
merge #1310 MiniMax provider route
2026-06-12 22:05:52 -07:00
Hunter B
e9f0c1c13b
feat(config): add first-party MiniMax provider route
...
Refs #1310 .
Adds the direct minimax provider slot, auth/config/env bindings, model aliases, docs, and picker/status surfaces. MiniMax requests now set reasoning_split and preserve reasoning_details history so thinking stays out of answer text.
Also updates Moonshot/Kimi reasoning classification for the Kimi Code route so reasoning_content streams into Thinking cells instead of inline prose.
2026-06-12 22:05:22 -07:00
Hunter Bown
e6005eb9ac
feat(config): add first-party Z.ai and StepFlash/StepFun provider routes ( #3187 ) ( #3191 )
...
* feat(config): add first-party Z.ai and StepFlash/StepFun provider routes (#3187 )
Add Z.ai (GLM Coding Plan) and StepFun/StepFlash as first-party providers:
Provider: Z.ai
- Default model: GLM-5.1 (200K context, 128K output, thinking, function calling)
- Base URL: https://api.z.ai/api/coding/paas/v4
- Auth: ZAI_API_KEY / Z_AI_API_KEY
- Config key: [providers.zai]
Provider: StepFun
- Default model: step-3.7-flash (256K context, 256K output, 3-level reasoning)
- Base URL: https://api.stepfun.ai/v1
- Auth: STEPFUN_API_KEY / STEP_API_KEY
- Config key: [providers.stepfun]
Both providers use OpenAI-compatible Chat Completions transport.
Includes:
- ProviderKind enum variants with serde aliases
- ProvidersToml config fields with aliases
- Provider trait implementations in provider.rs
- PROVIDER_REGISTRY, ALL, KIND_LOOKUP, FROM_KIND_LOOKUP updates
- EnvRuntimeOverrides fields and env-var loading
- TUI ApiProvider enum and lookup table updates
- CLI provider_slot and provider_env_vars additions
- Exhaustive match arms across client.rs, config.rs, engine.rs, main.rs,
provider_picker.rs, ui.rs, and config_persistence.rs
Verified: cargo check passes, config provider tests (67/67) pass.
* test(tui): update provider picker tests for Zai and Stepfun additions
2026-06-12 19:58:57 -07:00
Hunter B
12d3053a15
merge #3162 fleet status surfaces
2026-06-12 19:35:31 -07:00
Hunter B
6b5ffd5627
feat(tui): expose fleet status surfaces
2026-06-12 19:35:11 -07:00
Hunter B
86c87ca6a4
merge #3161 fleet alerts
2026-06-12 19:18:01 -07:00
Hunter B
bc61857fad
feat(tui): add opt-in fleet alert dry-runs
2026-06-12 19:17:50 -07:00
Hunter B
a656175c49
merge #3160 fleet task specs
2026-06-12 19:01:14 -07:00
Hunter B
714276e1c1
feat(tui): add verifiable fleet task specs
2026-06-12 19:01:00 -07:00
Hunter B
8e53aac3b5
merge #3159 fleet scheduler policy
2026-06-12 18:43:44 -07:00
Hunter B
44f429f108
feat(tui): add fleet scheduler policy
2026-06-12 18:43:36 -07:00
Hunter B
c78d3b63fc
merge #3158 fleet host adapters
2026-06-12 18:31:39 -07:00
Hunter B
9e5688b8c8
feat(tui): add fleet host adapters
2026-06-12 18:31:29 -07:00
Hunter B
e35684efed
merge #3157 fleet manager commands
2026-06-12 18:15:26 -07:00
Hunter B
66a45c0070
feat(tui): add local fleet manager commands
2026-06-12 18:15:18 -07:00
Hunter B
8ba8f7f2f5
merge #3156 fleet ledger
2026-06-12 17:56:41 -07:00
Hunter B
023434cb2a
fix(tui): harden fleet ledger replay and compaction
2026-06-12 17:56:26 -07:00
Hunter B
b0c876e5ac
merge #3155 fleet protocol fixes into ledger branch
...
# Conflicts:
# crates/protocol/src/fleet.rs
2026-06-12 17:50:45 -07:00
Hunter B
59848f18fc
merge #3155 fleet protocol types
...
# Conflicts:
# crates/protocol/src/lib.rs
2026-06-12 17:50:18 -07:00
Hunter B
f0ae838eb1
fix(protocol): harden fleet JSON contract
2026-06-12 17:48:59 -07:00
Hunter B
5b47d46092
chore: seed v0.8.60 branch from main after v0.8.59
...
# Conflicts:
# README.md
# crates/cli/src/lib.rs
# crates/config/src/lib.rs
# crates/config/src/provider.rs
# crates/tui/src/commands/mod.rs
# crates/tui/src/localization.rs
# crates/tui/src/prompts.rs
# crates/tui/src/tui/ui.rs
# crates/tui/src/tui/ui/tests.rs
# crates/tui/src/tui/widgets/tool_card.rs
# scripts/benchmarks/cli-compare.py
2026-06-12 17:42:22 -07:00
CodeWhale Agent
3d822488fe
chore(fmt): apply cargo fmt for CI parity gate
2026-06-12 17:02:17 -07:00
CodeWhale Agent
97f8a98b75
fix(config): align Kimi OAuth credentials with Kimi Code
2026-06-12 16:43:25 -07:00
CodeWhale Agent
738a265197
fix(tui): show Bash for shell work in visible UI
2026-06-12 16:32:32 -07:00
CodeWhale Agent
f870eb3e19
fix(tui): keep subagents alive across backgrounded waits
2026-06-12 16:16:39 -07:00
CodeWhale Agent
d48373617f
fix(tui): clear sidebar hover highlight on exit while loading
2026-06-12 15:54:08 -07:00
CodeWhale Agent
b0577057c9
fix(tui): localize notifications and persist sidebar focus
2026-06-12 15:47:44 -07:00
dependabot[bot]
7856d26d64
build(deps): bump tempfile from 3.24.0 to 3.27.0 ( #2997 )
...
Bumps [tempfile](https://github.com/Stebalien/tempfile ) from 3.24.0 to 3.27.0.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.24.0...v3.27.0 )
---
updated-dependencies:
- dependency-name: tempfile
dependency-version: 3.27.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-12 15:44:26 -07:00
dependabot[bot]
d818ac4e2a
build(deps): bump image from 0.25.9 to 0.25.10 ( #3000 )
...
Bumps [image](https://github.com/image-rs/image ) from 0.25.9 to 0.25.10.
- [Changelog](https://github.com/image-rs/image/blob/v0.25.10/CHANGES.md )
- [Commits](https://github.com/image-rs/image/compare/v0.25.9...v0.25.10 )
---
updated-dependencies:
- dependency-name: image
dependency-version: 0.25.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-12 15:44:19 -07:00
dependabot[bot]
45f334828f
chore(deps): bump pdf-extract from 0.7.12 to 0.10.0 ( #3184 )
...
Bumps [pdf-extract](https://github.com/jrmuizel/pdf-extract ) from 0.7.12 to 0.10.0.
- [Commits](https://github.com/jrmuizel/pdf-extract/compare/v0.7.12...v0.10.0 )
---
updated-dependencies:
- dependency-name: pdf-extract
dependency-version: 0.10.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-12 15:44:13 -07:00
dependabot[bot]
9373c5d6b2
chore(deps): bump flate2 from 1.1.5 to 1.1.9 ( #3185 )
...
Bumps [flate2](https://github.com/rust-lang/flate2-rs ) from 1.1.5 to 1.1.9.
- [Release notes](https://github.com/rust-lang/flate2-rs/releases )
- [Commits](https://github.com/rust-lang/flate2-rs/compare/1.1.5...1.1.9 )
---
updated-dependencies:
- dependency-name: flate2
dependency-version: 1.1.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-12 15:44:06 -07:00
dependabot[bot]
ec5b0791be
chore(deps): bump objc2 from 0.6.3 to 0.6.4 ( #3186 )
...
Bumps [objc2](https://github.com/madsmtm/objc2 ) from 0.6.3 to 0.6.4.
- [Commits](https://github.com/madsmtm/objc2/compare/objc2-0.6.3...objc2-0.6.4 )
---
updated-dependencies:
- dependency-name: objc2
dependency-version: 0.6.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-12 15:43:59 -07:00
CodeWhale Agent
e4989c0eae
feat(tui): add Copy to the sidebar right-click context menu
...
Removing Paste from the sidebar menu (#3065 ) left rows with no copy
path at all — sidebar text can't be mouse-selected. Right-clicking a
sidebar row now offers Copy, which writes the row's untruncated text
plus its hover detail to the clipboard via a new
ContextMenuAction::CopyText. Run stays first for clickable rows.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 15:35:20 -07:00
CodeWhale Agent
ba1104251a
feat(tui): richer Work overflow and Agents hover detail in sidebar
...
- Work panel: hovering the '+N more checklist items' overflow row now
reveals the omitted checklist items in the popover, so a
height-constrained panel no longer hides work items with no way to
inspect them (#3063 ).
- Agents panel: the compact agent label row's hover text now carries a
full dossier — id, role, status, elapsed time, step count, objective
(new SidebarAgentRow field, from SubAgentAssignment), branch, and
untruncated progress. Compact rows stay unchanged.
- Detail-row hover keeps the full progress text instead of the
summarized form.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 15:26:53 -07:00
CodeWhale Agent
2da01367e6
fix(tui): keep sidebar resize live during active turns
...
The loading mouse filter (should_drop_loading_mouse_motion) dropped all
Drag events while app.is_loading unless a transcript selection or
scrollbar drag was active. A sidebar resize started on the handle
(Down passes the filter) then never received its Drag events, leaving
the resize wedged mid-gesture during live runs (#3063 , symptom of the
#3096 subagent-runtime pressure on the TUI).
- Allow Drag events through the loading filter while
app.sidebar_resizing is set.
- Clear last_sidebar_area / last_sidebar_handle_area and any in-flight
resize when the sidebar is hidden or doesn't fit, so stale handle
hit-areas can't capture clicks.
- Tests: resize down/drag/up while loading, mouse-up outside the
handle still ends the resize.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 15:26:53 -07:00
CodeWhale Agent
3169c459ed
docs(changelog): document harvested v0.8.59 features
2026-06-12 14:54:47 -07:00
CodeWhale Agent
7ea05982f2
fix(clippy): resolve rust 1.96 lint errors blocking the release gate
...
cargo clippy --workspace -D warnings fails on three pre-existing spots
newly flagged by the current toolchain: unnecessary_sort_by in
context_report, question_mark in the provider fallback chain, and
unnecessary_map_or in the empty-state widget check. Apply the
mechanical fixes clippy suggests; no behavior change.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 14:48:42 -07:00
CodeWhale Agent
88ec6b5ea5
Harvest PR #3010 : lock slim default prompt with calm-overlay regression test
...
The release branch already ships the slim-prompt intent in a stronger
form than #3010 — compose_default_static_layers appends no personality
overlay at all (voice/tone guidance is folded into the constitution
preamble), where the PR only emptied the Calm arm. Carry over the PR's
regression test, which derives its assertion from calm.md itself so a
future re-inclusion of the overlay text fails loudly.
Harvested from PR #3010 by @894876246
Co-authored-by: Hanmiao Li <894876246@qq.com >
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 14:43:42 -07:00