peregrine/CHANGELOG.md
pyr0ball cfa9b3a18a
Some checks are pending
CI / test (push) Waiting to run
docs: update changelog for v0.3.0 release
- Add v0.3.0 section: feedback button, BYOK warning, LLM suggest,
  backup/restore, privacy scrub
- Retroactively document v0.2.0 (was in [Unreleased])
- Clear [Unreleased] for future work
2026-03-06 16:04:28 -08:00

4.8 KiB

Changelog

All notable changes to Peregrine are documented here. Format follows Keep a Changelog.


[Unreleased]


[0.3.0] — 2026-03-06

Added

  • Feedback button — in-app issue reporting with screenshot paste support; posts directly to Forgejo as structured issues; available from sidebar on all pages (app/feedback.py, scripts/feedback_api.py, app/components/paste_image.py)
  • BYOK cloud backend detectionscripts/byok_guard.py: pure Python detection engine with full unit test coverage (18 tests); classifies backends as cloud or local based on type, base_url heuristic, and opt-out local: true flag
  • BYOK activation warning — one-time acknowledgment required in Settings when a new cloud LLM backend is enabled; shows data inventory (what leaves your machine, what stays local), provider policy links; ack state persisted to config/user.yaml under byok_acknowledged_backends
  • Sidebar cloud LLM indicator — amber badge on every page when any cloud backend is active; links to Settings; disappears when reverted to local-only config
  • LLM suggest: search terms — three-angle analysis from resume (job titles, skills keywords, and exclude terms to filter irrelevant listings)
  • LLM suggest: resume keywords — skills gap analysis against job descriptions
  • LLM Suggest button in Settings → Search → Skills & Keywords section
  • Backup/restore script (scripts/backup.py) — multi-instance and legacy support
  • PRIVACY.md — short-form privacy notice linked from Settings

Changed

  • Settings save button for LLM Backends now gates on cloud acknowledgment before writing config/llm.yaml

Fixed

  • Settings widget crash on certain rerun paths
  • Docker service controls in Settings → System tab
  • DEFAULT_DB now respects STAGING_DB environment variable (was silently ignoring it)
  • generate() in cover letter refinement now correctly passes max_tokens kwarg

Security / Privacy

  • Full test suite anonymized — fictional "Alex Rivera" replaces all real personal data in test fixtures (tests/test_cover_letter.py, test_imap_sync.py, test_classifier_adapters.py, test_db.py)
  • Complete PII scrub from git history: real name, email address, and phone number removed from all 161 commits across both branches via git filter-repo

[0.2.0] — 2026-02-26

Added

  • Cover letter iterative refinement: "Refine with Feedback" expander in Apply Workspace; generate() accepts previous_result/feedback; task params passed through submit_task
  • Expanded first-run wizard: 7-step onboarding with GPU detection, tier selection, resume upload/parsing, LLM inference test, search profile builder, integration cards
  • Tier system: free / paid / premium feature gates (app/wizard/tiers.py)
  • 13 integration drivers: Notion, Google Sheets, Airtable, Google Drive, Dropbox, OneDrive, MEGA, Nextcloud, Google Calendar, Apple Calendar, Slack, Discord, Home Assistant — with auto-discovery registry
  • Resume parser: PDF (pdfplumber) and DOCX (python-docx) + LLM structuring
  • wizard_generate background task type with iterative refinement (feedback loop)
  • Dismissible setup banners on Home page (13 contextual prompts)
  • Developer tab in Settings: tier override selectbox and wizard reset button
  • Integrations tab in Settings: connect / test / disconnect all 12 non-Notion drivers
  • HuggingFace token moved to Developer tab
  • params column in background_tasks for wizard task payloads
  • wizard_complete, wizard_step, tier, dev_tier_override, dismissed_banners, effective_tier added to UserProfile
  • MkDocs documentation site (Material theme, 20 pages)
  • LICENSE-MIT and LICENSE-BSL, CONTRIBUTING.md, CHANGELOG.md

Changed

  • app.py wizard gate now checks wizard_complete flag in addition to file existence
  • Settings tabs reorganised: Integrations tab added, Developer tab conditionally shown
  • HF token removed from Services tab (now Developer-only)

Removed

  • Dead app/pages/3_Resume_Editor.py (functionality lives in Settings → Resume Profile)

[0.1.0] — 2026-02-01

Added

  • Initial release: JobSpy discovery pipeline, SQLite staging, Streamlit UI
  • Job Review, Apply Workspace, Interviews kanban, Interview Prep, Survey Assistant
  • LLM router with fallback chain (Ollama, vLLM, Claude Code wrapper, Anthropic)
  • Notion sync, email sync with IMAP classifier, company research with SearXNG
  • Background task runner with daemon threads
  • Vision service (moondream2) for survey screenshot analysis
  • Adzuna, The Ladders, and Craigslist custom board scrapers
  • Docker Compose profiles: remote, cpu, single-gpu, dual-gpu
  • setup.sh cross-platform dependency installer
  • scripts/preflight.py and scripts/migrate.py