Releases: forgegod/retrosage
Releases · forgegod/retrosage
Release list
Retrosage 0.4.3
Retrosage 0.4.3
Release date: 2026-07-19
Retrosage 0.4.3 is the first production PyPI release of the portable CLI for
Hindsight memory banks. It promotes the TestPyPI-validated package to PyPI and
establishes a tag-driven release pipeline that publishes the package, creates a
GitHub Release, and attaches the exact wheel and source distribution built by
CI.
Highlights
- Install a zero-runtime-dependency
retrosagecommand from PyPI on Python
3.10 through 3.14. - Manage the full bank lifecycle, configuration, disposition, consolidation,
templates, documents, memories, asynchronous operations, backups, and
restores from one CLI. - Import supported office documents, PDFs, Markdown, text, and HTML, with
explicit extraction-mode controls and opt-in local OCR fallback. - Keep local document directories synchronized through retryable manifests or
watch them with a portable polling loop. - Use offline, credential-free help, version, and dry-run paths before making
authenticated changes.
Bank and memory operations
- Create, list, inspect, update, and delete memory banks.
- Inspect bank statistics and configuration, reset or update configuration,
tune disposition values, consolidate memories, and export or import bank
templates. - Retain text, UTF-8 files, or standard input; recall and reflect with budget,
tag, and fact-type controls; inspect memory history; and clear observations
or bank-wide memory classes behind explicit confirmation flags. - List, inspect, cancel, and retry asynchronous backend operations with bounded
polling and normalized terminal-state handling.
Document workflows
- Import
.pdf,.doc,.docx,.ppt,.pptx,.xls,.xlsx,.md,
.txt, and.htmlfiles individually or by directory. - Select curated or raw extraction modes and restore the bank's previous mode
after the import. - Use
ocrmypdfonly when--ocr-fallbackis explicitly enabled; the default
installation remains standard-library-only. - Synchronize directories with a versioned local manifest, content hashes,
unstable-file deferral, removal tracking, and truthful dry runs. - Watch directories without platform-specific filesystem dependencies.
- List and filter remote documents, inspect metadata, replace tags, and require
confirmation before deletion.
Backup, restore, and diagnostics
- Back up one or all banks into portable archives, inspect archives locally,
and restore banks under the same or mapped identifiers. - Query backend health and API version separately from the offline package
version command. - Keep API keys in named environment variables; keys are never printed or
written into archives.
Packaging and release safety
- Publish through PyPI Trusted Publishing with short-lived GitHub OIDC
credentials; no PyPI API token is stored in the repository or GitHub. - Reject release tags that do not exactly match the runtime/package version.
- Run the full test suite, build wheel and source distributions, and validate
both with Twine before publishing. - Create the GitHub Release only after PyPI accepts the distributions, using
this versioned document as the release body and attaching the same CI-built
artifacts.
Install or upgrade
Python 3.10 or newer is required.
uv tool install retrosage
# Existing uv tool installation:
uv tool upgrade retrosage
retrosage versionWith pip:
python3 -m venv ~/.venvs/retrosage
~/.venvs/retrosage/bin/python -m pip install --upgrade retrosage
~/.venvs/retrosage/bin/retrosage versionInstall the optional local OCR integration only when needed:
uv tool install 'retrosage[ocr]'Users of the TestPyPI build should reinstall from the default production index
so package upgrades no longer depend on TestPyPI.
Compatibility and known limitations
- Network commands require
HINDSIGHT_API_KEYor the environment variable
selected with--api-key. - Local OCR requires the optional
ocrmypdfPython package or executable and
its system-level dependencies. - Template and embedder IDs are not exposed because they are absent from the
pinned Hindsight API models. - Individual memory deletion is intentionally unavailable; the backend
contract supports guarded clear operations instead. retrosage listremains a temporary alias forretrosage banks listand is
scheduled for removal in a future minor release.
Verify the installed release
retrosage version
retrosage --help
TMPDIR=$(mktemp -d)
printf '# release check\n' > "$TMPDIR/note.md"
retrosage docs import --bank demo --directory "$TMPDIR" --dry-run
rm -rf "$TMPDIR"Package: https://pypi.org/project/retrosage/
Source and issues: https://github.com/forgegod/retrosage