Add the oss-oo-lab plugin: laboratory gateway and CI tracking #1
Loading…
Reference in a new issue
No description provided.
Delete branch "oss-oo/oss-oo-lab-plugin-20261027"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Claude Code sessions cannot follow oss-oo.io pull requests with the desktop app's PR/CI monitor: it accepts only GitHub-style
/pull/<n>URLs, and Forgejo uses/pulls/<n>. This PR adds a Claude Code plugin,oss-oo-lab, that closes the gap without rebuilding what the laboratory already serves.What it adds
.mcp.json): the existing remote MCP gatewayhttps://oss-oo.io/mcp(repos, issues, PRs, merges, memory, hand-offs). AheadersHelperreads the agent token from the desktop keyring.lab/labci.py): stdlib Python, GET-only. It goes from the PR head to runs byhead_sha(re-checked againstcommit_sha), then to jobs, steps and a verdict. Matching is always by id, never by title. Job logs are cut to a step's time window, with failure lines first. A CLI (ci,log,watch,gateway-headers) serves any agent or shell.hooks/register.tsx):lab_ci,lab_ci_log,lab_watch,lab_unwatch<lab-ci-event>that wakes the session when a watched PR's CI is final, with the failed step and a log excerpt marked as data/lab-watch,/lab-unwatch,/lab-ciskills/oss-oo-lab): WIP drafts (WIP:→draft: true,mergeable: false), watching instead of polling, merging.assets/): the plugin icon and repository avatar (1024×1024) and the social preview (1280×640), rendered byassets/src/render.pyfrom the laboratory's oss-oo brand pack. Rendering is deterministic and--checkguards it. The artwork is CC BY-SA 4.0 like the pack; seeassets/ATTRIBUTION.md.Verification
sh scripts/check.sh: 14 Python unit tests OK;claude plugin validate .passed;claude plugin test .passed 8 of 8 (watch → wake once, failure excerpt, wake off, tool errors, registrar guard, pane on terminal and desktop).claude -p --plugin-dir <checkout>run with no installation:lab_ciread OSS-OO/laboratory#156: 2 runs, 2 jobs, 16 + 8 steps, verdict success.headersHelperandget_pull_requestanswered.get_pull_requestreturns nomergedfield.labci.py watch OSS-OO/claude-plugin#1). It tracked three pushes, each by its new run id (1981, 1982, 1983; Forgejo cancelled the superseded runs), and exited 0 onrun 1983 … success,job 4929 check success (5/5 steps).labci.py log OSS-OO/claude-plugin 4929 --step 3showed the runner'sRan 15 tests … OK.a2308e2(assets) is green: run 1984, job 4930, 5/5 steps, also read with the plugin's ownwatch.~/tools/oss-oo-lab.lab_watch OSS-OO/claude-plugin#1and ended its turn.3a8e1f3, run 1994 finished at 12:48:19Z.<lab-ci-event target="OSS-OO/claude-plugin#1" verdict="success" sha="3a8e1f33…">and the CI summary.lab_ci(overview) andlab_unwatch allthen answered as designed.bind_prrefused this PR's URL: it expectshttps://<host>/<owner>/<repo>/pull/<number>.--- FAILlines first.Not done here
https://oss-oo.io/OSS-OO/claude-plugin.git) waits for the plugin to be onmain.tsctype-check: TypeScript is not installed on the station.claude plugin validateand the test runner compile the module.🤖 Generated with Claude Code