development to main #36

Merged
mik-tf merged 20 commits from development into main 2026-02-09 22:12:28 +00:00
Owner
  • work done before dioxus porting
- work done before dioxus porting
init
Some checks failed
Test / test (push) Failing after 20s
8e0da2b6af
init
Some checks failed
Test / test (push) Failing after 20s
1e6861d585
feat: move By Topic filter above By Book in search sidebar
Some checks failed
Test / test (push) Failing after 21s
6e1e56aec7
Reorder sidebar filters so topic filters appear first, making them
immediately visible without scrolling past the book list.

Closes #27
- book.html: replace technical 'herotools ai' message with user-friendly
  'No content available yet' warning (#28)
- Rhai demos: remove hardcoded ~/.ssh/id_rsa reference, suggest token-first
  auth with ed25519 as example (#31)

Closes #28
Closes #31
chore: remove legacy sync-books Makefile target
Some checks failed
Test / test (push) Has been cancelled
d9308e3eec
The auto_export pipeline in hero_books handles git cloning and book
discovery internally. The sync-books target was a manual workaround
that is no longer needed.

Closes #32
fix: sync buildenv.sh version to 0.1.4 (matches Cargo.toml)
Some checks failed
Test / test (push) Failing after 17s
0b97dc1db1
feat: show AI Summary by default on search results
Some checks failed
Test / test (push) Failing after 15s
be45f88ee5
Toggle is now checked by default and summary auto-loads on page load.
Users can still toggle it off. Applies to both library and global
search pages.

Closes #25
feat: add optional HTTP Basic Auth password protection
Some checks failed
Test / test (push) Failing after 17s
8957f29982
When HEROBOOKS_PASSWORD env var (or --password flag) is set, all
requests require Basic Auth with username 'hero' and the configured
password. When unset, the site remains publicly accessible.

- ServerConfig gains password field
- Auth check in handle_request() before routing
- CLI --password flag with HEROBOOKS_PASSWORD env fallback
- Deploy: app.env.example and setup.sh updated

Closes #30
feat: rewrite internal markdown links in page content
Some checks failed
Test / test (push) Failing after 15s
f0d2efa206
Add rewrite_content_links() that converts relative .md links in
rendered HTML to hero_books page URLs. Handles:
- ./page.md and page.md → /book/{book}/page/{name}
- ../dir/page.md → /book/{book}/page/{name}
- Preserves #anchor fragments
- Skips external URLs, absolute paths, and already-rewritten links

Closes #29
- Expose admin.logs.get and admin.logs.clear via main OpenRPC endpoint
- Add LogEntry schema to OpenRPC discovery spec
- Add API Docs tab (loads OpenRPC schema, groups methods) and MCP tab to admin UI
- Fix namespace preservation in re_export_books_with_metadata() so libraries stay separate

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add generate_page_pdf() for single-page PDF generation
- Move PDF cache from /tmp/ to books_dir/.pdf_cache/ (survives reboots)
- Add content-hash-based permanent URLs: /pdf/{hash}
- Store markdown snapshots in KVS for permanent regeneration
- Add page PDF routes: /book/{name}/page/{page}/pdf[/view]
- Add 'Book PDF' and 'Page PDF' buttons to page view template
- Fix Chrome sandbox for root (TFGrid VMs)
- Add Chrome install to deploy/single-vm setup script
fix: ensure book hero text is white on colored backgrounds
Some checks failed
Test / test (push) Failing after 16s
3af54d1b85
Bootstrap's default h1/body colors were overriding the hero section's
light text color. Added !important to all text elements in .book-hero
to ensure they stay white/light on the gradient backgrounds in both
light and dark mode.
fix: move PDF and nav buttons to toolbar above page content
Some checks failed
Test / test (push) Failing after 21s
9ad5ea7747
Buttons were incorrectly nested inside card-header, causing them to
float awkwardly over the content. Moved to a separate toolbar row
above the content card: title on left, PDF buttons + Prev/Next on right.
- Nav bar: replace flat Import link with Tools dropdown (Import Collection + Markdown to PDF)
- Book page: single-column table layout with 4 actions per page (Open, View PDF, Download, Versions)
- Library page: single-column table layout with 4 actions per book (Open, View PDF, Download, Versions)
- Version tracking: append_pdf_version() stores {hash, date} entries in KVS, API at /api/pdf-versions/{book}/{page}
- Versions dropdown: lazy-loads from API, shows hash permalinks with copy button, always fetches fresh data
- Markdown-to-PDF converter: /pdf/convert page fetches external markdown URL, generates PDF with permanent /pdf/{hash} link
- Ensure herobooks_pdf KVS namespace is created at startup and in each KVS function (self-healing)
- Version tracking runs on every PDF serve (not just generation) to bootstrap existing cached PDFs
feat: add /docs documentation page
Some checks failed
Test / test (push) Failing after 16s
6333692a42
- New top-level Docs nav item with question-circle icon
- Single-page docs template with scrollspy sidebar and 9 sections:
  Overview, Libraries & Books, PDF System, Permanent Links, Version History,
  Import Collections, Markdown to PDF, Search, API Reference
- Minimal Rust: DocsTemplate struct, serve_docs handler, /docs route
docs: rename Search section to Ask the Librarian
Some checks failed
Test / test (push) Failing after 24s
d31e483c29
chore: add .pdf_cache to gitignore
Some checks failed
Test / test (push) Failing after 16s
4f0da346d9
fix: resolve all clippy warnings for CI
Some checks failed
Test / test (push) Failing after 17s
e68af848e0
- Remove unused shared_runtime function
- Simplify map_or to is_some_and
- Remove unnecessary & on already-referenced config
- Collapse nested if statements (5 instances)
- Use replace with char array instead of consecutive replace calls
fix: restore herolib-os to git remote dependency for CI
All checks were successful
Test / test (push) Successful in 2m39s
Test / test (pull_request) Successful in 2m35s
5a4705f2f9
The path dependency (../hero_lib/packages/os) was causing cargo check to fail
in CI since the hero_lib repo is not available in standalone checkout.
The git clone URL suffix issue that originally motivated the path workaround
has been resolved upstream.
mik-tf merged commit 4b4d474e7a into main 2026-02-09 22:12:28 +00:00
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!36
No description provided.