feat(pi): add Pi and Oh My Pi support#219
Closed
timseriakov wants to merge 2 commits into
Closed
Conversation
293d694 to
383a9e9
Compare
timseriakov
added a commit
to timseriakov/codedash-leaderboard
that referenced
this pull request
May 24, 2026
Add pi and ohmypi to the frontend agent badge color map so production badges use the shared violet styling instead of the unknown-agent fallback. Related to vakovalskii/codbash#219.
Adds Pi and Oh My Pi as first-class agents instead of treating them as a combined sidebar entry. The sidebar exposes separate Pi and Oh My Pi filters, while leaderboard aggregation keeps their stats distinct and renders lowercase badges only in the leaderboard context. Resume reliability: - Scan Pi and Oh My Pi session directories recursively enough to find canonical nested ~/.omp/agent/sessions/<project> JSONL files. - Store resume_target on scanned sessions and use the JSONL path for Pi and Oh My Pi copy, CLI, and UI resume commands. - Pass resumeTarget through /api/launch separately from sessionId so terminal tracking remains keyed by safe IDs while Pi and Oh My Pi resumes can use validated session file paths. - Quote resume targets before passing them to pi/omp launch commands. Analytics/UI: - Split leaderboard agent keys for Pi vs Oh My Pi instead of aggregating under pi. - Remove the combined Pi/OhMyPi install/sidebar item; keep Pi and Oh My Pi as separate sidebar entries. - Keep proper display casing outside Leaderboard and lowercase badges inside Leaderboard. Tests: - node --test - Manual: omp --resume <jsonl path> --print 'respond ok'
383a9e9 to
6314043
Compare
Contributor
Author
|
Superseded by #221 using branch |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds first-class Pi and Oh My Pi support to Codbash.
Pi and Oh My Pi (Fork of Pi) sessions now show up in the dashboard alongside the existing agents, can be searched, previewed, opened in detail, resumed from the UI/CLI, included in analytics, and shown separately in leaderboard stats.
Companion PR
What's new
piand Oh My Pi viaomp, with Settings detection metadata and tests./api/launchflow.PiandOh My Pifilters in the Agents section and Sidebar settings.Implementation details
Backend
src/data.js.agent_variantso Pi and Oh My Pi can share thepitool integration while remaining distinguishable in filters and analytics.resume_targetfor JSONL-backed sessions so resumes can target the exact session file.Frontend
Pi/Oh My Pi; leaderboard badges remain lowercase (pi,ohmypi) to match existing leaderboard style.Tests
test/pi-session.test.js.Test plan
node --testnode --test test/pi-session.test.js test/sidebar-config.test.js test/frontend-escaping.test.js/api/sessionsreturns Pi and Oh My Pi JSONL sessions withresume_target.sessionIdplus JSONLresumeTargetto/api/launch(fetch intercepted; no real terminal/agent launched).piandohmypirows with violet badge styling.Verified locally
node --test→ 142 pass, 0 fail, 2 skippedomp --resume <jsonl path> --print 'respond ok'→okFiles
README.mddocs/ARCHITECTURE.mdbin/cli.jssrc/agents-detect.jssrc/data.jssrc/frontend/analytics.jssrc/frontend/app.jssrc/frontend/calendar.jssrc/frontend/detail.jssrc/frontend/heatmap.jssrc/frontend/index.htmlsrc/frontend/leaderboard.jssrc/frontend/sidebar-config.jssrc/frontend/styles.csssrc/server.jssrc/settings.jssrc/terminals.jstest/agents-detect.test.jstest/frontend-escaping.test.jstest/pi-session.test.jstest/settings.test.jstest/sidebar-config.test.jstest/terminals-windows-launch.test.jstest/wsl-windows.test.js