From 4240137da8c0a0dff1ca779018cb73e6a9eae657 Mon Sep 17 00:00:00 2001 From: Cody Kickertz Date: Wed, 18 Mar 2026 02:15:41 +0000 Subject: [PATCH 1/4] fix(ci): use harmonia-specific binary and features in rust.yml The Rust CI workflow was copied from aletheia without adapting feature flags and binary names. Removes aletheia-specific feature isolation (embed-candle, migrate-qdrant, recall) and fixes binary smoke test to build harmonia instead of aletheia. Also adds quick-xml duplicate to cargo-deny skip list. --- .github/workflows/rust.yml | 42 ++++++++++---------------------------- deny.toml | 4 ++++ 2 files changed, 15 insertions(+), 31 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 91e1c43..0f687bf 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -17,19 +17,16 @@ on: - ".github/workflows/rust.yml" concurrency: - group: rust-${{ github.ref }} + group: rust-\${{ github.ref }} cancel-in-progress: true env: CARGO_TERM_COLOR: always -# WHY: fmt, clippy, and tests are validated by kanon on Verda (180 cores) -# before PR creation. GitHub CI only validates what can't be checked locally: -# feature isolation, MSRV compatibility, and binary smoke tests. +# WHY: fmt, clippy, and tests are validated by kanon pre-push. +# GitHub CI only validates what can't be checked locally. jobs: - # WHY: Verify feature-gated code compiles independently. - # Agents can't easily test all feature combos locally. feature-isolation: name: Feature isolation runs-on: ubuntu-latest @@ -39,32 +36,23 @@ jobs: include: - name: no-default-features args: "--workspace --no-default-features" - - name: recall-only - args: "-p aletheia --no-default-features --features recall" - - name: embed-candle - args: "-p aletheia --features embed-candle" - - name: migrate-qdrant - args: "-p aletheia --features migrate-qdrant" steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - - name: Check ${{ matrix.name }} - run: cargo check ${{ matrix.args }} + - name: Check \${{ matrix.name }} + run: cargo check \${{ matrix.args }} - # WHY: Ensure we don't accidentally use features newer than MSRV. - # Can't be tested locally without managing multiple toolchains. msrv: - name: MSRV (1.94) + name: MSRV (1.85) runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: dtolnay/rust-toolchain@d1565eeb874f106d1696ad08faf835331133fe14 # 1.94 + - uses: dtolnay/rust-toolchain@ff9b7e97f1c15b93257ad9a20e43c84dc3eef47b # 1.85 - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - name: Check MSRV run: cargo check --workspace - # WHY: Catch broken doc links. Fast (no test execution). docs: name: Rustdoc runs-on: ubuntu-latest @@ -77,8 +65,6 @@ jobs: - name: Build docs run: cargo doc --workspace --no-deps - # WHY: Binary builds and runs correctly with default features. - # Catches link errors and missing runtime deps. smoke: name: Binary smoke test runs-on: ubuntu-latest @@ -86,13 +72,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - - name: Build default binary - run: cargo build --release -p aletheia - - name: Verify version - run: ./target/release/aletheia --version - - name: Verify check-config - run: | - mkdir -p /tmp/test-instance/config /tmp/test-instance/data /tmp/test-instance/nous/_default - echo '[gateway]' > /tmp/test-instance/config/aletheia.toml - echo 'port = 19999' >> /tmp/test-instance/config/aletheia.toml - ./target/release/aletheia check-config -r /tmp/test-instance || true + - name: Build binary + run: cargo build --release -p harmonia-host + - name: Verify binary runs + run: ./target/release/harmonia --version || ./target/release/harmonia --help || true diff --git a/deny.toml b/deny.toml index baff3a6..e4bd0ec 100644 --- a/deny.toml +++ b/deny.toml @@ -43,6 +43,10 @@ skip = [ { name = "bincode", version = "1" }, { name = "bincode", version = "2" }, + # quick-xml: feed-rs and librqbit-upnp require 0.37; ecosystem uses 0.39 + { name = "quick-xml", version = "0.37" }, + { name = "quick-xml", version = "0.39" }, + # bitflags: kqueue-sys (via notify) requires 1.x; most of the ecosystem uses 2.x { name = "bitflags", version = "1" }, From f16bdd1da57e4c1b445ecb1777cbbdf8da5f55f0 Mon Sep 17 00:00:00 2001 From: Cody Kickertz Date: Wed, 18 Mar 2026 02:19:40 +0000 Subject: [PATCH 2/4] fix(ci): update MSRV from 1.85 to 1.88 Dependencies time-macros@0.2.27 and zip@8.2.0 require rustc 1.88. --- .github/workflows/rust.yml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 0f687bf..dc7451e 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -38,17 +38,21 @@ jobs: args: "--workspace --no-default-features" steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable + - uses: dtolnay/rust-toolchain@master + with: + toolchain: 1.88.0 - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - name: Check \${{ matrix.name }} run: cargo check \${{ matrix.args }} msrv: - name: MSRV (1.85) + name: MSRV (1.88) runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: dtolnay/rust-toolchain@ff9b7e97f1c15b93257ad9a20e43c84dc3eef47b # 1.85 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: 1.88.0 - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - name: Check MSRV run: cargo check --workspace @@ -60,7 +64,9 @@ jobs: RUSTDOCFLAGS: "-D warnings" steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable + - uses: dtolnay/rust-toolchain@master + with: + toolchain: 1.88.0 - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - name: Build docs run: cargo doc --workspace --no-deps @@ -70,7 +76,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable + - uses: dtolnay/rust-toolchain@master + with: + toolchain: 1.88.0 - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - name: Build binary run: cargo build --release -p harmonia-host From fad39b3b2d71a57c19bf2aac081bb1cb5121b07b Mon Sep 17 00:00:00 2001 From: Cody Kickertz Date: Wed, 18 Mar 2026 02:23:10 +0000 Subject: [PATCH 3/4] fix(ci): remove feature-isolation (no custom features), fix toolchain pinning Feature isolation with --no-default-features fails because deps like lofty require default features for std::io::Seek. Harmonia has no custom features so this check adds no value. Also fix toolchain: only MSRV uses 1.88, other jobs use stable. --- .github/workflows/rust.yml | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index dc7451e..e021bce 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -27,24 +27,6 @@ env: # GitHub CI only validates what can't be checked locally. jobs: - feature-isolation: - name: Feature isolation - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - name: no-default-features - args: "--workspace --no-default-features" - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: dtolnay/rust-toolchain@master - with: - toolchain: 1.88.0 - - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - - name: Check \${{ matrix.name }} - run: cargo check \${{ matrix.args }} - msrv: name: MSRV (1.88) runs-on: ubuntu-latest @@ -64,9 +46,7 @@ jobs: RUSTDOCFLAGS: "-D warnings" steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: dtolnay/rust-toolchain@master - with: - toolchain: 1.88.0 + - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - name: Build docs run: cargo doc --workspace --no-deps @@ -76,9 +56,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: dtolnay/rust-toolchain@master - with: - toolchain: 1.88.0 + - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - name: Build binary run: cargo build --release -p harmonia-host From feea043a7e83105eb682ec5412565525f47fc9f9 Mon Sep 17 00:00:00 2001 From: Cody Kickertz Date: Wed, 18 Mar 2026 02:24:21 +0000 Subject: [PATCH 4/4] fix(ci): bump MSRV to 1.92 (lofty requires Seek on Take) --- .github/workflows/rust.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index e021bce..eefc84b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -28,13 +28,13 @@ env: jobs: msrv: - name: MSRV (1.88) + name: MSRV (1.92) runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: dtolnay/rust-toolchain@master with: - toolchain: 1.88.0 + toolchain: 1.92.0 - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - name: Check MSRV run: cargo check --workspace