No-AI desktop path: PyQt bot wired to the page
- templates/bot_runner.py (new, no Qt): runs the bot as a child process (unbuffered, UTF-8), tails its output, keeps raw lines in bot_raw.log, and turns lines into step/log/status events. Step markers and friendly rules use specific substrings, first match wins; unmatched error lines are always shown, other unmatched lines hidden. Dry run: python dashboard/bot_runner.py prints the events the page would get. - bridge.py: delegates to bot_runner, one run at a time, restores the saved dark mode on every page load (fixes sample-data mode in PyQt), adds load_latest_report / download_report slots the page calls. - SKILL.md: skip the stack question for a PyQt project; desktop wiring steps from the bot's real output; verify steps for the host. - tests: assert-based self-check for the line logic and run loop; Seam 1 run replay (status dot, Run button, steps, log) and wired-page mode; fixture b-pyqt-bot and its Seam 2 eval (all 14 checks pass). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3eb3fdf00e
commit
162edd41df
17 files changed
+753
-47
No files matched your search
@@ -0,0 +1,19 @@
|
||||
{"event": "status", "data": {"state": "running", "msg": "Running\u2026"}}
|
||||
{"event": "step", "data": {"label": "Initializing", "pct": 10}}
|
||||
{"event": "log", "data": {"msg": "Starting up.", "type": "info"}}
|
||||
{"event": "log", "data": {"msg": "Work items loaded.", "type": "info"}}
|
||||
{"event": "step", "data": {"label": "Login", "pct": 30}}
|
||||
{"event": "log", "data": {"msg": "Logging in to the portal.", "type": "info"}}
|
||||
{"event": "log", "data": {"msg": "Logged in.", "type": "success"}}
|
||||
{"event": "step", "data": {"label": "Process work items", "pct": 50}}
|
||||
{"event": "log", "data": {"msg": "Processing work items.", "type": "info"}}
|
||||
{"event": "log", "data": {"msg": "Work item updated.", "type": "success"}}
|
||||
{"event": "log", "data": {"msg": "Work item updated.", "type": "success"}}
|
||||
{"event": "log", "data": {"msg": "Work item updated.", "type": "success"}}
|
||||
{"event": "log", "data": {"msg": "The portal is slow to respond.", "type": "warn"}}
|
||||
{"event": "log", "data": {"msg": "ERROR: could not attach the note to WI-1003", "type": "error"}}
|
||||
{"event": "step", "data": {"label": "Write summary", "pct": 85}}
|
||||
{"event": "log", "data": {"msg": "Writing the summary.", "type": "info"}}
|
||||
{"event": "step", "data": {"label": "Completed", "pct": 100}}
|
||||
{"event": "log", "data": {"msg": "All work items processed.", "type": "success"}}
|
||||
{"event": "status", "data": {"state": "done", "msg": "Completed"}}
|
||||
Reference in new issue
Block a user