Commit graph

  • cfc09b4731 chore: gitignore CLAUDE.md and docs/superpowers (BSL 1.1 compliance) main pyr0ball 2026-03-27 01:04:18 -0700
  • 1fa5b9e2b0 feat(avocet): add cancel buttons for benchmark and fine-tune runs feat/vue-label-tab pyr0ball 2026-03-15 18:15:35 -0700
  • 8e016d7fe6 fix(avocet): narrow cancel except clause, clear stale cancel flags on new run pyr0ball 2026-03-15 18:13:01 -0700
  • 30f19711ec feat(avocet): add cancel endpoints for benchmark and finetune jobs pyr0ball 2026-03-15 18:09:20 -0700
  • 753f8f5def fix(avocet): use_reentrant=False for gradient checkpointing pyr0ball 2026-03-15 17:23:40 -0700
  • 5dee23f53c fix(avocet): reduce deberta-small VRAM + auto-select freest GPU for training pyr0ball 2026-03-15 17:09:06 -0700
  • 606917f90f feat(avocet): add restart-api command to manage.sh pyr0ball 2026-03-15 17:04:00 -0700
  • 74ba9103cd fix(avocet): use startsWith for error class in ft-log (consistent with benchmark log) pyr0ball 2026-03-15 16:14:47 -0700
  • 95eb238add feat(avocet): add fine-tune section and trained models badge row to BenchmarkView pyr0ball 2026-03-15 16:09:51 -0700
  • 60fe1231ce fix(avocet): _MODELS_DIR overridable in tests; sanitize score paths against path traversal pyr0ball 2026-03-15 16:07:27 -0700
  • ef8adfb035 feat(avocet): add /api/finetune/status and /api/finetune/run endpoints pyr0ball 2026-03-15 16:04:34 -0700
  • 64fd19a7b6 fix(avocet): move TorchDataset import to top; split sample_count into total+train pyr0ball 2026-03-15 16:02:43 -0700
  • 8ba34bb2d1 feat(avocet): run_finetune, CLI, multi-score-file merge with last-write-wins dedup pyr0ball 2026-03-15 15:52:41 -0700
  • f262b23cf5 fix(avocet): tighten body truncation test to exact 400-char assertion pyr0ball 2026-03-15 15:44:19 -0700
  • 5eb593569d feat(avocet): add finetune data pipeline, class weights, WeightedTrainer pyr0ball 2026-03-15 15:38:45 -0700
  • 2d795b9573 fix(avocet): guard discover_finetuned_models against malformed/incomplete training_info.json pyr0ball 2026-03-15 15:18:13 -0700
  • 36117b35c4 feat(avocet): auto-discover fine-tuned models in benchmark harness pyr0ball 2026-03-15 11:59:13 -0700
  • da8478082e fix(avocet): FineTunedAdapter GPU device routing + precise body truncation test pyr0ball 2026-03-15 10:56:47 -0700
  • 7a4ca422ca feat(avocet): add FineTunedAdapter for local checkpoint inference pyr0ball 2026-03-15 10:54:38 -0700
  • 71d0bfafe6 chore(avocet): add scikit-learn to classifier env pyr0ball 2026-03-15 09:44:04 -0700
  • 8c22dd62de feat(avocet): benchmark UI, label fixes, BenchmarkView with charts and SSE run pyr0ball 2026-03-15 09:39:37 -0700
  • d3ae5b576a docs: finalize fine-tune classifier design spec (3 review passes) pyr0ball 2026-03-15 06:47:17 -0700
  • 8c26cbe597 docs: add fine-tune classifier design spec pyr0ball 2026-03-15 06:41:38 -0700
  • fb1ce89244 fix(avocet): reset card element state when new item loads to clear previous animation inline styles pyr0ball 2026-03-08 07:44:02 -0700
  • e01f743c39 feat(avocet): badge pop via Anime.js spring transition hook pyr0ball 2026-03-08 07:35:49 -0700
  • 6829bebdd4 fix(avocet): constrain grid-active to 640px on wide viewports using left/right offsets pyr0ball 2026-03-08 07:26:46 -0700
  • ddb6025c89 feat(avocet): animate bucket grid rise with Anime.js spring pyr0ball 2026-03-08 07:17:56 -0700
  • d410fa5c80 fix(avocet): restore drag aura color feedback via updateAura in useCardAnimation pyr0ball 2026-03-08 07:14:24 -0700
  • 6c98ee6d69 feat(avocet): wire Anime.js card animation into EmailCardStack pyr0ball 2026-03-08 07:07:58 -0700
  • 3197252c31 docs: fix animejs v4 API examples in animation plan (spring object form, 2-arg animate) pyr0ball 2026-03-08 07:00:10 -0700
  • 4bea1b6812 feat(avocet): add useCardAnimation composable with Anime.js pyr0ball 2026-03-08 06:52:27 -0700
  • d418a719f0 feat(avocet): add animejs v4 dependency pyr0ball 2026-03-08 06:47:50 -0700
  • 144a9b29b3 docs: add Anime.js animation implementation plan pyr0ball 2026-03-08 06:38:16 -0700
  • 8af63d959b docs: add Anime.js animation integration design pyr0ball 2026-03-08 06:33:46 -0700
  • cfa5ed2194 docs: add privacy policy reference pyr0ball 2026-03-05 20:59:37 -0800
  • e03d91ece9 fix(avocet): ball escapes overflow clip, floats above header/footer with z-index + transparency pyr0ball 2026-03-05 15:14:24 -0800
  • be3b52f150 fix(avocet): grid pinned to viewport with height 100dvh + card ball floats above finger at scale 0.55 pyr0ball 2026-03-05 15:07:58 -0800
  • 1ccac024a4 feat(avocet): add velocity-based fling detection to toss gesture (option B: speed + alignment) pyr0ball 2026-03-05 14:55:10 -0800
  • f8e911c48f feat(avocet): add toss-zone overlays and grid-rise animation to LabelView pyr0ball 2026-03-05 13:41:52 -0800
  • 2bbd925c41 feat(avocet): replace swipe+HTML5-drag with unified pointer-events toss gesture pyr0ball 2026-03-05 10:38:52 -0800
  • a8b1c89c62 feat(avocet): replace HTML5 drag events on LabelBucketGrid with hoveredBucket prop pyr0ball 2026-03-05 10:10:48 -0800
  • f8aafb2974 feat: card crumples to small ball on drag pickup so buckets expand fully pyr0ball 2026-03-04 12:38:46 -0800
  • d82db402a3 fix: keyboard shortcuts now work after labels load (lazy keymap evaluation) pyr0ball 2026-03-04 12:32:25 -0800
  • ba25ee47a5 fix: pin bucket grid to bottom of viewport with sticky footer; prevents mis-click from layout shift pyr0ball 2026-03-04 12:26:04 -0800
  • cf69452e42 feat: implement FetchView — SSE progress bars, account selection, targeted fetch pyr0ball 2026-03-04 12:23:58 -0800
  • a9f7ba1b0c feat: implement StatsView — label distribution bars, file info, download pyr0ball 2026-03-04 12:21:21 -0800
  • d372155e4b feat: implement SettingsView — IMAP account management, test connection, display toggles pyr0ball 2026-03-04 12:20:30 -0800
  • 7fa62ae073 feat: add useApiSSE helper for Server-Sent Events connections pyr0ball 2026-03-04 12:17:46 -0800
  • 7bd37ef982 feat: add Vue Router + stow-able AppSidebar; stub Fetch/Stats/Settings views pyr0ball 2026-03-04 12:12:26 -0800
  • f38c73db97 feat: add GET /api/fetch/stream SSE endpoint for real-time IMAP progress pyr0ball 2026-03-04 12:05:23 -0800
  • 965362f5e3 feat: add POST /api/accounts/test endpoint pyr0ball 2026-03-04 12:04:42 -0800
  • f64be8bbe0 feat: add GET /api/stats and GET /api/stats/download endpoints pyr0ball 2026-03-04 12:04:11 -0800
  • c5a74d3821 feat: add GET/POST /api/config endpoints for IMAP account management pyr0ball 2026-03-04 12:03:40 -0800
  • 1d1f25641b feat: extract IMAP logic to app/imap_fetch.py for reuse by API pyr0ball 2026-03-04 11:42:22 -0800
  • 8ec2dfddee fix: bucket grid now renders 3x3+1 numpad layout on all screen sizes pyr0ball 2026-03-04 11:31:36 -0800
  • 92da5902ba fix: UndoToast now emits expire after 5s so toast self-dismisses pyr0ball 2026-03-04 11:29:03 -0800
  • 82eeb4defc fix: prevent blank page on rebuild and queue drain on skip/discard pyr0ball 2026-03-03 19:26:34 -0800
  • a06b133a6e docs(avocet): document email field schemas and normalization layer pyr0ball 2026-03-03 18:43:41 -0800
  • b54b2a711e fix(avocet): normalize queue schema + bind to 0.0.0.0 for LAN access pyr0ball 2026-03-03 18:43:00 -0800
  • cd7bbd1dbf fix(avocet): start-api polls port instead of sleeping 1s — avoids false-success on slow start pyr0ball 2026-03-03 18:11:53 -0800
  • 682a958c28 fix(avocet): strip HTML from email bodies — stdlib HTMLParser, no deps pyr0ball 2026-03-03 16:28:18 -0800
  • 47973aeba6 feat(avocet): easter eggs — hired confetti, century mark, clean sweep, midnight labeler, cursor trail pyr0ball 2026-03-03 16:24:47 -0800
  • deddd763ea feat(avocet): manage.sh start-api / stop-api / open-api commands pyr0ball 2026-03-03 16:23:56 -0800
  • 382bca28a1 feat(avocet): LabelView — wires store, API, card stack, keyboard, easter eggs pyr0ball 2026-03-03 16:21:07 -0800
  • b623d252d0 feat(avocet): LabelBucketGrid bucket-mode CSS — spring expansion, glow on drop pyr0ball 2026-03-03 16:19:29 -0800
  • 9b5a1ae752 feat(avocet): EmailCardStack — swipe gestures, depth shadows, dismissal classes pyr0ball 2026-03-03 16:16:09 -0800
  • e7f08ce685 feat(avocet): UndoToast — 5-second countdown, undo button, accessible pyr0ball 2026-03-03 16:13:02 -0800
  • 5114e6ac19 feat(avocet): useLabelKeyboard — 1-9, h, S, D, U, ? shortcuts pyr0ball 2026-03-03 16:12:58 -0800
  • cd6cae2040 feat(avocet): LabelBucketGrid — numpad layout, bucket-mode expansion, drag drop pyr0ball 2026-03-03 16:04:31 -0800
  • e05ac885d7 feat(avocet): EmailCard component — subject, from/date, body preview, expand/collapse pyr0ball 2026-03-03 16:03:01 -0800
  • e823c84196 feat(avocet): useApi, useMotion, useHaptics, useEasterEgg (Konami/hacker mode) pyr0ball 2026-03-03 15:58:43 -0800
  • 209f49f7ea feat(avocet): Pinia label store with queue, lastAction, easter egg counter pyr0ball 2026-03-03 15:54:44 -0800
  • 2abda18b92 fix(avocet): align theme with Peregrine design system — full token set, dark mode, self-hosted fonts pyr0ball 2026-03-03 15:52:38 -0800
  • ac1f4b8ba1 feat(avocet): CircuitForge base theme + Avocet Slate Teal/Russet colors pyr0ball 2026-03-03 15:49:07 -0800
  • cb059492bf feat(avocet): Vite + Vue 3 + UnoCSS + Vitest scaffold pyr0ball 2026-03-03 15:46:58 -0800
  • 4a76f6ba41 fix(avocet): undo — commit-then-clear order, empty-records guard, skip dedup, stronger test pyr0ball 2026-03-03 15:41:58 -0800
  • 80a8195899 feat(avocet): discard, undo, labels config, static serving — backend complete pyr0ball 2026-03-03 15:35:01 -0800
  • f0e9886ab2 feat(avocet): POST /api/skip endpoint pyr0ball 2026-03-03 15:21:32 -0800
  • 816c0e3bb2 fix(avocet): store original item in _last_action; add requirements.txt pyr0ball 2026-03-03 15:16:54 -0800
  • ff27053aa9 feat(avocet): POST /api/label endpoint pyr0ball 2026-03-03 15:14:04 -0800
  • c1a6dd4fc5 fix(avocet): queue_with_items fixture uses api._DATA_DIR to avoid implicit tmp_path coupling pyr0ball 2026-03-03 15:03:57 -0800
  • 9abae0478c feat(avocet): GET /api/queue endpoint pyr0ball 2026-03-03 15:00:59 -0800
  • c8aea3c39f fix(avocet): _write_jsonl empty-list writes empty file; add reset_last_action helper pyr0ball 2026-03-03 14:36:18 -0800
  • ffd1450f62 feat(avocet): FastAPI skeleton + JSONL helpers pyr0ball 2026-03-03 13:22:17 -0800
  • f48590f859 feat: discard button — removes email from queue without writing to score file pyr0ball 2026-02-27 15:48:40 -0800
  • 9133cadd66 feat: discard button — removes email from queue without writing to score file pyr0ball 2026-02-27 15:48:40 -0800
  • 732564ae5e fix: manage.sh restart — exec bash $0 so script path resolves correctly pyr0ball 2026-02-27 15:41:53 -0800
  • 18c7ed2c57 fix: manage.sh restart — exec bash $0 so script path resolves correctly pyr0ball 2026-02-27 15:41:53 -0800
  • ab764cb8f6 feat: targeted fetch — date range + sender/subject filter for historical email pulls pyr0ball 2026-02-27 15:15:49 -0800
  • a26a21e71d feat: targeted fetch — date range + sender/subject filter for historical email pulls pyr0ball 2026-02-27 15:15:49 -0800
  • f97ef32100 fix: RerankerAdapter falls back to label name when no LABEL_DESCRIPTIONS entry pyr0ball 2026-02-27 14:54:31 -0800
  • 1452889d0f fix: RerankerAdapter falls back to label name when no LABEL_DESCRIPTIONS entry pyr0ball 2026-02-27 14:54:31 -0800
  • d0dbc6e787 docs: update CLAUDE.md — 9 labels table with keys, wildcard shortcut pyr0ball 2026-02-27 14:49:24 -0800
  • 4c346aa328 feat: 9 labels (add event_rescheduled/unrelated/digest), wildcard Other label, InvalidCharacterError fix pyr0ball 2026-02-27 14:34:15 -0800
  • fd476e4199 feat: 9 labels (add event_rescheduled/unrelated/digest), wildcard Other label, InvalidCharacterError fix pyr0ball 2026-02-27 14:34:15 -0800
  • 4c659033c9 fix: fetch log — overwrite per-email progress instead of appending pyr0ball 2026-02-27 14:20:57 -0800
  • 66f69ff9a2 fix: fetch log — overwrite per-email progress instead of appending pyr0ball 2026-02-27 14:20:57 -0800
  • 260c7c0f96 feat: add Settings tab with IMAP account GUI + connection test pyr0ball 2026-02-27 14:18:51 -0800
  • 2824fca70c feat: add Settings tab with IMAP account GUI + connection test pyr0ball 2026-02-27 14:18:51 -0800
  • bd4911fe58 feat: add manage.sh with port collision detection pyr0ball 2026-02-27 14:10:24 -0800