Playing around with automation via custom agent harness to run and test Omarchy releases
by ThePrimeagenTypeScript
Last 12 weeks · 289 commits
0 of 6 standards met
Summary Adds the Omarchy acceptance-test review under : 468 runnable plans plus a 37-test appendix of stories that cannot run on the resumed minted disk. Adds , one line per runnable plan, grouped by domain, with a short description of each. no longer narrates the screen. After the arrow keys the menu is still open, so the next Super+Space closes it and the one after that opens it. The 468 runnable definitions are stored in production. is v8. is v2. The appendix is not stored. Test plan [ ] Confirm lists 468 names and matches [ ] Read the instruction: close, then open, with no description of the card [ ] Do not run without ; that tickets every stored definition
The automation sidebar rests on a ticket, and the bottom two-thirds of the main area is that ticket's session. and skip client headers and stop on tickets. and do the same. With no tickets the cursor stays put. The session pane shows the ticket's calls, intent, and last image, and follows the live stream. It steps aside while holds that stream. A refused stream stays in the pane; the footer is left alone. opens the newest wording of the ticket's test definition. Enter shows the ticket. still opens the Linear ticket. asks before aborting; shift-a does not. Missing definition, a database error, or no selected job is a footer sentence and opens nothing. still asks first and defaults to no.
Running jobs in show a Braille spinner and how long they have been going, instead of the words drive and diagnose. Green () while a job is being driven, blue () while it is being diagnosed. Rosé Pine has no unambiguous green or blue (pine is teal, leaf is sage), so these sit outside that palette. The frames are the Braille spinner the follow view already turns (), every 80ms, on a fixed interval so the glyph does not skip. A running row replaces the action word with the started age (). Pending and finished rows still name drive or diagnose. The action column is ten wide so , the longest minute reading, is not cut. The header stays because waiting rows still name the action there.
Summary on the job under the gold marker — on a card or in the queue — asks first: a box in the middle of the screen titled reads with and under it, the marker on . , and the arrows move the marker, enter selects, escape closes. Yes sends to the automation server with the bearer. A job that turns out to be over already gets a three-second pop-up saying . viz (, , , , ): is a capital (shift, deliberately, as is). While the question is up it has the keys: / → yes, / → no, enter and escape close it, and nothing else moves (the board underneath, , , are all held; still quits). Enter on yes is the runner's: the abort runs off the key loop as a forked fiber, so a server that never answers holds no key. The server's url is the new (), read when is pressed so viz still opens without it and the footer says otherwise. On the board is re-read at once, so the job is gone as the footer says . On — nothing of the job pending or running any more, which on this board is a job that finished since the last read — the pop-up goes up for (3 s): keys under it still move the board, the clock alone takes it down, and a later pop-up restarts the three seconds. Any other refusal, or an unreachable server, lands on the footer in the server's words (, , ). One abort is in flight at a time: another before the answer says and asks nothing. on a card header says ; on a job without a ticket, . The footer's key row gains ; names the key and the variable. The question and the pop-up share one wrapper in ; the question's rows and title are pure functions in (, ), the box wide so its borders hold the job's name and the keys. Automation server (, ): now closes a pending job too, through — one , so a claim in flight either never sees the row or has made it running, which the existing lookup then finds and stops at its client. Before, only the dashboard could abort a pending job, by writing the row itself; the dashboard is unchanged and still works the same way. The refusal for a job that is over, or a ticket never queued, now reads (was ); is unchanged. The pending close logs under the ticket; says so. Not done, flagged: the dashboard's abort also moves the ticket to on the Linear board; viz's does not (it has no Linear token). A follow-up if wanted. Reviewed for simplicity (Grok, per ) before the question was added: the one-in-flight rule, the abort's checks written inline like 's, an exhaustive in the repo's idiom, a dropped guard and a dropped constant-equality test come from that review. Declined: joining the url with — every Effect-side client here joins , and would turn a malformed variable into a defect where the client reports a failure. Testing : lint, format, types, 1390 unit tests green. Tests were written first: (, , the question's keys — h/l/arrows between yes and no, escape and enter close, every other key moves nothing, a peek and a pop-up underneath stay — /, A moves nothing, no key takes the pop-up down), (the question boxed in the middle with its title, , the marked answer and the keys on its border, the board untouched around it, marker following the answer, over a peek, under a pop-up; the pop-up centred over the board and over a full follow), (A asks and enter on no sends nothing, h/l/arrows move the marker, enter on yes sends; while the question is up j/k/tab/L/F do nothing, escape closes, q quits with it up; confirmed aborts on a card job and a queued pending job: request url, bearer, body, immediate re-read, footer; 400 → pop-up for 3 s under , keys neither dismiss nor wait, a second abort restarts the clock; header, no ticket, / unset, 401 and 500 reasons, unreachable server, a server that never answers holds no key, one abort in flight at a time), (pending job closes with no client call and the log line; a pending diagnose closes beside a running drive; the new refusal text), fakes in . Integration, against a local PostgreSQL 16 (Docker is absent here, so the Testcontainers lane skipped; the same files were pointed at a migrated local database): , and the whole group with the spawned server — including the new — pass. PTY cases pass. Manual, in a 140×40 PTY and in xfce4-terminal against the real on the local database and a stand-in automation client: on pending → the question; enter on → closed, nothing sent; , , , , / (board held), enter on → server log , row , gone from the queue at once, footer ; completed behind viz's back → , yes → pop-up for ~3 s over a board that kept re-reading; running from garage's card → , escape → nothing; , yes → the server called the client's , row closed, job off the card and the queue; → exit 0. viz_a_asks_are_you_sure_yes_no_with_hl_and_arrows_then_aborts_popup_escape_quit.mp4 A the pop-up over the live board after a confirmed abort of the running OLI-61: gone from card and queue, footer says aborted To show artifacts inline, enable in settings.
Repository: ThePrimeagen/Oligarchy. Description: Playing around with automation via custom agent harness to run and test Omarchy releases Stars: 42, Forks: 1. Primary language: TypeScript. Languages: TypeScript (97.9%), Shell (0.9%), HTML (0.6%), CSS (0.5%), JavaScript (0%). Open PRs: 19, open issues: 0. Last activity: 1m ago. Community health: 14%. Top contributors: ThePrimeagen, cursoragent.