fix: align build system with skills and add three-tier local CI #60

Closed
mik-tf wants to merge 0 commits from development_build_ci_consolidation into development
Owner

Align build system with makefile_helper and forge_ci skills, add three-tier local CI, and fix pre-existing clippy/fmt issues.

Changes

  • test-all.sh calls make targets instead of raw cargo commands
  • Add separate fmt-check and lint Makefile targets
  • CI test.yaml simplified to make test-all (test job: SKIP_SMOKE=1, integration job: full suite)
  • Add ci-local, ci-docker, ci-patch-deps.sh scripts
  • Fix clippy: collapsible_if, sort_by_key, duplicated cfg(test) attrs
  • cargo fmt on pre-existing formatting issues
  • buildenv.sh version 0.1.4 -> 0.1.5
  • Admin settings API (admin.settings.get/set RPC for AI key config)

Testing

  • 120 unit tests pass
  • fmt-check, clippy, check all clean
  • Release build succeeds

Closes #59
Closes #56

Align build system with makefile_helper and forge_ci skills, add three-tier local CI, and fix pre-existing clippy/fmt issues. ## Changes - test-all.sh calls make targets instead of raw cargo commands - Add separate fmt-check and lint Makefile targets - CI test.yaml simplified to `make test-all` (test job: SKIP_SMOKE=1, integration job: full suite) - Add ci-local, ci-docker, ci-patch-deps.sh scripts - Fix clippy: collapsible_if, sort_by_key, duplicated cfg(test) attrs - cargo fmt on pre-existing formatting issues - buildenv.sh version 0.1.4 -> 0.1.5 - Admin settings API (admin.settings.get/set RPC for AI key config) ## Testing - 120 unit tests pass - fmt-check, clippy, check all clean - Release build succeeds Closes #59 Closes #56
feat: add admin.settings.get/set RPC for AI key configuration
Some checks failed
Test / test (pull_request) Failing after 1m44s
Test / integration (pull_request) Has been skipped
a23e321c5e
Adds persistent AI settings store at ~/hero/var/hero_books/settings.toml
with two new admin RPC endpoints:
- admin.settings.get: returns masked key status per provider (Groq, OpenRouter, SambaNova) + embedder URL
- admin.settings.set: updates keys, persists to disk, applies to process env

Settings are loaded and applied to env on startup (before AiClient::from_env),
with env vars as fallback when no saved setting exists.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: update CI deps.txt for hero_rpc_osis migration
Some checks failed
Test / test (pull_request) Failing after 1m49s
Test / integration (pull_request) Has been skipped
0f929f4a76
After the herolib_osis → hero_rpc_osis migration (development),
deps.txt was not updated. CI failed because the patching system
could not resolve hero_rpc_osis without hero_rpc.git listed.

- Add hero_rpc.git with hero_rpc_osis=packages/osis
- Remove stale herolib_osis entry from hero_lib.git line

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: complete herolib_osis → hero_rpc_osis migration in generated code
All checks were successful
Test / test (pull_request) Successful in 3m33s
Test / integration (pull_request) Successful in 8m40s
64d7417bde
The migration commit left 13 herolib_osis references in generated files:
- types_generated.rs: 2 import statements
- osis_server_generated.rs: 11 references (imports, trait impls, types)

Also fix 4 clippy collapsible_if warnings in settings.rs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: align build system with skills, add three-tier CI, fix clippy/fmt
Some checks failed
Test / test (pull_request) Successful in 7m29s
Test / integration (pull_request) Failing after 8m15s
67b7d0e870
Build system alignment (per makefile_helper skill):
- test-all.sh uses make targets (fmt-check, lint, check, test, build)
  instead of raw cargo commands
- Add separate fmt-check and lint targets (was combined in fmt)
- Add ci-local, ci-docker targets with scripts
- CI test.yaml simplified: test job runs SKIP_SMOKE=1 make test-all,
  integration job runs full make test-all
- ci-patch-deps.sh replaces inline deps patching in CI workflow

Three-tier local CI:
- make test-all: quick offline checks (~80% fidelity)
- make ci-local: no workspace config overrides (~95% fidelity)
- make ci-docker: same Docker image as CI (~100% fidelity)

Code fixes:
- Fix clippy: collapsible_if, sort_by_key, duplicated cfg(test) attrs
- Run cargo fmt on all pre-existing formatting issues
- Fix buildenv.sh version mismatch (0.1.4 -> 0.1.5)

Tested: fmt-check, clippy, check, 120 tests, release build — all pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mik-tf changed title from fix: align build system, three-tier CI, clippy/fmt, settings API to WIP: fix: align build system with skills and add three-tier local CI 2026-02-19 01:42:46 +00:00
fix: install Playwright browsers before make test-all in CI
All checks were successful
Test / test (pull_request) Successful in 12m30s
Test / integration (pull_request) Successful in 8m58s
b25708fb52
The integration job installed npm but not Playwright browsers. test-all.sh
detects npx is available and tries to run E2E tests, but the browser binary
is missing. Split into separate steps: install Playwright first, then run
make test-all.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mik-tf changed title from WIP: fix: align build system with skills and add three-tier local CI to fix: align build system with skills and add three-tier local CI 2026-02-19 02:03:53 +00:00
Author
Owner

Superseded by #61 — consolidated to development_mik branch with latest development merged in.

Superseded by #61 — consolidated to `development_mik` branch with latest `development` merged in.
mik-tf closed this pull request 2026-02-19 03:02:06 +00:00
All checks were successful
Test / test (pull_request) Successful in 12m30s
Test / integration (pull_request) Successful in 8m58s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_books!60
No description provided.