Skip to content

chore(release): prep v0.4.0 — version, CHANGELOG, CI gates#19

Merged
pirumu merged 5 commits into
masterfrom
feat/release-0.4.0
Jul 15, 2026
Merged

chore(release): prep v0.4.0 — version, CHANGELOG, CI gates#19
pirumu merged 5 commits into
masterfrom
feat/release-0.4.0

Conversation

@pirumu

@pirumu pirumu commented Jul 15, 2026

Copy link
Copy Markdown
Member

Release prep: 0.4.0 — version bump, CHANGELOG, and a real CI gate

Gets the tree ready to tag v0.4.0. No feature code — version, changelog, CI, and the clippy cleanup needed to make the gate green.

Version

  • 0.3.0 → 0.4.0 across the workspace (workspace.package + the 3 crates with explicit versions + the one internal dep pin). Cargo.lock regenerated; cargo build --locked passes.

CHANGELOG

  • New ## [0.4.0] section covering this cycle: code-graph traversal/analytics, PDG + taint (--pdg), the self-repair loop (frustration sensor + lesson feedback), the graph-affordance nudge, stats report --all + model routing, /hoangsa:qc, and the wiring/drift gates.
  • The stale ## [Unreleased] backlog (native installer, npm removal, thoth→hoangsa rename, global rules) is now filed under ## [0.3.0] - 2026-07-01 — it was released but never moved out of Unreleased. Fresh empty [Unreleased] on top.

CI (.github/workflows/ci.yml) — the first non-release workflow

Previously the ONLY workflow was release.yml, so nothing gated test/clippy/fmt on PRs. Adds three jobs on push + PR:

  • testcargo test --workspace --locked
  • clippycargo clippy --workspace --all-targets --locked -- -D warnings
  • fmtrustfmt --check scoped to newly-added .rs files

To make clippy -D warnings green, 3 pre-existing warnings were cleared (two "items after a test module" — moved the trailing fns before the test module; one manual split_once). Verified locally: clippy exits 0, full test suite passes, ci.yml YAML parses.

On the fmt scope (deliberate)

There's a standing decision not to mass-reformat (a blanket cargo fmt churns 100+ legacy files). A "changed files" fmt check would force reformatting untouched legacy code inside any edited file, so the gate is scoped to added .rs files — new modules/tests stay clean, existing code is left alone. Tighten to the full diff after a dedicated one-time format pass, if desired (happy to do that as its own PR).

To cut the release

Merge the two open hardening PRs (#17 wiring guard, #18 drift gates) and this one, then tag v0.4.0release.yml builds and publishes the binaries. The 0.4.0 CHANGELOG already credits #17/#18's gates, so they should land before the tag.

pirumu added 3 commits July 15, 2026 10:54
…ustfmt)

CHANGELOG: new [0.4.0] section (code graph, PDG/taint, self-repair loop,
graph-affordance, stats+model routing, QC, wiring/drift gates); the stale
[Unreleased] backlog is filed under [0.3.0] (2026-07-01, its release date).

CI: first non-release workflow — cargo test --locked, clippy --all-targets
-D warnings, and a rustfmt check scoped to newly-added .rs files (the tree
is not uniformly formatted and mass-reformatting is out of scope).
Comment thread .github/workflows/ci.yml Fixed
Comment thread .github/workflows/ci.yml Fixed
Comment thread .github/workflows/ci.yml Fixed
pirumu and others added 2 commits July 15, 2026 11:21
The signal-forwarding tests slept a fixed 300ms for the child to exec
before killing hsp, then asserted the child was alive. On a slow/loaded
CI runner that window is too short — 'child sleep never started'. Poll
pgrep for the marker (up to 5s, returns as soon as it appears) so the
tests are timing-robust; this also makes the SIGINT test wait for the
child instead of passing vacuously when it never started.
Addresses CodeQL warnings that GITHUB_TOKEN permissions were unbounded.
All CI jobs (test, clippy, fmt) only read repo contents, so a top-level
read-only permissions block covers every job with least privilege.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@pirumu
pirumu merged commit 076ac88 into master Jul 15, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants