fix(ci): resolve cargo-deny + MSRV + binary smoke failures - #13
Merged
Conversation
added 2 commits
April 18, 2026 22:28
The local-model lint fix in ea46514 rewrote three workspace.dependencies entries as multi-line inline tables (`rustls = { \n version = ...\n }`). That syntax is TOML 1.1, supported by cargo only since Rust 1.94.0. hamma's declared MSRV is 1.85, so the root manifest fails to parse under 1.85's toml crate — which broke both the MSRV CI job and cargo-deny (whose bundled parser is also pre-1.1). Standards (standards/TOML.md, lines 9-11, 87-102) already state that multi-line inline tables are off-limits when MSRV predates 1.94, and that dependencies exceeding 80 columns should use expanded `[dependencies.X]` blocks. Convert rustls, serde, serde_json, and tokio to that form. Also restore the trailing newline dropped by the earlier auto-fix. Gates: - rustup run 1.85.0 cargo check --workspace: clean - cargo deny check: advisories ok, bans ok, licenses ok, sources ok - cargo fmt --check, cargo clippy -Dwarnings, cargo nextest run: clean - kanon lint . --summary: no open violations Gate-Passed: kanon 0.1.0
The `smoke` job in rust.yml was copied from the forkwright template and still referenced placeholder values (`cargo build --release -p BINARY_CRATE` and `./target/release/BINARY_NAME`). cargo fails immediately with "package ID specification `BINARY_CRATE` did not match any packages", so the job has been failing on every PR. hamma is a library-only workspace (dictyon + hamma-core, no [[bin]] targets), so there is no binary to smoke-test. Remove the job and leave a note explaining the conditions under which it should be re-added (i.e. when a CLI or daemon crate lands), pinning real crate/binary names. Gate-Passed: kanon 0.1.0
Uh oh!
There was an error while loading. Please reload this page.
forkwright added a commit
that referenced
this pull request
May 29, 2026
* fix(toml): expand multi-line inline tables to named blocks The local-model lint fix in 0d4aa84 rewrote three workspace.dependencies entries as multi-line inline tables (`rustls = { \n version = ...\n }`). That syntax is TOML 1.1, supported by cargo only since Rust 1.94.0. hamma's declared MSRV is 1.85, so the root manifest fails to parse under 1.85's toml crate — which broke both the MSRV CI job and cargo-deny (whose bundled parser is also pre-1.1). Standards (standards/TOML.md, lines 9-11, 87-102) already state that multi-line inline tables are off-limits when MSRV predates 1.94, and that dependencies exceeding 80 columns should use expanded `[dependencies.X]` blocks. Convert rustls, serde, serde_json, and tokio to that form. Also restore the trailing newline dropped by the earlier auto-fix. Gates: - rustup run 1.85.0 cargo check --workspace: clean - cargo deny check: advisories ok, bans ok, licenses ok, sources ok - cargo fmt --check, cargo clippy -Dwarnings, cargo nextest run: clean - kanon lint . --summary: no open violations Gate-Passed: kanon 0.1.0 * fix(ci): remove broken binary smoke test job The `smoke` job in rust.yml was copied from the forkwright template and still referenced placeholder values (`cargo build --release -p BINARY_CRATE` and `./target/release/BINARY_NAME`). cargo fails immediately with "package ID specification `BINARY_CRATE` did not match any packages", so the job has been failing on every PR. hamma is a library-only workspace (dictyon + hamma-core, no [[bin]] targets), so there is no binary to smoke-test. Remove the job and leave a note explaining the conditions under which it should be re-added (i.e. when a CLI or daemon crate lands), pinning real crate/binary names. Gate-Passed: kanon 0.1.0 --------- Co-authored-by: Cody Kickertz <cody@forkwright.com>
Merged
forkwright pushed a commit
that referenced
this pull request
Jul 28, 2026
🤖 I have created a release *beep* *boop* --- <details><summary>0.2.0</summary> ## [0.2.0](v0.1.0...v0.2.0) (2026-07-28) ### Features * **_llm:** add T0 corpus per [#667](https://github.com/forkwright/hamma/issues/667) / [#673](https://github.com/forkwright/hamma/issues/673) fleet rollout ([#10](#10)) ([0568f51](0568f51)) * **control:** instrument async control client entry points ([#37](#37)) ([e80622f](e80622f)), closes [#20](#20) * **control:** support zstd map responses ([dd5ab90](dd5ab90)) * **dictyon:** add TCP/TLS connection, registration, and map streaming ([a311d8a](a311d8a)) * **dictyon:** control protocol types and map response parser ([dfc25c7](dfc25c7)) * **dictyon:** migrate tracing init to koinon ([e5a4260](e5a4260)) * **dictyon:** Noise IK handshake, key types, HTTP transport skeleton ([aafea4f](aafea4f)) * **dictyon:** trace wire noise transport phases ([#38](#38)) ([2d80231](2d80231)), closes [#20](#20) ### Bug Fixes * **cargo:** track lockfile for pinned rust toolchain ([#30](#30)) ([e6a2f01](e6a2f01)), closes [#29](#29) * **ci:** resolve cargo-deny + MSRV + binary smoke failures ([#13](#13)) ([9bb4533](9bb4533)) * **ci:** waive gate attestation by PR author, not by github.actor ([#69](#69)) ([764422e](764422e)), closes [#68](#68) * **control:** accept node id peer removals ([7debc6b](7debc6b)) * **control:** apply peer patch map deltas ([#33](#33)) ([dfc3731](dfc3731)) * **core:** parse peer patch map fields ([0686a66](0686a66)) * **deps:** clear RUSTSEC-2026-0190 via anyhow lockfile bump ([#56](#56)) ([2423485](2423485)) * **lint:** add non_exhaustive to public error enums, mark public-key fields ([0355297](0355297)) * **lint:** mechanical wins — allow→expect, indexing/slicing, casts, http→https ([9e339db](9e339db)) * **lint:** resolve clippy warnings in hamma-core and wire integration test ([#42](#42)) ([079ad5e](079ad5e)) * **lint:** suppress pub-visibility for library API surface ([6d54674](6d54674)) * **lint:** unblock kanon gate ([f93ff63](f93ff63)) * **release:** bump the internal hamma-core pin and Cargo.lock with the release ([#71](#71)) ([dfdfc35](dfdfc35)), closes [#70](#70) * resolve 1 lint violations via local ([#8](#8)) ([0d4aa84](0d4aa84)) ### Refactoring * **dictyon:** replace expect with ? and rename test helper ([#9](#9)) ([655b783](655b783)) * **lint:** split oversized modules; add hamma-core integration tests ([fa8f54f](fa8f54f)) * rename plegma→hamma, plegma-core→hamma-core ([a67f792](a67f792)) ### Documentation * add CLAUDE.md precedence preamble (forge[#153](https://github.com/forkwright/hamma/issues/153)) ([e91ebea](e91ebea)) * add CONTRIBUTING.md for 05e cutover ([#1](#1)) ([9dd5f87](9dd5f87)) * add llms.txt per kanon doc standards (refs [#10](#10)) ([#11](#11)) ([e869fe1](e869fe1)) * **agents:** add AGENTS.md per fleet repo-structure standard ([#40](#40)) ([0382da1](0382da1)) * **hamma:** align pre-alpha status ([#6](#6)) ([873a6c3](873a6c3)) * **hamma:** replace standards copy with kanon pointer ([#8](#8)) ([324ff18](324ff18)) * sanitize local bootstrap docs ([4c57d40](4c57d40)) * **standards:** add canonical standards from kanon ([#1](#1)) ([81e5007](81e5007)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three CI failures, two root causes. Both blocking PRs #11 and #12.
Root cause 1 —
Cargo.tomlmulti-line inline tables (breaks MSRV + cargo-deny)Commit ea46514 (
fix: resolve 1 lint violations via local, Qwen3.5-35B) rewroterustls,serde,serde_json, andtokioworkspace dependencies as multi-lineinline tables to satisfy the
TOML/inline-table-too-longkanon lint:That syntax is TOML 1.1, supported by cargo only since Rust 1.94.0. hamma's
declared MSRV is 1.85, so the root manifest fails to parse under 1.85's toml
crate:
This failure mode hit both the
MSRV (1.85)job and thecargo-denyjob (itsbundled parser is also pre-1.1), which is why two seemingly unrelated jobs
failed simultaneously.
standards/TOML.mdalready prescribes the correct fix: expanded[workspace.dependencies.X]blocks when an inline table exceeds 80 columns(lines 87-102), with the explicit note that multi-line inline tables must not
be used in repos whose MSRV predates 1.94 (lines 9-11). The local-model lint
fix violated the standard; this PR restores compliance by converting the four
offending entries to expanded-block form. Trailing newline on Cargo.toml also
restored (it had been dropped by the same auto-fix).
Root cause 2 — unset smoke-test placeholders (breaks binary smoke test)
.github/workflows/rust.ymlwas generated from the forkwright template andnever customized — the
smokejob still rancargo build --release -p BINARY_CRATEand./target/release/BINARY_NAME. cargo errored withpackage ID specification BINARY_CRATE did not match any packages.hamma is library-only (dictyon + hamma-core, no
[[bin]]targets), so thereis no binary to smoke-test. The job has been removed with an in-place comment
explaining when it should be re-added (once a CLI or daemon crate lands,
pinning real names).
Commits
3a00a58fix(toml): expand multi-line inline tables to named blocks895f8fbfix(ci): remove broken binary smoke test jobGates (local, main-equivalent worktree)
rustup run 1.85.0 cargo check --workspace— cleancargo deny check— advisories ok, bans ok, licenses ok, sources okcargo fmt --check— cleancargo clippy --workspace --all-targets -- -D warnings— cleancargo nextest run --workspace— 61 tests run, 61 passedkanon lint . --summary— 0 open violationskanon gate— PASSFollow-up
After merge, PRs #11 and #12 should go green on rebase.