Files
tai/CHANGELOG.md
zphinx 3be14f8f6f
All checks were successful
CI / test (push) Successful in 27s
commit all of this
2026-05-14 20:00:38 +02:00

5.0 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.


[Unreleased]

Added

  • Unified persistent run history in SQLite:
    • new src/tai/history_store.py for host-scoped JSON run records
    • --history-db and --history/--no-history options on tai run
    • prior host history auto-loaded for analysis/follow-up prompts
    • analyzed runs auto-indexed into history DB
  • External database targets for history and runbook options:
    • --history-db now supports SQLite path/URL and PostgreSQL DSN
    • --runbooks/--store now support remote ChromaDB URLs
  • External DB authentication options:
    • history DB: --history-db-user, --history-db-password, --env-file
    • runbook store: --runbooks-user/--runbooks-password and --store-user/--store-password
    • dotenv credential keys: TAI_HISTORY_DB_USER, TAI_HISTORY_DB_PASSWORD, TAI_RUNBOOK_STORE_USER, TAI_RUNBOOK_STORE_PASSWORD
  • Remote runbook/playbook source ingestion:
    • tai runbooks sync --path now supports ssh:// directories
    • tai runbooks sync --path now supports HTTP/HTTPS webroots with Markdown links
    • tai runbooks add now supports ssh:// and HTTP/HTTPS Markdown files
  • --output-file option on tai run to persist final AI analysis output as Markdown
  • --output-format markdown|json for --output-file exports
  • JSON export schema now includes host-specific run metadata (generated_at, collection stats, token usage)
  • New SQLite run history database (--history-db) now stores per-run JSON payloads and auto-loads prior host history for analysis context
  • Planner enhancements for broader service detection:
    • generic service candidate extraction from free text
    • package presence probes in plans (rpm -q and dpkg-query -W)
  • SSH read-only allowlist expanded to permit package presence commands (rpm, dpkg-query)
  • History DB tests in tests/test_history_store.py
  • CLI test coverage for analysis output file writing (tests/test_cli.py)
  • CLI test coverage for JSON export and ANSI stripping in written output (tests/test_cli.py)

Changed

  • History reads/writes are now unified on SQLite DB in CLI workflows (history, interactive /history, analysis context injection).
  • Documentation alignment updates in README and ROADMAP to reflect implemented history DB and package-presence capabilities.
  • Package version metadata alignment: src/tai/__init__.py now matches project version 0.4.0.

[0.4.0] - 2026-05-06

Added

  • runbooks/ corpus with service troubleshooting guides: ssh, nginx, postgres, disk, kernel, docker, sssd, xorg, wayland, x2go, selinux, apparmor
  • Runbook knowledge store module src/tai/runbook_store.py (persistent ChromaDB-backed index and query)
  • Chroma telemetry no-op client src/tai/chroma_telemetry.py to suppress noisy local telemetry errors
  • tai runbooks command group with:
    • sync for indexing all Markdown runbooks
    • list for listing indexed metadata
    • add for indexing a single runbook file
  • --runbooks option on tai run to enable Tier 2 runbook retrieval
  • Initial analysis RAG path using retrieved diagnostic chunks (build_analysis_message_with_chunks)
  • Follow-up RAG path updates with tighter top_k and runbook context injection
  • AI runtime controls:
    • --ai-timeout-seconds
    • --ai-max-tokens
  • Non-streaming AI completion path for improved local backend reliability
  • Service/subsystem presence probes in collection plans:
    • unit-file checks
    • expected binary path checks
    • status/journal/config probes for recognized services including sssd
  • Prompt instruction for "component absent or not installed" interpretation when presence signals are missing
  • Runbook store unit tests in tests/test_runbook_store.py
  • CLI tests updated for tai run subcommand and non-streaming completion mocks
  • README refreshed with current CLI, architecture layout, RAG/runbook workflow, and usage examples
  • docs/ARCHITECTURE.md with end-to-end flow, module responsibilities, safety boundaries, and fallback behavior

Removed

  • .github/workflows/ci.yml — GitHub Actions workflow removed; CI is now Gitea-only

Decided

  • Implementation language: Python
  • Distribution strategy: single distributable binary via Nuitka (PyInstaller as fallback)
  • SSH authentication: keypair only (ed25519/RSA); auto-accept new hosts; hard reject on host key change with MITM warning
  • SSH bastion support: --jump-host flag using SSH native ProxyJump
  • SSH config behavior: use ~/.ssh/config by default; allow override via --ignore-ssh-config
  • Interface: interactive REPL for v0.1; textual-based TUI (split-pane) for v0.2+
  • RAG Tier 1 strategy: semantic diagnostic chunk retrieval with local embeddings
  • RAG Tier 2 strategy: Markdown runbooks persisted in embedded ChromaDB