forked from Keelrleek/Harbor
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
This commit is contained in:
1 parent
315b63b571
commit
d5eb82261e
5 files changed
+556
-4
No files matched your search
+5
-2
@@ -4,7 +4,8 @@ executable, the trend, milestones and the ship's log. (It replaced a separately
|
||||
One JSON file per collection in the project's logbook folder ([logbook] dir, default <harbor home>/logbook/<project>):
|
||||
stats.json the latest statistics (functions, bytes, by_category, percentages, commit, updated_at)
|
||||
map.json the chart of the executable (low, high, cells: "game,engine,platform,crt,unsorted,done" per cell)
|
||||
history.json [{at, classified, decompiled, weighted, verified}] one point per statistics report
|
||||
history.json [{at, classified, done, decompiled, weighted, verified, commit, game_bytes}] one point per
|
||||
statistics report (commit and game_bytes since 2026-10-06)
|
||||
milestones.json [{id, code, title, phase, state, order, items: [{text, done}]}]
|
||||
log.json [{id, at, kind, title, detail}] the ship's log, newest last
|
||||
Writes replace the file atomically. Nothing here talks to the network."""
|
||||
@@ -93,7 +94,9 @@ def set_stats(project, stats, history_point=True):
|
||||
"done": round(100 * handled / total, 2) if total else 0,
|
||||
"decompiled": stats.get("game_bytes_decompiled_percent", 0),
|
||||
"weighted": stats.get("weighted_percent", 0),
|
||||
"verified": stats.get("game_bytes_verified_percent", 0)})
|
||||
"verified": stats.get("game_bytes_verified_percent", 0),
|
||||
**({"commit": stats["commit"]} if stats.get("commit") else {}),
|
||||
**({"game_bytes": cats["game"]["bytes"]} if (cats.get("game") or {}).get("bytes") else {})})
|
||||
_write(project, "history.json", history)
|
||||
return stats
|
||||
|
||||
|
||||
Reference in new issue
Block a user