Commit Graph
7 Commits
Author SHA1 Message Date
KeelrLeek a67462f8ca Results refresher: the server reruns the whole-program check of main (hourly at most, when HEAD moves) and the emulator over the readable set (12-hourly at most, 01:00-06:00, when HEAD moves), so the Logbook's exact and verified tiers stop going stale
- harbor/results_refresh.py, a server thread: one run at a time at idle priority into a .partial file that replaces [reverse] match_results / diffrun_results only when complete (readable.txt beside it from the emulator's printout); the match run holds re_match_program's ltcg-main.lock and waits while another build of main has it
- [logbook] results_refresh, match_every_minutes, behaviour_every_hours, behaviour_window; state in the logbook folder's results.json (per job: commit, start, finish, counts, error; a run in progress), so a restarted server neither repeats a run nor starts one beside a run its predecessor left going, and adopts that run's output
- harbor logbook results shows the schedule; --job match|behaviour asks the server for a run now
- progress view: "Exact and verified as of commit abc1234, 2 hours ago" under the bars, a run in progress and a failed last run
2026-10-06 16:17:14 -05:00
KeelrLeek d5eb82261e Logbook progress map in the style of decomp.dev: "<project> is NN.NN% decompiled", a layered Code bar (exact solid, verified lighter, readable hatched, with per-segment tooltips), a Data bar (named globals of the data addresses the code touches), Previous / Next / Latest through the history reports, a Units dropdown and filter (text, <70%, >10kb), and a canvas treemap of units (original source files, else 64 KB blocks) that drills into functions
- GET /api/logbook/progress-map: one compact document, cached until an input changes (main's HEAD, the Logbook symbol table and statistics, match/emulator/library results, facts, names, source files, globals, deferral notes); ?have=<version> answers {"same": true}
- definitions follow the Logbook's progress.py (pc102.csv category game, status decompiled or later), so the headline equals game_bytes_decompiled_percent; engine, library and unsorted code are shown but not counted
- history points now record the commit and the game-code bytes
- the page lays out once per load, filter or size change, hit-tests hover on the computed rectangles, builds the 600-entry units list only when opened, and polls once a minute only while the Logbook is visible
2026-10-06 15:46:42 -05:00
KeelrLeek 580fcfacb4 Chat: render a bounded window and append new messages instead of rebuilding the log; polls back off while hidden
Opening the chat froze the machine: the log rendered all ~800 loaded messages (1.1 M characters, ~10,000 nodes,
a 440,000 px column) and rebuilt the whole log on every new message, receipt change and mark refresh - about
1.8 s of blocked main thread each time. Now:
- the log keeps the newest 150 rows; "Load earlier" adds 150 more (from memory, then the server) and keeps the
  reader's place; switching person or thread starts again at 150
- new messages are appended; a changed receipt, pin, correction or answer repaints only its row
- off-screen rows skip layout and paint (content-visibility); the Intl date formatters are made once
- polls go through every(): no overlapping requests; while the tab is hidden messages poll every 10 s (sound and
  notifications still work), people every 60 s, the overview every 30 s, and the marks refresh and board panels pause
- removed the backdrop-filter blurs on the sidebar, top bar and composer, and the live dot's endless box-shadow
  animation (now opacity)

Measured: forced full render 1,600-1,850 ms -> 16-21 ms (hidden pane, render + layout); load long task 1,806 ms -> 56 ms;
DOM 13,318 -> 5,282 nodes (log 9,870 -> 1,806); a new message appends 2 nodes with no long task; hidden-tab traffic
~37 requests / ~2 MB per 30 s -> 4 requests / 156 KB.
2026-10-05 18:35:39 -05:00
KeelrLeek 0d764799a7 Logbook: lead with '% done' (functions handled out of all 10,673), game functions decompiled, and unsorted; trend tracks done 2026-10-05 16:43:54 -05:00
KeelrLeek b7e09cfbd1 Logbook lives in Harbor and keeps itself current
The board's Logbook view replaces the published page: statistics, the chart
of the executable, where the code stands (with the function tiers), the
trend, milestones and the ship's log, stored as JSON in the Harbor home.
A server thread follows main: each new commit becomes a log entry and the
statistics, chart and trend point are rebuilt with the open-seas progress
tools on a scratch copy. 'harbor logbook add|stats|map|milestone|refresh'.
2026-10-05 16:30:21 -05:00
KeelrLeek 87631bec52 Board: Decomp view (progress tiers, function inspector, next up per band, deferred) and RE tools in Health; Verified tier from the emulator 2026-10-05 16:08:51 -05:00
KeelrLeek dbfd1720c5 Harbor as of 2026-10-05: the coordination hub for the Open Sea's decomp team
Messages, threads, acknowledgements, claims, bands, tasks, review items and
stop flags for a team of AI agents; the chat page and board; host hooks and
MCP server; autopilot; tools/watch.py. Put under version control after the
weekend's changes so they have history and can be rolled back. Local only.
2026-10-05 10:44:23 -05:00