πŸ“œ Audit Log Β· git history

Every change, newest first β€” hash, date, type, files, lines added/removed. πŸ—‘ = a removal/cleanup. Click a hash to view the full diff on GitHub.
80
commits
+7533
added
βˆ’1142
removed
9
cleanups
WhenTypeChangeFilesLinesHash
2026-06-26 18:32FEATfeat(verify): button-wiring regression gate β€” every handler checked on every verify2+24 βˆ’384fac74
2026-06-26 18:25FIXπŸ—‘ fix(dead-code) + feat(qa): remove orphaned Welcome-back banner; embed Button Matrix in dashboard4+28 βˆ’45377499a
2026-06-26 18:21FEATfeat(qa): Button Traceability Matrix β€” every handler by flow/screen, PASS/FAIL3+4467 βˆ’0b044127
2026-06-26 18:10FEATfeat(qa): self-service restore script + Backups & Restore dashboard section2+133 βˆ’05376d74
2026-06-26 18:01CHOREchore(qa): screen reachability inventory analyzer2+115 βˆ’3d032681
2026-06-26 17:34CHOREchore(exchange): change By role tab icon πŸ’Ό β†’ 🏷️1+1 βˆ’1d3ed08b
2026-06-26 17:19FEATfeat(exchange): collapse the Filters & Job Orders tab by clicking it again1+5 βˆ’351bfaca
2026-06-26 17:09FEATfeat(exchange): 'Filters & Job Orders' tab β€” move limit-order panel under it1+10 βˆ’7172139a
2026-06-26 16:54FEATfeat(exchange): single continuous header row β€” nav buttons follow Place a Limit Order1+12 βˆ’1893e9785
2026-06-26 16:49FEATfeat(exchange): limit-order toggle into top row; split actions left / nav right1+12 βˆ’125bc32ea
2026-06-26 16:35FIXπŸ—‘ fix(exchange): card flip crash β€” remove dead _tdStatus call in _tdDeepBackHTML1+0 βˆ’15461ff2
2026-06-26 16:29FEATfeat(exchange): rΓ©sumΓ© button to top row + collapse filters into a Place a Limit Order accordion1+25 βˆ’23ae090ad
2026-06-26 16:21FEATfeat(exchange): compress filter panel β€” stacked actions left, filters right1+23 βˆ’179a9efdd
2026-06-26 16:09FEATπŸ—‘ feat(exchange): remove the 'Skills the market wants' gap-picker section1+0 βˆ’174dfca2
2026-06-26 16:07FEATfeat(exchange): consolidate rΓ©sumΓ© controls into the limit-order row1+2 βˆ’12e52f2dd
2026-06-26 13:26FEATfeat(gmail): parity with Yahoo β€” branded splash + redesigned connect wizard1+28 βˆ’10a418a74
2026-06-26 13:11FEATfeat(scoring): augment thin jobs to ~20 reqs + direct/fuzzy match weighting2+35 βˆ’92f07d8e
2026-06-26 13:06FEATfeat(scoring): cap match at 90 (no false security) + richer JD skill derivation2+11 βˆ’10b6cc0a0
2026-06-26 12:49FEATfeat(yahoo): step-1 safety line β€” sign into the account you want scanned1+1 βˆ’1997cdee
2026-06-26 12:47FIXfix(yahoo): app-passwords deep-link 404 β†’ point to Account Security root1+2 βˆ’29dd9afa
2026-06-26 12:23FEATfeat(roles): add Consultant option across all industries1+8 βˆ’8bab50b4
2026-06-26 12:22FEATfeat(scoring): cap match score at 97 β€” never 100% (no false certainty)2+6 βˆ’4bde3638
2026-06-26 12:18FEATfeat(splash): enrich live ticker with city + date β€” '⚑ Role Β· City Β· Jun 12'1+13 βˆ’41dacd6f
2026-06-26 12:17FEATfeat(splash): Stop button β€” halt deep-match, show top results scored so far1+15 βˆ’0dea7cd0
2026-06-26 12:15FEATfeat(splash): explain the scan β€” 30 days, roles/salaries/cities, filterable list1+5 βˆ’17646fe0
2026-06-26 12:13FEATfeat(inbox): collapsible rΓ©sumΓ© skills panel on scan results (hidden by default)1+22 βˆ’0f6834e8
2026-06-26 12:11FEATfeat(inbox-filters): Role dropdown on scan results (extracted from job positions)1+11 βˆ’3507d3de
2026-06-26 12:10FEATfeat(scoring): deterministic fit-for-purpose match score (weighted coverage)2+42 βˆ’32ceb97d
2026-06-26 12:04FEATfeat(scorecard): rΓ©sumΓ© skills universe FIRST, then JD-derived category match1+31 βˆ’3274b392d
2026-06-26 11:58FIXfix(scorecard): fuzzy skill matching for rΓ©sumΓ© universe β€” substring match not exact1+9 βˆ’58153008
2026-06-26 11:50FEATfeat(scorecard): rΓ©sumΓ© skills universe β€” matched vs bonus chips + full skills analysis1+30 βˆ’39aa478c
2026-06-26 11:44FEATfeat(splash): animated scanner β€” live counter, job ticker, gradient progress bar1+62 βˆ’21a293e76
2026-06-26 10:55FEATfeat(splash): live job analysis counter β€” 'Analyzing job X of N β€” Y remaining'1+3 βˆ’2a9a078f
2026-06-26 10:47FEATfeat(scorecard): inferred-match banner when no real JD available1+2 βˆ’1f1925a4
2026-06-26 10:46FIXfix(deep-match): /api/jd/generate β€” blind JD generation before deep match2+34 βˆ’36dd5172
2026-06-26 10:43FIXfix(deep-match): use same two-step flow as Quick Match for inbox jobs1+14 βˆ’3c6fc59f
2026-06-26 10:42FIXfix(deep-match): stop inferred requirements from anchoring on the rΓ©sumΓ©1+1 βˆ’156f9e63
2026-06-26 10:32FEATfeat(inbox): back button + salary/city filters + richer deep match2+39 βˆ’375d3cf3
2026-06-26 10:15FIXfix(scoring): runMatching preserves deep match score β€” stops lightweight scoreJob from overwriting it1+1 βˆ’1c6344fa
2026-06-26 10:13FEATfeat(exchange): card flip runs deep gap analysis β€” full categorized breakdown on back face1+69 βˆ’53850d31
2026-06-26 10:11FEATfeat(exchange): tdGrab runs deep gap analysis before showing scorecard1+11 βˆ’16d4585fa
2026-06-26 10:09FEATfeat(scoring): deep gap analysis IS the score β€” runs in background for all inbox jobs1+13 βˆ’49dde835
2026-06-26 10:07FEATfeat(inbox): deep match on-demand for inbox scan jobs β€” full gap scorecard from View Match2+17 βˆ’77d22256
2026-06-26 09:55FIXπŸ—‘ fix: remove coverage column, rΓ©sumΓ© confirm gate, Yahoo multi-folder scan, source labels1+44 βˆ’3197c760c
2026-06-26 09:30FIXfix: resume gate inline upload, multi-folder Yahoo scan, source-aware fallback message3+120 βˆ’84a73774a
2026-06-26 08:49FEATfeat(yahoo): upload a rΓ©sumΓ© from the ALL JOBS header β†’ score in place1+26 βˆ’1f9ffd5a
2026-06-26 08:45FIXfix(yahoo): time-budget the scan (no more board fallback) + honest no-rΓ©sumΓ© buckets2+62 βˆ’8c3abc99
2026-06-26 08:14FEATfeat(yahoo): connect wizard + honest scoring + source/email/filter transparency1+143 βˆ’38ed3862a
2026-06-26 07:17FIXfix(yahoo): parameterized scan caps + capture sender domain (fixes 'only 2 jobs')1+6 βˆ’00867b76
2026-06-26 07:11FIXfix(yahoo): parameterize the scan caps (per-request, safe defaults) β€” fixes 'only 2 jobs'3+26 βˆ’98dd15b0
2026-06-26 00:57FEATfeat(yahoo): Yahoo scan = exact replica of the Gmail scan (as agreed)1+121 βˆ’55bfcc78
2026-06-26 00:45CHOREπŸ—‘ revert(yahoo): restore the WORKING exchange scan β€” delete my broken Gmail-clone1+7 βˆ’992ab29f4
2026-06-26 00:36FIXπŸ—‘ fix(yahoo): surface the real /yahoo/fetch error + land inbox scan on the Exchange2+20 βˆ’57e95fcd1
2026-06-26 00:03FIXfix(yahoo+gmail): inbox scan feeds BOTH the individual matches AND the Job Exchange1+31 βˆ’0423c798
2026-06-25 23:54FEATfeat(yahoo): Yahoo scan = full twin of Gmail (standalone, exchange never forced)2+181 βˆ’77580438
2026-06-25 23:38CHOREπŸ—‘ refactor(yahoo): delete dead old-scanner code (KISS cleanup)1+3 βˆ’13824744f2
2026-06-25 21:47FEATfeat(yahoo): friction-reducers β€” one-click clipboard paste + email prefill1+25 βˆ’1a79b5ec
2026-06-25 21:29CHORErefactor(yahoo): unify to ONE connect flow (KISS)1+8 βˆ’16eb3230
2026-06-25 21:23FEATfeat(yahoo): guided app-password onboarding for new users2+27 βˆ’50dde3a1
2026-06-25 21:19CHOREdocs(test): update Auth + Jobs scripts for the ghost-gate fix & Gmail read-only2+9 βˆ’8c5b9e5f
2026-06-25 21:15FEATπŸ—‘ feat(gmail): switch to read-only scope (gmail.readonly) β€” drop auto-filters1+11 βˆ’39fe7439
2026-06-25 21:10FIXfix(auth): kill the ghost 'Welcome back' gate / first-registration lockout3+79 βˆ’708bc285
2026-06-25 20:46FEATfeat(interview): 1 free question per agent (CoachΒ·SMEΒ·Trainer), then paywall1+57 βˆ’37096901e
2026-06-25 20:31FIXfix(security): gate /subscription/reset-usage β€” auth + subscribers only2+12 βˆ’5b8878b9
2026-06-25 20:26FIXfix(security): rate-limit /ava/chat (50/15min per IP) β€” anon hardening complete2+7 βˆ’38956a52
2026-06-25 20:24FIXfix(security): gate /resume/docx download (post-signup) β€” 9/10 anon-hardened2+4 βˆ’4d370434
2026-06-25 20:21FIXfix(security): Tier-2 β€” gate Customize download + Interview questions2+7 βˆ’8de6dbed
2026-06-25 20:17CHOREπŸ—‘ docs(test): make the Test scripts tab pristine β€” the Master Test Pack only1+3 βˆ’245745b223
2026-06-25 20:12CHOREdocs(test): complete Pilot Test Pack (7 flows) + wire into dashboard8+285 βˆ’141a117b
2026-06-25 20:04CHOREdocs(test): Pilot Test Pack β€” standard + cover + Payments exemplar2+133 βˆ’0918eb9f
2026-06-25 19:51FEATfeat(security+qa): Tier-2 interview gating + auth-attach wrapper + dashboard Payments section4+87 βˆ’6a77ca4a
2026-06-25 19:40FIXfix(security): activate-subscription requires auth + activates only the authed user (Tier 1)3+12 βˆ’1520d1d5a
2026-06-25 19:29CHOREtest(paywall): anonymous bypass probe β€” hits paid endpoints with no token1+58 βˆ’086314f9
2026-06-25 19:25CHOREtest(paywall): pay-flow verified for all 4 features (5/5 each)1+5 βˆ’2c2ff64b
2026-06-25 19:21FEATfeat(qa): put the Health Sentinel + 🐞 QA Sidekick on the /v2 landing too3+202 βˆ’29a8fe1d
2026-06-25 18:45CHOREtest(paywall): pay-flow check (paywall β†’ upgrade β†’ unlock) + docs2+99 βˆ’14f1550c
2026-06-25 18:24CHOREtest(paywall): gate-check suite for all 4 features + docs2+130 βˆ’026d6392
2026-06-25 00:00CHOREdocs: session handoff β€” landing+exchange redesign, demo script, paywall restoration1+83 βˆ’0bb92408
2026-06-24 23:50FIXfix(/v2 auth): email signup/login no longer bounces to the 'Welcome back' re-auth lock2+7 βˆ’23703e6c
2026-06-24 23:35FIXfix(paywall): /cycle/create respects an explicit 0 free-run limit (was '|| 1' β†’ forced 1)1+1 βˆ’156020b6