33 Commits

Author SHA1 Message Date
serversdown d2b54323a4 Merge pull request 'fix(updater): keep auto-updater alive across watcher restarts (v0.4.1)' (#7) from dev into main
Reviewed-on: #7
v0.4.1
2026-06-30 01:32:20 -04:00
serversdown 56d2027d08 chore: add icon.ico so the exe gets the proper program icon
thor-watcher had no icon.ico, so build.bat's 'if exist icon.ico' check
always fell through to building without --icon → PyInstaller's default
Python/floppy icon. Reuse the shared Terra-Mechanics icon from
series3-watcher; build.bat now picks it up automatically (no script
change needed). Rides with the pending 0.4.1 build.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 19:06:48 +00:00
serversdown a92afd64cd fix(updater): keep auto-updater alive across watcher restarts (v0.4.1)
Saving the Settings dialog calls _restart_watcher, which set+replaced the
shared stop_event the updater loop also keyed off — so a settings save
silently killed the auto-updater thread (race: survived one save, died on
the next). Heartbeats kept flowing but the agent stopped checking for /
applying updates until relaunch.

Give the updater its own app-lifetime event (_app_stop), set only on
Exit / when applying an update and untouched by watcher restarts. Adds
test_thor_tray.py (4 lifecycle tests). Bump to v0.4.1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 18:01:58 +00:00
serversdown baf8aade2d Merge pull request 'v0.4.0 - dual send mirror implementation' (#6) from dev into main
Reviewed-on: #6
v0.4.0
2026-06-25 12:36:41 -04:00
serversdown 302934ced6 Merge branch 'main' into dev
main's v0.3.x event-forwarding (delivered via the event-db branch) is
content-identical to dev's, except for older version strings and the
pre-fix MLG timestamp handling that dev's 4742ed9 already superseded.
Keep dev's tree verbatim (-s ours); this only records main as merged so
the dev->main PR for v0.4.0 (mirror dual-send) merges without conflicts.
2026-06-25 15:14:43 +00:00
serversdown 3bef58b8dd chore(release): bump to v0.4.0 — mirror (dual-send) docs
Version bump across series4_ingest.py / tray / settings dialog / installer.iss.
CHANGELOG + README document the optional best-effort mirror server
(mirror_api_url / mirror_sfm_url / mirror_sfm_state_file, default off).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 05:54:14 +00:00
serversdown 3dadac4bcb Merge pull request 'feat: add optional mirror server config' (#5) from feat/mirror-dual-send into dev
Reviewed-on: #5
2026-06-25 01:42:29 -04:00
serversdown 7d22442bad feat: best-effort mirror (dual-send) of heartbeats + events
Optional second destination so each heartbeat and event is posted to a
mirror server (the office NAS) alongside the primary — dual-write to
de-risk the migration. Default off (blank mirror URLs); existing installs
unchanged.

- event_forwarder: mirror_reachable() fast-fail probe + mirror_forward_pass()
  (reliable event mirror with its OWN state file, total exception isolation,
  never raises into the primary path).
- series4_ingest: mirror_api_url/mirror_sfm_url/mirror_sfm_state_file config;
  best-effort heartbeat mirror; isolated event-mirror pass after the primary.
- settings dialog: new 'Mirror' tab.
- 9 new tests incl. the isolation invariant (down mirror = fast no-op that
  never touches primary state). 42 passing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 23:10:50 +00:00
serversdown dae67afeb9 docs: mirror dual-send design spec
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 23:02:47 +00:00
serversdown 997b5f053c chore: bump to version 0.3.1 2026-06-24 22:12:31 +00:00
serversdown 7f2a4a5a96 feat: enhance settings dialog and update check logging 2026-06-24 22:12:31 +00:00
serversdown ac8b58c193 feat: SFM event forwarding added. v0.3.0 2026-06-01 21:31:45 +00:00
serversdown 05429bdda3 Merge pull request 'v0.3.1 bump' (#4) from event-db into main
Reviewed-on: #4
v0.3.1
2026-06-01 17:30:48 -04:00
serversdown 5340332f32 chore: bump to version 0.3.1 2026-06-01 21:29:14 +00:00
serversdown 4870f3ee87 feat: enhance settings dialog and update check logging 2026-05-20 04:06:53 +00:00
serversdown 76387ad17a Merge pull request 'feat: SFM event forwarding added. v0.3.0' (#3) from event-db into main
Reviewed-on: #3
v0.3.0
2026-05-19 18:40:33 -04:00
serversdown 4312efc15c feat: SFM event forwarding added. v0.3.0 2026-05-19 04:31:35 +00:00
claude 4742ed92ba fix: improve MLG file timestamp handling in scan_thordata function. Uses file metadata, not unit reported time. 2026-04-02 17:45:57 -04:00
serversdown 0e2fe7c1e3 Merge pull request 'update to 0.2.0' (#2) from dev into main
Reviewed-on: #2
v0.2.0
2026-03-20 18:23:42 -04:00
claude 8c133f2d6f chore: version bump to 0.2.0, gitignore setup properly
doc: readme updates to 0.2.0.
2026-03-20 18:13:24 -04:00
claude 81fca88475 Feat: full installation wizard/execuctable builder batch file created (to match series3-watcher.
fix: timezone issue. now sends utc.
2026-03-20 17:34:51 -04:00
serversdown de6fd1e437 Merge pull request 'renamed program to ingest from 'emitter'' (#1) from agent into main
Reviewed-on: serversdown/thor-ingest-agent#1
2026-02-06 17:27:49 -05:00
claude edeb6a6eba renamed program to ingest from 'emitter' 2026-02-06 22:26:14 +00:00
claude 896f732bad chore: cleanup config.json leftovers 2026-01-29 21:32:49 +00:00
claude 25336a2c82 chore: update semver to 0.1.2 2026-01-29 21:30:58 +00:00
claude 4c0ce8d2a2 fix: time now sent in UTC to account for terra-view's TZ user settings. 2026-01-29 21:27:19 +00:00
claude 64de24c50d doc update 2025-12-08 20:45:37 -05:00
claude 28a279fef1 config added to gitignore 2025-12-08 20:44:24 -05:00
claude 43aa6a9e63 documentation added 2025-12-08 17:23:20 -05:00
claude 5526a79557 v0.1.1 added config.json, removed hardcode config from code 2025-12-08 16:50:46 -05:00
claude 26be5410e3 increased verbosity 2025-12-08 16:05:07 -05:00
claude 5e7a169e31 debug enabled 2025-12-08 15:46:01 -05:00
claude 1a5d864c13 Initial commit: Series-4 emitter v0.1.0 2025-12-08 15:06:24 -05:00