Commit Graph
99 Commits
Author SHA1 Message Date
Matt Van Horn ea07765bc5 build: wire README.ko-KR.md into release version scripts 2026-06-27 23:23:25 -07:00
Hunter B 4004388e6b ci: validate OHOS dependency retry count
The retry wrapper should never let CODEWHALE_OHOS_DEP_RETRIES=0 skip the cargo tree probe and pass an empty dependency graph. Reject invalid retry counts before probing so the guard fails loudly instead.
2026-06-26 19:47:41 -07:00
Hunter B 7da34dc96e ci: retry OHOS dependency graph probe
The Version drift gate can fail when Cargo registry fetches briefly drop during the OHOS dependency graph probe. The underlying check is still useful, but a transient EOF should not be indistinguishable from real dependency drift.

Retry cargo tree a few times before failing, while preserving the final nonzero status for real errors. Document the CI hardening in both changelogs.
2026-06-26 19:47:41 -07:00
Toan Nguyen 0357e4190a feat(provider): add OpenModel support
Register OpenModel across the shared provider registry, CLI model registry, TUI config, provider picker, and docs. Default the route to deepseek-v4-flash, use Anthropic Messages wire semantics, and keep Bearer auth so /v1/messages and /v1/models share one client.

This harvest also updates the config example to use deepseek-v4-flash instead of deepseek-chat, which the original PR notes is not available through OpenModel Messages.

Harvested from PR #3585 by @noaft.

Verification:

- cargo fmt

- CARGO_TARGET_DIR=/Volumes/VIXinSSD/codewhale-target CARGO_INCREMENTAL=0 cargo test -p codewhale-config --locked openmodel

- CARGO_TARGET_DIR=/Volumes/VIXinSSD/codewhale-target CARGO_INCREMENTAL=0 cargo test -p codewhale-tui --bin codewhale-tui --locked openmodel

- CARGO_TARGET_DIR=/Volumes/VIXinSSD/codewhale-target CARGO_INCREMENTAL=0 cargo test -p codewhale-agent --locked first_party_recent_provider_models_are_listed
2026-06-26 17:07:06 -07:00
Hunter B a006ccf829 fix(release): harden asset verifier redirects
Drain redirect responses in the npm release asset verifier before following them, and cap redirect recursion to match the existing HEAD helper.

Also clarify the 100-run workflow lookup window and add coverage for non-uploaded GitHub Release assets.
2026-06-25 20:22:02 -07:00
Hunter B 097c57b08b fix(release): gate registry publish on fresh assets
Add a release asset verification gate that compares the local and remote tag SHAs, confirms a successful Release workflow run for that SHA, and reruns the npm wrapper asset verifier against the public GitHub assets.

Strengthen npm release:check so stale or incomplete GitHub Release assets fail before publish, while local/mirror asset checks still work through explicit release-base overrides.

Document npm auth/OTP retry commands, final registry verification, and the legacy deepseek-tui no-republish rule.

Closes #2642.

Closes #2643.
2026-06-25 20:15:32 -07:00
Hunter B cff78dd04f release: ship native codew shim in archives
Stage the codew binary in release builds, include it in platform archives and Windows installer inputs, and teach local release asset prep/checks about the shim. The Unix archive installer now installs via atomic replace so an existing executable is not overwritten in place.
2026-06-24 22:10:21 -07:00
CodeWhale Agent 51047e972b docs: update public security contact
Point public vulnerability reporting contact surfaces at [email protected] after the codewhale.net security mailbox bounced. Keep the release guard aligned so CI rejects stale [email protected] references in SECURITY.md.
2026-06-24 12:55:51 -07:00
Hunter B 82351c006e fix(web,build): handle Custom meta-provider + fix default-model after config split
Follow-ons surfaced by integrating #1519 + #3311:
- #1519 added the dynamic ApiProvider::Custom meta-provider. Exclude it from the
  website provider facts (facts-lib.mjs + facts-drift.ts EXCLUDED, like
  DeepseekCN) and from the provider-table drift check (META_PROVIDER_TABLES in
  check-provider-registry.py) — it's a runtime catch-all, not a shipped provider.
- #3311 moved DEFAULT_TEXT_MODEL's definition to config/models.rs, which broke
  the web facts' loose scrape (it mis-bound to an NVIDIA base URL). Read both
  files and match the const definition precisely; default model is deepseek-v4-pro
  again.
2026-06-24 02:07:28 -07:00
Hunter B 6ab9f72954 refactor(tui): split config monolith into clean leaf modules (#3311)
Extract self-contained, behavior-preserving leaves out of the
~6.7k-line crates/tui/src/config.rs into sibling modules under
crates/tui/src/config/, each re-exported behind a `pub use` facade so
every existing `crate::config::<symbol>` path resolves unchanged. No
call site outside config.rs is touched; entangled credential/provider/
default-model/normalization/route logic stays put.

Modules created (config.rs: 6739 -> 6246 lines, ~493 lines moved):
- config/models.rs (160): provider model-name + base-URL constants and
  curated model lists (DEFAULT_*_MODEL/BASE_URL, RECENT_OPENROUTER_*,
  COMMON/OFFICIAL_DEEPSEEK_MODELS, ...). API_KEYRING_SENTINEL stays in
  config.rs with the credential logic.
- config/search.rs (135): SearchProvider, SearchProviderSource,
  SearchProviderResolution, SearchConfig (self-contained [search] types).
- config/subagent_limits.rs (69): sub-agent concurrency/timeout limit
  constants + their two private clamp resolvers (pulled back privately,
  no new external surface).
- config/paths.rs (203): pure filesystem path helpers (config/cache/
  workspace path resolution, env-var path overrides, ~ expansion);
  effective_home_dir/expand_path re-exported pub(crate). Workspace-trust
  and config-load logic stay in config.rs.

scripts/check-provider-registry.py now also scans config/models.rs for
the default model/base-URL constants so the registry gate follows the
split.

Verify: config suite 480 passed / 0 failed; full bin suite 5248 passed
/ 0 failed; cargo build -p codewhale-tui --locked green; clippy clean on
all changed files (the 3 remaining -D warnings errors are pre-existing
too_many_arguments lints in untouched chat.rs/engine.rs); cargo fmt
--all clean; provider registry drift check passes.
2026-06-24 01:19:09 -07:00
Nightt 8a546e63d9 fix(release): require tags to land from main
Add a release guard that rejects tag-triggered releases whose source commit is not reachable from the canonical main branch. Wire it into release.yml before asset publishing and document the merge-before-tag order in the release runbook and checklist.

Closes #2985.
2026-06-24 11:36:47 +08:00
Hunter BownandClaude Opus 4.8 6baed6e964 refactor(config): extract ProviderKind into a provider_kind module (#3311) (#3505)
Second behavior-preserving slice of the config module split: moves the
ProviderKind enum + its identity impl out of lib.rs into a provider_kind module,
re-exported `pub use provider_kind::ProviderKind` so codewhale_config::ProviderKind
and all crate::ProviderKind paths are unchanged. Also updates the provider-registry
drift check to read ProviderKind from its new module. No values/logic changed;
lib.rs shrinks ~158 lines.

cargo fmt/clippy clean; cargo test -p codewhale-config 251 passed; drift check passes.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-23 16:07:23 -07:00
Hunter Bown 5b8a5ac0b2 feat(provider): add DeepSeek Anthropic-compatible route
Adds a DeepSeek Anthropic-compatible provider route through the existing Messages adapter.\n\nVerification:\n- cargo fmt --all -- --check\n- git diff --check\n- python3 scripts/check-provider-registry.py\n- cargo test -p codewhale-tui --bin codewhale-tui --locked deepseek_anthropic\n- cargo test -p codewhale-tui --bin codewhale-tui --locked api_provider_metadata_helpers_follow_config_provider_metadata\n- cargo test -p codewhale-tui --bin codewhale-tui --locked provider_config_key_follows_config_provider_metadata\n- cargo clippy -p codewhale-tui --bin codewhale-tui --locked -- -D warnings -A clippy::uninlined_format_args -A clippy::too_many_arguments -A clippy::unnecessary_map_or -A clippy::assertions_on_constants\n- GitHub checks green on abe866ae0
2026-06-23 10:26:07 -07:00
Hunter B 21aa2364ee fix(security): correct vulnerability report contact to [email protected]
SECURITY.md pointed disclosures at [email protected], a domain the
project does not own (the project owns codewhale.net, and the website
footer already uses [email protected]). Reports were being sent to
a dead address. Align SECURITY.md and the check-versions.sh release
guard on [email protected].
2026-06-22 00:07:01 -07:00
Hunter B 9b78097bc3 fix(ci): align security contact version guard
Update the release version-drift guard to require the CodeWhale security contact now listed in SECURITY.md, matching the v0.8.64 security contact harvest.
2026-06-21 21:46:45 -07:00
Nightt a368a63368 fix(release): qualify branch hygiene remote main
Use refs/remotes/<remote>/main when deriving the default main ref for branch hygiene so a local branch named <remote>/main cannot shadow the intended remote-tracking branch.

This addresses Gemini Code Assist feedback on PR #3348.

Validation:

- bash scripts/release/branch-hygiene.test.sh

- bash scripts/release/branch-hygiene.sh --remote upstream --release-branch hunter/0.8.62-glm-subagents

- cargo fmt --all -- --check

(cherry picked from commit 34a3e227f9)
2026-06-21 21:30:16 -07:00
Nightt 1f8408b4dd fix(release): harden branch hygiene checks
Add a --remote option so post-merge branch hygiene can inspect upstream release refs from fork checkouts while keeping origin as the default.

Pin the branch-hygiene shell helper and test to LF line endings, make the hermetic test independent of global git identity, and document the post-merge dry-run/prune workflow in the release runbook and checklist.

Fixes #3214

Validation:

- cargo fmt --all -- --check

- bash scripts/release/branch-hygiene.test.sh

- bash scripts/release/branch-hygiene.sh --remote upstream --release-branch hunter/0.8.62-glm-subagents --main-ref upstream/main

- cargo test --workspace --all-features --locked (local run reached codewhale_tui; session_manager temp-dir tests fail because this machine has C:\\.git, and the pandoc/sidebar failures passed when rerun in isolation)

(cherry picked from commit 6952914463)
2026-06-21 21:30:16 -07:00
Hunter B 207b404775 fix(security): redact sensitive runtime diagnostics
Reject provider-scoped TLS verification bypasses before constructing a runtime client, avoid printing raw session lineage identifiers, and keep fleet alert webhook URLs out of the secret-reporting helper path.

Also keep provider-registry diagnostics from echoing sensitive-looking expected values while preserving actionable drift failures.

Verification:

- cargo test -p codewhale-tui --bin codewhale-tui --locked tls -- --nocapture

- cargo test -p codewhale-tui --bin codewhale-tui --locked fork_lineage_metadata_round_trips_and_formats -- --nocapture

- cargo test -p codewhale-tui --bin codewhale-tui --locked build_list_lines_marks_fork_lineage -- --nocapture

- cargo test -p codewhale-tui --bin codewhale-tui --locked session_create_from_completed_thread_saves_messages -- --nocapture

- cargo test -p codewhale-tui --bin codewhale-tui --locked session_create_from_thread_rejects_active_turn -- --nocapture

- cargo test -p codewhale-tui --bin codewhale-tui --locked fleet_alert_ -- --nocapture

- python3 scripts/check-provider-registry.py

- RUSTFLAGS=-Dwarnings cargo check -p codewhale-tui --bin codewhale-tui --locked

- cargo fmt --all -- --check

- git diff --check
2026-06-21 21:13:02 -07:00
Hunter B e2a7f95756 fix(ci): align mobile smoke auth contract
The mobile shell is intentionally served without embedding the runtime token in the URL while /v1 routes remain bearer-protected. Update the smoke to assert that contract and verify the shell HTML does not echo the configured token.
2026-06-21 20:38:33 -07:00
Hunter B 5b19e8416f fix(security): redact provider registry drift output
Sanitize auth-looking identifiers and bearer/key-value forms before the provider registry checker writes drift details to stderr. This keeps the maintainer diagnostics useful while avoiding cleartext sensitive-data output patterns.

Verified with:

- python3 -m py_compile scripts/check-provider-registry.py

- python3 scripts/check-provider-registry.py

- direct redaction probe for bearer and key-value forms

- git diff --check
2026-06-21 15:56:50 -07:00
Hunter B 7b4d2911ea chore: clean public release surfaces
Remove public benchmark docs/scripts and the shipped SWE-bench CLI surface from the CodeWhale repo; benchmark work belongs outside this release repo.

Trim public docs that routed users into private maintainer runbooks, remove stale deleted-doc links, tone down release-facing copy, update CodeWhale crate descriptions, and expose the residue ledger as /debt while keeping quiet legacy dispatch compatibility.

Verification:\n- cargo fmt --all -- --check\n- git diff --check\n- ./scripts/release/check-versions.sh\n- cargo check -p codewhale-tui --bin codewhale-tui --locked\n- cargo test -p codewhale-tui --bin codewhale-tui --locked command_registry\n- cargo test -p codewhale-tui --bin codewhale-tui --locked every_command_alias_dispatches_to_a_handler\n- cargo test -p codewhale-cli --locked
2026-06-21 13:35:47 -07:00
Hunter B 6c0b71f5ee benchmarks: harden terminal bench environments
Preserve the existing local benchmark drift by making Debian installs noninteractive, raising direct-agent default tool timeouts for long build/test steps, classifying more verifier/environment failures, and adding a Pier adapter for local CodeWhale artifacts.

Verified with: python3 -m py_compile scripts/benchmarks/pier_codewhale_local_agent.py scripts/benchmarks/harbor/codewhale_local_agent.py scripts/benchmarks/harbor/deepseek_direct_agent.py scripts/benchmarks/run-codewhale-terminal-bench.py scripts/benchmarks/run-deepseek-direct-terminal-bench.py

Verified with: python3 -m pytest scripts/benchmarks/test_run_codewhale_terminal_bench.py
2026-06-21 13:16:25 -07:00
Hunter B f8c4d5318b benchmarks: classify harness failures
Add Terminal-Bench artifact preflight metadata, task readiness predicates, background service helpers, verifier-surface prompt hints, denied-tool telemetry, and per-row failure classes for CodeWhale benchmark runs.

Verification: python3 -m py_compile scripts/benchmarks/run-codewhale-terminal-bench.py scripts/benchmarks/harbor/codewhale_local_agent.py scripts/benchmarks/test_run_codewhale_terminal_bench.py; python3 scripts/benchmarks/test_run_codewhale_terminal_bench.py; git diff --check; embedded HARNESS_LIBRARY_BODY bash -n.
2026-06-20 21:46:47 -07:00
Hunter B c8ba9566e0 WIP: add terminal-bench comparison runners
Add local-artifact CodeWhale, thin direct DeepSeek, and stock mini-swe Terminal-Bench runners for release-candidate comparison rows.

Verified with py_compile, help output, dry-run command generation, and missing-artifact validation. Full Harbor task execution remains a separate benchmark run.
2026-06-20 19:28:34 -07:00
Hunter B b1c5f51d58 fix(ci): unblock v0.8.63 release train checks
Allow the co-author credit check to ignore known bot/tool co-author trailers on true merge commits while continuing to enforce human contributor credit on harvested commits. Also reject rooted or prefixed state subdir paths so the #3240 hardening behaves consistently on Windows.

Verified: python3 scripts/check-coauthor-trailers.py --author-map .github/AUTHOR_MAP --range origin/main..HEAD --check-authors

Verified: cargo test -p codewhale-config --locked

Verified: cargo test -p codewhale-tui --bin codewhale-tui saved_default_provider_syncs_back_to_runtime_config --locked

Verified: cargo clippy --workspace --all-features --locked -- -D warnings -A clippy::uninlined_format_args -A clippy::too_many_arguments -A clippy::unnecessary_map_or -A clippy::assertions_on_constants

Verified: git diff --check; cargo fmt --all -- --check; python3 scripts/check-provider-registry.py; ./scripts/release/check-versions.sh; cargo audit
2026-06-19 22:24:05 -07:00
Hunter B 557db2a638 fix(scripts): bound smoke-test curl health checks with --max-time
The mobile/remote smoke and verify steps could hang indefinitely when a
server accepted a connection but never responded, because the curl health
polls and assert requests had no timeout. Issue #2872 reports the CI
verify step (Smoke Tests) wedging on exactly this.

Bound every unbounded curl in the smoke harness:
- mobile-smoke.sh: --max-time 2 on the two /health readiness polls and
  --max-time 10 on the assert_status/assert_body_contains request arrays.
- remote-smoke/setup-vm.sh: --max-time 3 on the final display curl after
  the already-bounded readiness loop.

This matches the --max-time convention already used in doctor.sh and the
setup-vm readiness poll. Verified by running mobile-smoke.sh end to end
(9 passed, 0 failed).

Refs #2872.
2026-06-19 20:39:13 -07:00
Hunter B 3c6d1a4249 fix(release): derive web facts before version check
Clean CI checkouts no longer track web/lib/facts.generated.ts, but check-versions.sh still validates the generated facts version. Derive the ignored facts file before reading it, and regenerate once if the version is stale.

Verified: rm -f web/lib/facts.generated.ts && ./scripts/release/check-versions.sh; git diff --check
2026-06-17 22:50:37 -07:00
CodeWhale Agent 20e9fcb7ec merge main into 0.8.62 glm subagents candidate 2026-06-17 14:50:16 -07:00
Hunter B 5d0cb6e071 chore(workspace): delete dead crates/tui-core scaffold
Verified zero dependents: no workspace crate depends on codewhale-tui-core,
no `use codewhale_tui_core` exists outside the crate itself, and it is not in
default-members. The 470-line lib.rs carried #![allow(dead_code)] and served
only as an unfinished extraction/parity scaffold.

Removes the crate directory, the workspace `members` entry, the
release-crate publish line, the now-dangling "TUI snapshot parity" CI step
(the crate it tested no longer exists), and the doc/contribute-page mentions
of it. The historical note in docs/CHANGELOG_ARCHIVE.md is left intact as an
accurate record of when the crate was introduced.

Verified: cargo build --workspace, cargo build --release -p codewhale-cli -p
codewhale-tui, cargo fmt --all -- --check, and the remaining two parity
binaries (codewhale-protocol parity_protocol, codewhale-state parity_state)
all pass on the result. Cargo.lock diff is exactly the removed package block.
2026-06-16 20:34:25 -07:00
jayzhu 4464de86a8 docs: add Linux build-time deps to cargo install guides (#3270) 2026-06-16 18:22:07 -07:00
CodeWhale Agent e617a9ad82 release: v0.8.61 2026-06-15 15:22:32 -07:00
CodeWhale Agent 4d73b2cd70 feat(app-server): OpenAI-compatible /v1/chat/completions endpoint; crate is library-only
- Add provider-neutral /v1/chat/completions pass-through with model registry
  resolution, configured-credential forwarding, and upstream URL handling.
- Delete crates/app-server/src/main.rs and set autobins=false so the crate ships
  as a library consumed by codewhale-cli; no standalone app-server binary.
- Add Arcee default model to the release smoke script.
2026-06-15 15:18:49 -07:00
CodeWhale Agent 3cb9f4a920 fix(release): keep app-server library-only 2026-06-15 13:53:30 -07:00
CodeWhale AgentandClaude Opus 4.8 45b5462692 feat(app-server): make app-server the canonical runtime API entrypoint (#3228)
`codewhale app-server --http`/`--mobile` now serve the full HTTP/SSE runtime API
(/v1/*, SSE, sessions, threads, turns, approvals, usage, fleet, tasks) by
delegating to the same mature server reached via `serve --http`/`--mobile`, which
remain as compatibility aliases. No routes or behavior in
crates/tui/src/runtime_api.rs changed; the CLI reuses the existing sibling-TUI
delegation that `serve` already uses.

- app-server --stdio: unchanged JSON-RPC control transport.
- app-server (bare): unchanged legacy in-process HTTP on :8787.
- AppServerArgs: host/port -> Option (defaults 7878 for --http/--mobile, 8787
  legacy); add --http/--mobile/--qr/--workers with clap conflicts; map
  --insecure-no-auth onto serve's --insecure when delegating.
- app-server: pin the stdio capability method set with drift tests.
- docs/RUNTIME_API.md: lead with app-server; document benchmark/SDK contract.
- scripts/release/app-server-smoke.sh (+ .test.sh): pre-release headless smoke,
  stdio health/capabilities probe (no tokens) plus a secret-safe provider/model
  matrix discovered from `codewhale auth list`.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-15 11:42:39 -07:00
Hunter B 10f5d061a1 fix(update): preflight Linux glibc assets
Refs: #3207

Refs: #1067
2026-06-14 11:53:05 -07:00
Hunter BandClaude Opus 4.8 efe397bee4 chore(release): add post-merge branch hygiene script + runbook
Adds scripts/release/branch-hygiene.sh: a read-only, dry-run-by-default tool
that makes the post-merge release state obvious and recommends safe branch
cleanup. It reports the current checkout, local+remote release tips, and
origin/main; flags branches whose tip is already contained in main or the
release branch as safe deletes; and lists branches with unique commits as
keep/review, naming the branch, unique-commit count, author(s), and reason.

Enforces the contributor-preservation policy: a branch is only ever a
maintainer-only safe/review item if every unique commit maps to Hunter
(via a built-in list + the canonical side of .mailmap). Any unique commit
from another contributor forces a KEEP and is never auto-deleted unless
already merged. Deletion is gated behind --prune/--prune-remote + a
confirmation (or --yes), and a diverged local/remote release tip exits
non-zero.

Adds a hermetic test (branch-hygiene.test.sh) that builds a synthetic repo
and asserts safe-delete detection, contributor preservation, mailmap
folding, the parked-checkout warning, prune behavior, and divergence
detection. Documents the exact commands as section 5b of the release
checklist.

Refs: #3214

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-14 09:14:49 -07:00
Hunter BandClaude Opus 4.8 f1ae7a6dbe docs(release): explain bare-binary vs .tar.gz release artifacts (#3208)
#3208 was confusion, not a bug: codewhale-<platform> (bare) is what the npm wrapper
and in-app updater download; codewhale-<platform>.tar.gz bundles the same binaries +
install.sh for manual installs. Clarify both the generated GitHub release body and
INSTALL.md §6 so the Releases page is self-explanatory. Docs only; no pipeline logic.

Closes: #3208
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-14 09:05:32 -07:00
CodeWhale Agentandmvanhorn 89a9981bf9 Merge PR #2879: Hugging Face provider docs and tests
Harvested from PR #2879 by @mvanhorn

Co-authored-by: mvanhorn <[email protected]>
2026-06-12 13:56:03 -07:00
CodeWhale Agentandsximelon 1dc4c279ac Merge PR #3005: provider metadata registry
Harvested from PR #3005 by @sximelon

Co-authored-by: sximelon <[email protected]>
2026-06-12 13:52:29 -07:00
idling11 da943be7de fix(config): split SiliconFlow CN provider config
Harvest #2895 for the v0.8.59 release lane. SiliconFlow CN now reads its own providers.siliconflow_cn / providers.siliconflow-CN table and falls back to providers.siliconflow only when api_key, base_url, or model are unset.

Maintainer amendments wire the TUI fallback paths, provider config get/set/unset/redaction surfaces, env override routing, model normalization, tests, and changelog credit.

Fixes #2893.

Reported-by: Artenx <[email protected]>
2026-06-12 01:21:27 -07:00
idling11 0cd8bcde1b feat(bench): add CLI comparison harness
Harvest #3009 for the v0.8.59 release lane. Adds a paired Terminal-Bench harness for CodeWhale and Codex, a Codex Harbor adapter, generated-result ignore protection, and benchmark docs.

Maintainer amendments keep explicit zero-valued metrics, regenerate parent task names, write refreshed summaries in regenerate mode, and allow transcript paths outside the repo.

Fixes #2952.
2026-06-12 01:15:00 -07:00
shenbowen f64cf6f0ff refactor(config): extract provider metadata into data-driven registry 2026-06-11 15:33:15 +08:00
Claude 9de6c9d125 docs(remote-smoke): add gh auth setup-git + git identity to the autonomous-loop setup; qualify the AGENT_RUNNER.md cross-reference (file lands in #3043) with an on-branch fallback (#3022)
Co-Authored-By: Claude <[email protected]>
https://claude.ai/code/session_018zaP8vUfTAsrE38L6h6fw5
2026-06-11 02:31:34 +00:00
Hunter Bown 5483e1553d feat(remote-smoke): bump to v0.8.57, add gh CLI, swapfile, agent-session.sh, autonomous loop docs (#3022)
- setup-vm.sh: bump RELEASE_TAG default to v0.8.57, add gh CLI install
  step (official APT repo) and 4G swapfile creation (idempotent)
- agent-session.sh: new sourceable helper that exports the provider key
  from /etc/codewhale/runtime.env for interactive agent sessions
- README.md: update version refs, add agent-session.sh to layout, add
  Autonomous agent loop section with full pick->PR commands

The droplet ops (binary upgrade, PAT setup, first end-to-end issue run)
are documented as the next steps for the operator.
2026-06-10 16:20:57 -07:00
Hunter B b23067bacd release: v0.8.57 — sleep-resume turns, docker fix, one-command release prep, changelog diet 2026-06-10 00:02:51 -07:00
Hunter B c58ef8ddff feat(release): generate the GitHub Release body from the CHANGELOG entry
The workflow hardcoded install boilerplate plus a contributor list that
had already drifted (v0.8.56's release thanked people 'for shaping
v0.9.0'). The body now comes from scripts/release/generate-release-body.sh:
static install/verify sections plus the tagged version's changelog section,
which already carries the per-release credits.
2026-06-09 23:44:57 -07:00
Hunter B 4465459b69 feat(release): one-command version bump via prepare-release.sh; close version-drift gaps
- scripts/release/prepare-release.sh bumps workspace + crate pins + npm
  wrapper + README install tags, refreshes Cargo.lock, regenerates the
  TUI changelog slice and web facts, then runs check-versions.sh
- check-versions.sh now also gates web/lib/facts.generated.ts and the
  README install-tag examples (both drifted silently before)
- .cnb.yml validates the pushed tag against Cargo.toml before generating
  mirror release notes
- RELEASE_CHECKLIST/RUNBOOK updated accordingly (v0.8.56 needed 9 fix
  commits for exactly these sync points)
2026-06-09 23:43:15 -07:00
Hunter B 6dcdc19077 chore: drop unused deps (tracing-appender, zeroize, rustls in release), orphaned vendor lockfile and one-off verify_task.sh 2026-06-09 23:33:47 -07:00
Hunter B 44c13eb63f fix(release): check-versions validates the generated TUI changelog slice, not byte equality
The packaged changelog is now a recent-releases slice produced by
scripts/sync-changelog.sh (which gains a --check mode); also restore the
SECURITY.md contact line the version gate guards, and finish the stale
binary-name sweep (--bin codewhale examples, qa harness doc).
2026-06-09 23:32:40 -07:00
Hunter B 68aee8409f chore: move HarmonyOS clang wrappers to scripts/ohos/ 2026-06-09 23:24:13 -07:00