Add rpa-run-tab skill: Tebra-style Run tab in 5 minutes
The Run tab from Tebra Auto Post, scrubbed and themable (Tebra Sky, TVL Teal, or a custom hex checked for contrast). The skill wires the real bot through tagged log-file lines and checks itself with a fake bot (complete, partial, stuck, crash) plus light and dark screenshots. Grill decisions R1-R14 are in PLAN.md, terms in GLOSSARY.md, and ADRs 0001-0003. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8bb1cf268e
commit
258bfbb500
18 files changed
+1712
-2
No files matched your search
@@ -113,3 +113,54 @@ rpa-dashboard-ai/
|
||||
- asks the questions in order,
|
||||
- reports any existing frontend,
|
||||
- produces a working dashboard page that renders in light and dark.
|
||||
|
||||
---
|
||||
|
||||
# Plan: `rpa-run-tab` skill (third skill)
|
||||
|
||||
Goal: a skill that adds Tebra Auto Post's **Run tab** to any desktop RPA project in **5 minutes**. The look is the same as Tebra; only the colours are the user's choice.
|
||||
- Source: `D:\Tebra_Auto_Post` `src/ui/main_window.py`. The Run tab code is at lines 1871–3979 (page) and 268–1142 (bridge).
|
||||
- Also `run_app.py` (the `--run-automation` child process) and `core.py` (`wd_mark`).
|
||||
- Take the tokenised accent from `D:\Tebra_Auto_Post_TVL`. Bundle a scrubbed template; never read D:\ at runtime.
|
||||
- Terms are in `GLOSSARY.md`; decisions are in `docs/adr/0001`–`0003`.
|
||||
|
||||
## Decisions (from the grill)
|
||||
|
||||
| # | Question | Decision |
|
||||
|---|---|---|
|
||||
| R1 | Skill shape | A new standalone skill, `D:\RPA SKILLS\rpa-run-tab\`. Later, `rpa-dashboard-no-ai` points to it instead of keeping its own Run panel. |
|
||||
| R2 | DB parts (batch chip, resume, clear-approval, roles) | **Left out.** No DB needed. Clear file just clears the file. |
|
||||
| R3 | Stack | **Desktop only**: PyQt6 + QWebEngine. Runs from Python or a PyInstaller exe. |
|
||||
| R4 | Input | Excel input card by default, with sheet tabs, a 200-row preview and password columns masked. **Hidden** for bots that take no file; the Trigger button is then ready straight away. |
|
||||
| R5 | Steps vs checkpoints | **One checkpoint list** (name + time limit) drives the steps, the boxes and the progress %. See ADR-0001. |
|
||||
| R6 | Stuck | Kill the process tree and end as failed "Stuck at X". No auto-restart. See ADR-0003. |
|
||||
| R7 | On-screen log | The bot tags lines `[UI]`, `[UI:ok]`, `[UI:warn]`, `[UI:error]`. Errors and tracebacks always show. All raw lines go to the run log file. See ADR-0002. |
|
||||
| R8 | Host | **Detect.** Add a tab to an existing PyQt web-view page or dashboard. Otherwise build a new window: Tebra top bar + Run tab, no sidebar. |
|
||||
| R9 | Colours | Presets: 1) Tebra Sky, 2) TVL Teal, 3) Custom hex. A custom hex is turned into gradient and accent colours for light and dark, with a contrast check. ok/warn/bad and the log colours stay fixed. |
|
||||
| R10 | Scope of the 5 minutes | Page **plus the real bot wired**. The skill reads the bot and proposes a checkpoint list for the user to confirm in one reply. It then adds the `[CPSTATE]`, `[UI]` and `__RUN_SUMMARY__` prints. |
|
||||
| R11 | Endings | Green "Completed in …". Amber "Finished: N of M failed", with the failed items in the log. Red "Failed after …" or "Stuck at X". |
|
||||
| R12 | Stop | **No Stop or Pause**, same as Tebra. Closing the window asks first, then kills the process tree. |
|
||||
| R13 | Sample input | A headers-only sample built from the sheets and columns the bot reads, plus one fake row. The button is hidden if the skill can't tell. Never real data. |
|
||||
| R14 | Verify | **Fake bot only.** It covers completed, partial and stuck runs in light and dark. The skill never presses Trigger on the real bot. |
|
||||
|
||||
## Kept from Tebra as is
|
||||
- Glass cards and the sky gradient. The Segoe UI font. The Consolas log with no timestamps.
|
||||
- The dark toggle, saved to QSettings.
|
||||
- The status dot: ready / running / done / error.
|
||||
- Elapsed timers on the progress bar and on each checkpoint box.
|
||||
- Progress only ever moves forward. Consecutive duplicate log lines are dropped.
|
||||
- A double-run guard. The parent-death watcher in the child process.
|
||||
- Python → page messages go through `window.__pyMsg` only, never also through `js_message.connect`, which delivers every message twice.
|
||||
|
||||
## Tebra bugs not to copy
|
||||
- A partial failure shows "Completed" at 100%. Fixed by R11.
|
||||
- `STOP_REQUESTED` set only in the parent process. There is no Stop, and reload no longer fakes "Stopped by user".
|
||||
- The checkpoint time limit in JS (300) and in Python (600) disagree. One list (R5) fixes this.
|
||||
- Dead CSS and JS: `.top-ctrl-btn`, `.run-btn`, `showRerunModal`, `#rerun-mask`.
|
||||
|
||||
## Runtime questions (keep to ≤3 for the 5-minute budget)
|
||||
1. Colour: preset or custom hex.
|
||||
2. Confirm the proposed checkpoint list, with names and time limits.
|
||||
3. Excel input or no input. Skip this when the bot reading clearly answers it.
|
||||
|
||||
The title and subtitle come from the project name. The user can edit them later.
|
||||
Reference in new issue
Block a user