feat(service_books): re-add --from-ci install path (linux-amd64, v0.1.6-rc1) #200

Merged
mik-tf merged 1 commit from development_mik_from_ci_books into development 2026-05-04 14:11:51 +00:00
Owner

Summary

Re-adds --from-ci install path to service_books.nu, undoing the session-54 revert at 5dd6ad5. The producer side that was missing then has shipped: hero_books v0.1.6-rc1 publishes 5 release assets with the linux-amd64 suffix.

Mirrors the pattern landed in #196 (service_aibroker) and #197 (service_osis) — early branch in install, returns before the source-build path runs.

Why the early return matters here

service_books install (source path) does two things service_aibroker doesn't:

  1. Explicit cargo build --workspace because the workspace member binaries (_server, _ui, _admin) aren't reachable from the root crate.
  2. A docusaurus bun install to bootstrap the per-book site template under crates/hero_books_docusaurus/src/template_files.

Both depend on the source tree being on disk. With --from-ci neither is reachable nor needed for binaries-only deploys, so the early return after svc_install_from_ci short-circuits both. Operators who actually need hero_docs to generate per-book sites can run a one-shot service_books install (source path) later; that flow is unchanged.

Smoke test on heroci

=== service_books install --from-ci --version v0.1.6-rc1 --reset ===
→ hero_books: fetching release v0.1.6-rc1 from lhumina_code/hero_books...
  ⤓ hero_books-linux-amd64           ✓ /root/hero/bin/hero_books
  ⤓ hero_books_server-linux-amd64    ✓ /root/hero/bin/hero_books_server
  ⤓ hero_books_ui-linux-amd64        ✓ /root/hero/bin/hero_books_ui
  ⤓ hero_books_admin-linux-amd64     ✓ /root/hero/bin/hero_books_admin
  ⤓ hero_docs-linux-amd64            ✓ /root/hero/bin/hero_docs
  ✓ hero_books installed from CI artifacts (release v0.1.6-rc1)

All 5 binaries verified ELF 64-bit LSB pie executable, statically linked. Each reports 0.1.5 from --version (inner crate version; the v0.1.6-rc1 tag is the release wrapper — same shape seen on prior aibroker/osis landings).

Behavioural paths verified end-to-end:

  • pinned --version v0.1.6-rc1 download
  • skip-if-present no-op when binaries already in place
  • --reset forces refetch
  • --version latest resolves correctly to v0.1.6-rc1

Refs

  • hero_demo#54 — CI-built static-musl binaries + --from-ci install path
  • hero_books#118 — Phase 2 audit issue (resolved upstream by v0.1.6-rc1)

Test plan

  • Module parses (nu -c 'use service_books.nu; service_books install --help')
  • Smoke install on heroci: service_books install --from-ci --version v0.1.6-rc1 --reset
  • All 5 binaries land in ~/hero/bin/, static-pie ELF, version-correct
  • --version latest resolves the right tag
  • Skip-if-present + --reset behaviours

Signed-off-by: mik-tf

## Summary Re-adds `--from-ci` install path to `service_books.nu`, undoing the session-54 revert at [`5dd6ad5`](https://forge.ourworld.tf/lhumina_code/hero_skills/commit/5dd6ad5). The producer side that was missing then has shipped: [`hero_books v0.1.6-rc1`](https://forge.ourworld.tf/lhumina_code/hero_books/releases/tag/v0.1.6-rc1) publishes 5 release assets with the `linux-amd64` suffix. Mirrors the pattern landed in [#196](https://forge.ourworld.tf/lhumina_code/hero_skills/pulls/196) (`service_aibroker`) and [#197](https://forge.ourworld.tf/lhumina_code/hero_skills/pulls/197) (`service_osis`) — early branch in `install`, returns before the source-build path runs. ## Why the early return matters here `service_books install` (source path) does two things `service_aibroker` doesn't: 1. Explicit `cargo build --workspace` because the workspace member binaries (`_server`, `_ui`, `_admin`) aren't reachable from the root crate. 2. A docusaurus `bun install` to bootstrap the per-book site template under `crates/hero_books_docusaurus/src/template_files`. Both depend on the source tree being on disk. With `--from-ci` neither is reachable nor needed for binaries-only deploys, so the early `return` after `svc_install_from_ci` short-circuits both. Operators who actually need `hero_docs` to generate per-book sites can run a one-shot `service_books install` (source path) later; that flow is unchanged. ## Smoke test on heroci ```text === service_books install --from-ci --version v0.1.6-rc1 --reset === → hero_books: fetching release v0.1.6-rc1 from lhumina_code/hero_books... ⤓ hero_books-linux-amd64 ✓ /root/hero/bin/hero_books ⤓ hero_books_server-linux-amd64 ✓ /root/hero/bin/hero_books_server ⤓ hero_books_ui-linux-amd64 ✓ /root/hero/bin/hero_books_ui ⤓ hero_books_admin-linux-amd64 ✓ /root/hero/bin/hero_books_admin ⤓ hero_docs-linux-amd64 ✓ /root/hero/bin/hero_docs ✓ hero_books installed from CI artifacts (release v0.1.6-rc1) ``` All 5 binaries verified `ELF 64-bit LSB pie executable, statically linked`. Each reports `0.1.5` from `--version` (inner crate version; the `v0.1.6-rc1` tag is the release wrapper — same shape seen on prior aibroker/osis landings). Behavioural paths verified end-to-end: - pinned `--version v0.1.6-rc1` download - `skip-if-present` no-op when binaries already in place - `--reset` forces refetch - `--version latest` resolves correctly to `v0.1.6-rc1` ## Refs - [hero_demo#54](https://forge.ourworld.tf/lhumina_code/hero_demo/issues/54) — CI-built static-musl binaries + `--from-ci` install path - [hero_books#118](https://forge.ourworld.tf/lhumina_code/hero_books/issues/118) — Phase 2 audit issue (resolved upstream by v0.1.6-rc1) ## Test plan - [x] Module parses (`nu -c 'use service_books.nu; service_books install --help'`) - [x] Smoke install on heroci: `service_books install --from-ci --version v0.1.6-rc1 --reset` - [x] All 5 binaries land in `~/hero/bin/`, static-pie ELF, version-correct - [x] `--version latest` resolves the right tag - [x] Skip-if-present + `--reset` behaviours Signed-off-by: mik-tf
feat(service_books): re-add --from-ci install path
All checks were successful
Build and Publish Skills / build-and-publish (pull_request) Successful in 5s
35b084556c
hero_books v0.1.6-rc1 (2026-05-04) ships 5 binaries as Forgejo Release
assets with linux-amd64 suffix:
- hero_books, hero_books_admin, hero_books_server, hero_books_ui, hero_docs

Mirrors the pattern in service_aibroker.nu / service_osis.nu (PRs #196 /
#197). The early-return short-circuits both the cargo --workspace build
and the docusaurus bun install — those only matter when the source tree
is on disk.

Undoes the session-54 revert at 5dd6ad5; the producer side that was
missing then has since shipped (https://forge.ourworld.tf/lhumina_code/hero_books/releases/tag/v0.1.6-rc1).

Refs: lhumina_code/hero_demo#54

Signed-off-by: mik-tf
mik-tf merged commit 2f38fc89d0 into development 2026-05-04 14:11:51 +00:00
mik-tf deleted branch development_mik_from_ci_books 2026-05-04 14:11:51 +00:00
Sign in to join this conversation.
No reviewers
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_skills!200
No description provided.