Changelog¶
docbank is pre-1.0; interfaces and storage migrations may still evolve.
Unreleased¶
- Search covers live document names and verified UTF-8 plain text, Markdown,
JSON, and JSONL content. Name matches keep their established ranking and
precede content-only matches, while
docbank jobsexposes the bounded asynchronous extraction worker. - Daemon-owned watched inboxes import stable regular files without touching
their sources, preserve portable source identity, and append later changes
as versions of the same Docbank node; their lifecycle and failures are
visible through
docbank jobs. - The store extends audited recording to filesystem ingest, content reversion, in-scope moves and renames, reversible trash and restore, and tag creation, assignment, rename, and deletion; backup restore and JSONL import independently replay and validate that history.
- Enrollment of a vault's first audit scope is available through
docbank audit enableanddocbank audit status, with a preview-first, token-acknowledged workflow; additional scopes remain unavailable. - Bounded per-node audit history exposes canonical path, content, tag, and
provenance changes, while
docbank audit verifyindependently replays the authority, checks protected bytes, and proves current chains extend a separately recorded evidence report. - Legacy browsing, trash, and virtual-tree mutation commands expose typed JSON, and CLI processes use stable exit codes for usage, missing objects, stale state, busy resources, and integrity findings.
v0.5.0 (2026-07-17)¶
- The embedded Go API is exposed directly from the module root.
- Verification classifies unavailable embedded content separately, and
embedded content opens report missing or physically size-mismatched bytes
as
ErrContentUnavailablewithout conflating metadata lookup failures. - The store records audited content replacements and inherited audited node creation.
v0.4.0 (2026-07-17)¶
- Embedded Go applications can page immutable content history with
Versionsand open any historical version through the verified read contract withOpenVersionContent. - The initial audit enrollment authority persists for durable integrity verification, with portable JSON representations of audit authority data.
- Provenance is stabilized as audit authority with canonical record shapes and collection ordering.
v0.3.0 (2026-07-16)¶
- Edit documents interactively with verified, versioned content replacement.
- List, replace, revert, and explicitly prune immutable content versions.
- Add, remove, list, and use stable user-facing tags.
- Look up documents by authoritative content hash.
- Embed independently rooted vaults in Go applications with selectable SQLite drivers, packing, and bounded child traversal.
- Preflight large imports without modifying content and stream ingest progress to the terminal.
- View supervised daemon background jobs and their status.
- Stable vault and document identities are preserved across ingest and metadata operations, and daemon reliability is strengthened by supervising background work.
- Explicitly named cloud-storage roots are honored during ingest.
v0.2.1 (2026-07-13)¶
- Create, list, verify, and restore incremental backups with portable JSONL metadata.
- Inspect packed storage, pack loose objects, reclaim sparse packs, and recover safely from interrupted pack retirement.
- Upload remote content with digest checks and verify content identity over HTTP.
- Run the complete Docbank CLI and daemon lifecycle natively on Windows, with Windows CI covering the complete CLI and internal suite on amd64 and arm64.
- Stream verified content with separate limits for loose and packed objects to keep memory and disk usage predictable.
- Install checksum-verified binaries for Linux, macOS, and Windows on amd64
and arm64; the shell and PowerShell installers verify archives against
SHA256SUMSand reject missing, ambiguous, or invalid checksums.
v0.2.0 (2026-07-13)¶
- Create incremental backups with authoritative JSONL metadata and daemon-owned snapshots; verify repositories and restore through a confined, exclusive recovery workflow.
- Inspect packed storage, pack loose objects, and reclaim sparse packs with explicit maintenance commands.
- Upload remote content with digest checking and retrieve content through verifiable streaming reads.
- Stream content and backups within bounded resource limits, with separate limits for loose and packed objects.
- Run the complete Docbank lifecycle natively on Windows: daemon discovery and detached startup, owner-private vaults, no-follow ingest, overlapping vault/restore exclusion, backup, restore, and self-update use native Windows primitives.
- Install using prebuilt artifacts and installers for Linux, macOS, and Windows on amd64 and arm64.
- Preserve recoverability when obsolete pack files cannot be retired immediately.
v0.1.0 (2026-07-09)¶
Release hardening:
trash emptyis now a dry run unless--runexplicitly authorizes permanent metadata deletion, matchinggc's mutation boundary; daemon protocol negotiation prevents an older same-version daemon from interpreting that dry run as the legacy destructive requestsearch --limitcontrols the bounded result set and both the API and CLI report when more matches exist- Updated the shared
go.kenn.io/kitdependency to v0.4.0
Phase 2a (Infrastructure) complete:
docbank daemon(run/start/status/restart/stop) ongo.kenn.io/kitlifecycle primitives: discovery, auto-start, idle shutdown, exclusive vault lock for the daemon's lifetime- Huma v2 HTTP API under
/api/v1: stat, list, content, search, create-directory, ingest, move, trash/restore, trash-empty, gc, verify - Every CLI data command rewritten as an HTTP client of the daemon, with auto-start on first use; no command opens the vault directly anymore
config.toml([server],[web]), with bind/key validation at daemon startupdocbank update: self-update from GitHub releases, coordinating daemon stop/replace/restartdocbank openapi: offline OpenAPI document- Tag-driven release workflow: Linux (amd64/arm64) and macOS (arm64) archives with SHA256 checksums
Phase 1 (Core) complete:
- Virtual tree store (SQLite, FTS5) with schema-enforced invariants
- Content-addressed blob store with durable write discipline
- Idempotent recursive import with collision suffixing and provenance
- Full core CLI:
add,ls,tree,cat,mv,rm,restore,search,trash list|empty,gc,verify - Trash → empty → GC deletion pipeline with
verifyintegrity checking - Inter-process vault locking (shared for commands, exclusive for
gc)