Skip to content

Releases: forgegod/retrosage

Release list

Retrosage 0.4.3

Choose a tag to compare

@github-actions github-actions released this 19 Jul 18:32

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 retrosage command 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 .html files individually or by directory.
  • Select curated or raw extraction modes and restore the bank's previous mode
    after the import.
  • Use ocrmypdf only when --ocr-fallback is 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 version

With pip:

python3 -m venv ~/.venvs/retrosage
~/.venvs/retrosage/bin/python -m pip install --upgrade retrosage
~/.venvs/retrosage/bin/retrosage version

Install 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_KEY or the environment variable
    selected with --api-key.
  • Local OCR requires the optional ocrmypdf Python 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 list remains a temporary alias for retrosage banks list and 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