86e8049f1b
feat(auth): session and token DB helpers
2026-06-26 11:32:32 +02:00
f482707b75
feat(auth): user and role DB helpers (create_owner, compute_role_bits)
2026-06-26 11:31:20 +02:00
696a5e1ac7
feat(auth): add initialize_auth_schema, open_auth_db, and auth record types
2026-06-26 11:30:02 +02:00
22b0a55730
feat(fonts): hash_bytes, get_blob_by_sha256, font_extractor module
...
- fix(hash): hash raw bytes instead of lossy UTF-8; add hash_bytes
- feat(database): add get_blob_by_sha256 lookup
- feat(font_extractor): extract embedded font data-URIs from archived HTML
2026-06-25 16:02:57 +02:00
db953de67a
feat(core): hierarchical tag API
...
- Tag/TagNode types, create_tag, list_tag_tree, assign_entry_tag,
remove_entry_tag, entries_for_tag
- Tag-filtered search returns child entries (no root restriction)
- parent_entry_uid added to EntrySummary
- 8 new tests
2026-06-22 14:48:46 +02:00
b56c969624
feat: add db and multi-archive web UI foundation ( #8 )
...
* Add SQLite metadata database support
* Implement archive metadata database
* chore: let's guess cargoHash because there's something wrong with nixpkgs!
* Gate test-only database helpers behind cfg(test)
* Fix archive database row identity
* Use serde for archive metadata JSON
* Finalize archive runs at command level
* Handle archive command errors without panics
* Cover tweet entry metadata recording
* Document static regex invariants
* docs: add web UI design spec
* docs: add web UI implementation plan
* chore: move cli into workspace crate
* chore: track workspace crates directory
* refactor: extract archive core crate
* refactor: add core archive opening APIs
* refactor: rename taxonomy model to tags
* feat: add archive query APIs
* feat: add web server registry
* feat: expose archive server APIs
* feat: add archive table web UI
* fix: complete web UI smoke path
* docs: add architecture mental model
* docs: remove private superpowers plans
* nix: split cli and server packages
* chore: remove PLAN.md
2026-06-14 00:27:16 +02:00