Commit graph

  • 7693abf79d fix: guard generateResearch against POST failure, surface partial fetch errors pyr0ball 2026-03-20 18:44:11 -0700
  • 3aed304434 fix: guard generateResearch against POST failure, surface partial fetch errors pyr0ball 2026-03-20 18:44:11 -0700
  • ff0dd8b3cd refactor: use existing useApi composable in prep store, remove duplicate pyr0ball 2026-03-20 18:40:33 -0700
  • dc21e730d9 refactor: use existing useApi composable in prep store, remove duplicate pyr0ball 2026-03-20 18:40:33 -0700
  • de69140386 feat: add prep store with research polling pyr0ball 2026-03-20 18:36:19 -0700
  • 44adfd6691 feat: add prep store with research polling pyr0ball 2026-03-20 18:36:19 -0700
  • 71480d630a refactor: use _get_db() pattern in get_research_brief, fix HTTPException style pyr0ball 2026-03-20 18:32:02 -0700
  • 0ef8547c99 refactor: use _get_db() pattern in get_research_brief, fix HTTPException style pyr0ball 2026-03-20 18:32:02 -0700
  • a29cc7b7d3 feat: add research and contacts endpoints for interview prep pyr0ball 2026-03-20 18:18:39 -0700
  • dc158ba802 feat: add research and contacts endpoints for interview prep pyr0ball 2026-03-20 18:18:39 -0700
  • 26484f111c docs: add interview prep Vue implementation plan pyr0ball 2026-03-20 18:00:07 -0700
  • 0e1dd29938 docs: add interview prep Vue SPA design spec pyr0ball 2026-03-20 17:46:05 -0700
  • 347c171e26 fix: prefer HTML body in imap_sync, strip head/style/script, remove 4000-char truncation pyr0ball 2026-03-20 13:35:30 -0700
  • b9ef1f631e fix: prefer HTML body in imap_sync, strip head/style/script, remove 4000-char truncation pyr0ball 2026-03-20 13:35:30 -0700
  • 51f5b3f0a0 fix: bootstrap digest store on app mount for correct badge count on load pyr0ball 2026-03-20 10:27:13 -0700
  • 8c3c0340ff fix: bootstrap digest store on app mount for correct badge count on load pyr0ball 2026-03-20 10:27:13 -0700
  • 5621140a72 fix: add error feedback and keyboard accessibility to DigestView pyr0ball 2026-03-20 10:16:24 -0700
  • dd790615e0 fix: add error feedback and keyboard accessibility to DigestView pyr0ball 2026-03-20 10:16:24 -0700
  • 8302b58b20 feat: add DigestView with expand/extract/queue UI pyr0ball 2026-03-20 10:12:45 -0700
  • d624bc5d77 feat: add DigestView with expand/extract/queue UI pyr0ball 2026-03-20 10:12:45 -0700
  • 247f807e02 fix: bind aria-label on nav badge span (was static string, not template expression) pyr0ball 2026-03-20 10:10:10 -0700
  • 394261cde1 fix: bind aria-label on nav badge span (was static string, not template expression) pyr0ball 2026-03-20 10:10:10 -0700
  • 165811c420 feat: add Digest tab to nav and router pyr0ball 2026-03-20 10:07:12 -0700
  • 16b0e51654 feat: add Digest tab to nav and router pyr0ball 2026-03-20 10:07:12 -0700
  • 154f691334 style: use void instead of .catch on fire-and-forget digest-queue call pyr0ball 2026-03-20 10:06:04 -0700
  • d76e74c200 style: use void instead of .catch on fire-and-forget digest-queue call pyr0ball 2026-03-20 10:06:04 -0700
  • 4246e71061 feat: fire digest-queue add call from digest chip handler pyr0ball 2026-03-20 09:58:16 -0700
  • 4cf1e53901 feat: fire digest-queue add call from digest chip handler pyr0ball 2026-03-20 09:58:16 -0700
  • 9bf14fbc75 fix: add error rollback and error state hygiene in digest store pyr0ball 2026-03-20 09:56:22 -0700
  • 30d668f692 fix: add error rollback and error state hygiene in digest store pyr0ball 2026-03-20 09:56:22 -0700
  • 4c2a08057c feat: add digest Pinia store pyr0ball 2026-03-20 09:52:52 -0700
  • bc4d6df8f0 feat: add digest Pinia store pyr0ball 2026-03-20 09:52:52 -0700
  • f3e7f89e2e style: pass Path(DB_PATH) to insert_job for type consistency pyr0ball 2026-03-20 09:51:35 -0700
  • dcd41d74fc style: pass Path(DB_PATH) to insert_job for type consistency pyr0ball 2026-03-20 09:51:35 -0700
  • 1b2643675d feat: add queue-jobs and delete digest endpoints pyr0ball 2026-03-20 07:44:19 -0700
  • 12ff809bd5 feat: add queue-jobs and delete digest endpoints pyr0ball 2026-03-20 07:44:19 -0700
  • 5bb3674fea fix: guard extract_digest_links db.close(), remove domain-in-path false positive, add hint assertion pyr0ball 2026-03-20 07:04:24 -0700
  • 4873201242 fix: guard extract_digest_links db.close(), remove domain-in-path false positive, add hint assertion pyr0ball 2026-03-20 07:04:24 -0700
  • 182ab789df feat: add /extract-links endpoint with URL scoring pyr0ball 2026-03-20 06:59:26 -0700
  • aee8038be9 feat: add /extract-links endpoint with URL scoring pyr0ball 2026-03-20 06:59:26 -0700
  • 7993984af9 fix: guard db.close() in add_to_digest_queue with try/finally pyr0ball 2026-03-20 06:54:50 -0700
  • b718439c54 fix: guard db.close() in add_to_digest_queue with try/finally pyr0ball 2026-03-20 06:54:50 -0700
  • a503ecde3b feat: add GET/POST /api/digest-queue endpoints pyr0ball 2026-03-20 02:51:17 -0700
  • 641ea3da53 feat: add GET/POST /api/digest-queue endpoints pyr0ball 2026-03-20 02:51:17 -0700
  • 0590a3a12e fix: fix indentation and add try/finally in digest startup pyr0ball 2026-03-20 02:36:23 -0700
  • 7d9be91aab fix: fix indentation and add try/finally in digest startup pyr0ball 2026-03-20 02:36:23 -0700
  • 6a1ee3ed28 feat: add digest_queue table to schema and dev-api startup pyr0ball 2026-03-20 02:34:41 -0700
  • b56ad40c9e feat: add digest_queue table to schema and dev-api startup pyr0ball 2026-03-20 02:34:41 -0700
  • 11a8441fed docs: add digest queue implementation plan pyr0ball 2026-03-20 02:19:44 -0700
  • 24a16ee4b0 docs: add digest scrape queue design spec pyr0ball 2026-03-19 20:28:23 -0700
  • c6f810fb30 feat(signals): add Unrelated and Digest reclassify chips to InterviewsView pyr0ball 2026-03-19 20:01:08 -0700
  • d2dd902482 feat(signals): add Unrelated and Digest reclassify chips to InterviewsView pyr0ball 2026-03-19 20:01:08 -0700
  • 87aae6eefc feat(signals): add Unrelated and Digest reclassify chips to InterviewCard pyr0ball 2026-03-19 20:00:27 -0700
  • 9d03cb55a9 feat(signals): add Unrelated and Digest reclassify chips to InterviewCard pyr0ball 2026-03-19 20:00:27 -0700
  • 34494db8d8 feat(signals): strip HTML and normalize whitespace from email bodies pyr0ball 2026-03-19 19:59:59 -0700
  • d10093cfa0 feat(signals): strip HTML and normalize whitespace from email bodies pyr0ball 2026-03-19 19:59:59 -0700
  • 909fe60908 feat(interviews): paginate applied list (10 per page) pyr0ball 2026-03-19 19:45:59 -0700
  • eff68791f4 feat(interviews): paginate applied list (10 per page) pyr0ball 2026-03-19 19:45:59 -0700
  • e487942eeb fix(signals): add .stop modifiers and aria-labels to pre-list signal banner buttons pyr0ball 2026-03-19 19:35:15 -0700
  • fbb1b1ef3b fix(signals): add .stop modifiers and aria-labels to pre-list signal banner buttons pyr0ball 2026-03-19 19:35:15 -0700
  • 9de51d6b4a feat(signals): expandable body + reclassify chips in InterviewsView pre-list pyr0ball 2026-03-19 19:31:23 -0700
  • f62c103654 feat(signals): expandable body + reclassify chips in InterviewsView pre-list pyr0ball 2026-03-19 19:31:23 -0700
  • 804c2a8064 fix(signals): per-signal expand state, error rollback, type safety in InterviewCard pyr0ball 2026-03-19 19:26:36 -0700
  • b52d7c0f5b fix(signals): per-signal expand state, error rollback, type safety in InterviewCard pyr0ball 2026-03-19 19:26:36 -0700
  • 2796d0d911 feat(signals): expandable body + reclassify chips in InterviewCard pyr0ball 2026-03-19 19:22:10 -0700
  • b973469bc4 feat(signals): expandable body + reclassify chips in InterviewCard pyr0ball 2026-03-19 19:22:10 -0700
  • 3b2df5e89e feat(signals): add body and from_addr to StageSignal interface pyr0ball 2026-03-19 19:19:27 -0700
  • b20fef6c03 feat(signals): add body and from_addr to StageSignal interface pyr0ball 2026-03-19 19:19:27 -0700
  • 218f4ff9c8 fix(signals): capture rowcount after commit in reclassify_signal (consistency) pyr0ball 2026-03-19 19:18:43 -0700
  • 353c07cf92 fix(signals): capture rowcount after commit in reclassify_signal (consistency) pyr0ball 2026-03-19 19:18:43 -0700
  • 1d943ed8a3 feat(signals): add body/from_addr to signal query; add reclassify endpoint pyr0ball 2026-03-19 19:14:11 -0700
  • 86d56ee2eb feat(signals): add body/from_addr to signal query; add reclassify endpoint pyr0ball 2026-03-19 19:14:11 -0700
  • e8b47fa60a plan: signal banner redesign — expandable email + reclassify chips pyr0ball 2026-03-19 17:22:46 -0700
  • f4dd99a136 docs: fix signal banner spec — neutral two-call path, Map reactivity, type union notes pyr0ball 2026-03-19 17:12:19 -0700
  • 168d2b7a4a docs: spec for signal banner expandable email and re-classification UI pyr0ball 2026-03-19 17:07:55 -0700
  • e24e0b7233 feat(interviews): collapsible Applied section, email sync pill, pre-list signal banners pyr0ball 2026-03-19 16:34:58 -0700
  • 22e45575b7 feat(interviews): collapsible Applied section, email sync pill, pre-list signal banners pyr0ball 2026-03-19 16:34:58 -0700
  • 5ca25e160c feat(interviews): add stage signal banners and extend move emit in InterviewCard pyr0ball 2026-03-19 16:25:49 -0700
  • fb3e5b7532 feat(interviews): add stage signal banners and extend move emit in InterviewCard pyr0ball 2026-03-19 16:25:49 -0700
  • 52c7dfcfe3 feat(interviews): add preSelectedStage prop to MoveToSheet pyr0ball 2026-03-19 16:25:48 -0700
  • dd151f1afc feat(interviews): add preSelectedStage prop to MoveToSheet pyr0ball 2026-03-19 16:25:48 -0700
  • 6e2ddaf6da feat(interviews): export StageSignal interface; add stage_signals to PipelineJob pyr0ball 2026-03-19 16:22:59 -0700
  • 6ea2fc5346 feat(interviews): export StageSignal interface; add stage_signals to PipelineJob pyr0ball 2026-03-19 16:22:59 -0700
  • bc8174271e feat(interviews): add stage signals, email sync, and dismiss endpoints to dev-api pyr0ball 2026-03-19 10:46:17 -0700
  • 690a471575 feat(interviews): add stage signals, email sync, and dismiss endpoints to dev-api pyr0ball 2026-03-19 10:46:17 -0700
  • 60383281fb docs: add interviews improvements implementation plan pyr0ball 2026-03-19 09:46:20 -0700
  • cbdbed9a8e docs(interviews): fix spec review issues (SQL column, emit signature, stage mapping, event_rescheduled) pyr0ball 2026-03-19 09:32:26 -0700
  • 12f714abb8 docs(interviews): spec for applied collapsible, email sync pill, stage signal banners pyr0ball 2026-03-19 09:24:18 -0700
  • 4abdf21981 fix(apply): check saveCoverLetter error; document cover-letter-generated in wrapper pyr0ball 2026-03-19 08:36:19 -0700
  • eb0a12abef fix(apply): check saveCoverLetter error; document cover-letter-generated in wrapper pyr0ball 2026-03-19 08:36:19 -0700
  • 1006e88e5b fix(apply): ensure loading resets on fetchJobs error and clear toast timer on unmount pyr0ball 2026-03-19 08:24:52 -0700
  • ff84a4f02f fix(apply): ensure loading resets on fetchJobs error and clear toast timer on unmount pyr0ball 2026-03-19 08:24:52 -0700
  • b94828855b feat(apply): desktop split-pane layout with narrow list, expand animation, speed demon + marathon easter eggs pyr0ball 2026-03-19 08:21:08 -0700
  • b1eec1b28f feat(apply): desktop split-pane layout with narrow list, expand animation, speed demon + marathon easter eggs pyr0ball 2026-03-19 08:21:08 -0700
  • d8aca3ec52 feat(apply): extract ApplyWorkspace component with job-removed emit and perfect match easter egg pyr0ball 2026-03-19 08:14:15 -0700
  • 1e8263fb4c feat(apply): extract ApplyWorkspace component with job-removed emit and perfect match easter egg pyr0ball 2026-03-19 08:14:15 -0700
  • 5ac742d892 refactor(apply): add score-badge--mid-high token for 4-tier scoring pyr0ball 2026-03-19 08:08:06 -0700
  • 1367ca377a refactor(apply): add score-badge--mid-high token for 4-tier scoring pyr0ball 2026-03-19 08:08:06 -0700
  • b663458b28 docs(apply): fix plan review issues (onUnmounted, mq listener cleanup, job-row__sep CSS) pyr0ball 2026-03-19 08:00:35 -0700
  • 025e53da00 docs(apply): add implementation plan for desktop split-pane pyr0ball 2026-03-19 07:57:55 -0700