Commit Graph

  • e44bf2b3c9 style(ui): make docked dialog look more like a Torn panel (full-width, accent border) main dev 2026-06-07 14:02:11 -05:00
  • b626fb7d41 fix(bundle): stop pre-escaping gym name in embedded dom.js (apostrophe fix) dev 2026-06-07 14:00:40 -05:00
  • c6de810417 feat(bundle): mirror source changes in embedded userscript dev 2026-06-07 12:17:29 -05:00
  • ca83996c6e feat(main): anchor dialog by inserting before gymContentWrapper (dock in page flow) dev 2026-06-07 12:15:09 -05:00
  • a1e79ac801 feat(ui): add tat-anchored CSS class and rework setMode to dock the dialog in the page flow dev 2026-06-07 12:14:05 -05:00
  • 7fddd84b6a fix(bundle): mirror source fixes in embedded userscript dev 2026-06-07 09:00:40 -05:00
  • 2ed25c14de fix(main): pass rect to setMode and remove redundant _positionAnchored call (anchor crash fix) dev 2026-06-07 09:00:04 -05:00
  • 95c655c24c fix(gitignore): add rendered gym.php source to ignore list dev 2026-06-07 08:49:41 -05:00
  • d494093139 fix(bundle): mirror source fixes in embedded userscript Claude Opus 4.8 2026-06-06 09:15:13 -05:00
  • 429a5d1b14 fix(main): anchor above Torn's properties___HASH list instead of looking for a form Claude Opus 4.8 2026-06-06 09:14:05 -05:00
  • ac1c04ecad fix(dom): find active gym button by active class instead of iterating all buttons Claude Opus 4.8 2026-06-06 09:13:22 -05:00
  • 8d89e40b91 fix(bundle): mirror source fixes in embedded userscript dev 2026-06-05 08:43:22 -05:00
  • 540416949b fix(interceptor): parse "gained" message for reliable per-train delta dev 2026-06-05 08:39:16 -05:00
  • 6dd5d2e3f2 fix(dom): rewrite scraper to use Torn's CSS module structure (li class prefix, propertyValue span) dev 2026-06-05 08:38:39 -05:00
  • 76e3ba2488 fix(bundle): mirror source fixes in embedded userscript Claude 2026-06-01 22:24:57 -05:00
  • b03cc80665 fix(ui): default floating dialog position to bottom-left Claude 2026-06-01 22:24:01 -05:00
  • 501c6746eb fix(main): hoist let bindings to top of start() to fix TDZ on anchorError Claude 2026-06-01 22:22:29 -05:00
  • 578736a492 fix(test): adjust comment formatting for clarity in computeEstimate tests dev 2026-06-01 21:42:39 -05:00
  • a061410f16 fix(bundle): mirror source fixes in embedded userscript Claude 2026-06-01 18:47:39 -05:00
  • bb33bcbb61 fix(main): broaden anchor selector and show inline "can't anchor" note Claude 2026-06-01 18:45:40 -05:00
  • e200faf8c4 fix(ui): scope mousedown handler to .tat-header to restore input/select focus Claude 2026-06-01 18:42:16 -05:00
  • ef90a6b779 Add design document for Torn Attribute Training Tracker dev 2026-06-01 18:16:02 -05:00
  • ecea14b051 test(build): extend behavioral drift checks to all four pure functions dev 2026-06-01 17:59:36 -05:00
  • e21582b7c4 fix(bundle): strict 30-day boundary in pruneHistory to match src/pure.js dev 2026-06-01 17:59:06 -05:00
  • adc8a5dec9 docs: README with install, usage, and self-test instructions dev 2026-06-01 17:40:18 -05:00
  • a5f402132e test(build): catch behavioral drift in bundle summary via eval-extracted comparison dev 2026-06-01 17:37:46 -05:00
  • 62fe86a71f test(build): verify userscript bundle embeds pure functions and self-test dev 2026-06-01 17:31:24 -05:00
  • 75f10126d2 fix(bundle): floor perDay in summary and hoist self alias in render dev 2026-06-01 17:28:41 -05:00
  • 7c2533d188 feat: bundle torn-attribute-tracker.user.js (Tat-style Tampermonkey script) dev 2026-06-01 17:16:54 -05:00
  • 36a6b4c52d fix(main): keep prefs.mode in sync and rAF-coalesce mutation observer dev 2026-06-01 17:09:38 -05:00
  • 12fc79022f feat(main): wire Store + Dialog + DataLayer on /gym.php dev 2026-06-01 17:03:03 -05:00
  • 8502c53663 fix(ui): escape user strings, lazy drag listeners, drop dead warn field dev 2026-06-01 16:58:12 -05:00
  • 3053a6d713 feat(ui): Dialog with render, drag, mode toggle, milestone dropdown dev 2026-06-01 16:52:25 -05:00
  • cd6fb7cf91 fix(interceptor): guard XHR double-wrap and thread currentAttr into regex fallback dev 2026-06-01 16:47:39 -05:00
  • 491d3201f8 feat(interceptor): XHR/fetch wrap to detect Train responses dev 2026-06-01 16:41:01 -05:00
  • aec9c40835 fix(dom): scope value search near attribute, whole-word matching, panel-scoped gym name dev 2026-06-01 16:38:22 -05:00
  • e647fbf545 feat(dom): currentAttribute scraper for gym page (manual verify) dev 2026-06-01 16:32:44 -05:00
  • 3d000c70ff test(store): cover recordTrain validation and getSummary on unknown attr dev 2026-06-01 16:29:25 -05:00
  • 07215e5617 feat(store): recordTrain with pruning and getSummary dev 2026-06-01 16:22:18 -05:00
  • e39758c1af feat(store): _saveDisabled latch and stronger corruption-wipe coverage dev 2026-06-01 16:16:21 -05:00
  • 231890a9e0 feat(store): load/save and target accessors with validation dev 2026-06-01 16:08:42 -05:00
  • 48e51054ca docs(pure): note that summary.perDay is integer-rounded dev 2026-06-01 16:03:27 -05:00
  • 5fd0f5e548 feat(pure): summary with today/week counts and per-day rate dev 2026-06-01 15:54:43 -05:00
  • a2e23341ac refactor(pure): share MS_PER_DAY with tests and document pruneHistory dev 2026-06-01 15:48:52 -05:00
  • ca753bf196 feat(pure): pruneHistory with strict 30-day window dev 2026-06-01 15:42:37 -05:00
  • 757139624f refactor(pure): extract MS_PER_DAY constant and document computeEstimate precondition dev 2026-06-01 15:36:56 -05:00
  • faae7702aa feat(pure): computeEstimate with safe division and target-reached handling dev 2026-06-01 15:30:07 -05:00
  • 545cf65beb refactor(pure): remove duplicate regex and dead empty-string guard dev 2026-06-01 15:24:55 -05:00
  • e0540468c3 feat(pure): parseTarget with comma and magnitude suffix support dev 2026-06-01 15:16:12 -05:00
  • 07ef131d65 chore: broaden .gitignore for logs and OS junk dev 2026-06-01 15:07:26 -05:00
  • b1ab57596d chore: initialize project dev 2026-06-01 15:01:31 -05:00