Yeaboi

Latest version: v3.23.0

Safety actively analyzes 993520 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 18

3.23.0

41 commits since `v3.22.0` (2026-08-19).

**3.23.0** — The poker and retro live boards have been redesigned on a shared component kit with a unified design system. The new design introduces an elevation ladder, radius and motion scales, and vendored icon set that powers both boards. Retro cards are now draggable with GPU-accelerated transforms, reactions are displayed as a glass tray, and the facilitator controls moved to a right rail with real history of past retros and AI-powered action-item suggestions. Poker gained a dynamic duel experience with proper turn announcement, an improved table layout, and the duck mascot that responds to game events. Both boards now survive small windows down to 16px and share a unified toolbar and room roster.
· Retro cards are now draggable with GPU-accelerated transforms and glass-tray reactions `[retro]`
· Facilitator rail shows retro history and provides admin-gated AI action-item suggestions `[retro]`
· Poker duel experience redesigned with proper turn announcement and improved table layout `[planning]`
· Unified design system shared between poker and retro: elevation ladder, motion scales, and shared icon set `[retro, planning, general]`
· Both boards now survive small windows and adapt gracefully on mobile devices `[retro, planning]`

<details><summary>35 commits</summary>

- aa91ff5b chore: bump version to 3.23.0 [auto]
- 70f63e1a retro: register the history engine, and name the mask's opaque stop
- 4b0a9b46 chore: bump version to 3.22.0 [auto]
- 191e67a7 web: rebuild the bundles
- 7eca6ddd retro: the invite panel knows why there is no link
- 9b99b7f9 retro: the invite panel says why there is no link
- b3ba07ad retro: the read-only notice leaves the way it arrived
- 1e802ebb retro: say why nothing can be written, at the foot of the board
- 997ae3df retro: writing a card is the same two keys as changing one
- f0fa7d55 retro: editing a card is a caret, not a form
- 3158754b retro: the rail moves right, and says what it does
- d1657b6c retro: drop the picker that used to live in the bar
- 6978b9d2 retro: the picker sits between its arrows
- ca473fe2 retro: the rail is built out of the kit, not beside it
- 8fec3f66 retro: the facilitator's column is on the left
- 9c0b0e14 retro: the facilitator gets a column, and switching sprints is a move
- ce473092 retro: AI action items from the board, and a way back through past retros
- 86770234 retro: the board opens on the last retro
- 9fcb86f2 retro: the walkthrough panel shows the room, not a list of names
- 60b710e1 retro: the walkthrough is a shared panel, and the invite is poker's
- a91e6e7a retro: the walkthrough panel fits on the screen
- 996381cd retro: reactions arrive and leave, and two things stop taking a row
- 7dea7710 retro: no confetti up the screen, and a reaction is the emoji
- f64e0316 retro: a reaction does not resize the card it is on
- aea4b9df retro: the reaction tray is glass
- b65a8bd8 retro: the fold does not drop a frame, and three surfaces stop being surfaces
- 6640855c retro: the draft unfolds and folds away, and a card opens where you read it
- 272da976 retro: the notch's Invite and the roster, both as poker draws them
- f6008b11 retro: the cards below close the gap, and the landing is exact
- 4ae02bb3 retro: nothing animates on load, and nothing slides on a drop
- 6e9b27d5 retro: the board moves as one thing
- 00ee8fa6 retro: a drag that keeps up, and three controls the board no longer needs
- 492e165f retro: cards you can pick up, on a board that stopped painting itself
- 7902d6de retro: the board in the poker material, and equal columns
- 369c9b08 retro: first draft on the board kit

</details>



What's Changed
* redesign the poker and retro boards on a shared kit by neakoh in https://github.com/dinho149/yeaboi.ai/pull/304


**Full Changelog**: https://github.com/dinho149/yeaboi.ai/compare/v3.22.0...v3.23.0

3.22.0

133 commits since `v3.21.0` (2026-08-19).

**3.22.0** — The planning-poker board is redesigned with a new shared design kit that all browser-facing surfaces now build on. An elevation ladder, radius and motion scales, and a vendored icon set replace per-board glyph strings. The shared board kit (frontend/src/shared/board/) unifies the rail, roster, notch, dock and other components across retro and poker into one Button and one Dropdown that replace five previous variants. The poker board itself now has one entrance instead of three, an announced turn, a dancing duck that faces the page and sleeps during locks, and glyphs drawn on a grid that survives 16px windows. A light-theme contrast audit now runs and enforces contrast minimums. All built outputs are committed; no Node runtime is needed for pip install yeaboi.
· Planning poker board redesigned with new entrance, announced turns, and a grid-based glyph set that renders at any window size `[planning]`
· Shared board kit unifies retro and poker surfaces with one Button, one Dropdown, and consistent rail/roster/notch/dock components `[general]`
· Design basis established: elevation ladder, radius and motion scales, and vendored icon set replace board-local glyph strings `[general]`
· Light theme contrast audit now active and enforced for all browser surfaces `[general]`
· Duck character gains real animation: faces the page, dances to the music, sleeps during locks, and bounces with physics `[planning]`

<details><summary>130 commits</summary>

- a79a53a3 test: the ship page's substring guards read the markup, not the payloads
- c9298055 chore: bump version to 3.22.0 [auto]
- 07bc5fa1 web: the board's scaffolding joins the kit, and a console becomes an aside
- 2476d373 web: lift the board kit out of poker, so the next surface starts where it finished
- 252477fd poker: a duelist's mic goes back when the floor closes
- d29c60e6 test: the light theme's contrast audit was never actually running
- 4fb377a9 board: one entrance for the duelists, not three
- f5bc2d71 board: people travel between the table and the floor
- 13df7899 board: a chair is empty while its occupant is on the floor
- 5d37e5a8 board: the duelists get out of their chairs, and a full room opens smoothly
- 4c2894c2 board: the turn is announced over the whole screen, and the rest of the room watches
- 757ea0ca board: Edit takes the shape of the row it is in
- 4269cbff board: draw the board's glyphs on a grid that survives 16px, and move them
- 64fa25ce board: the dock takes the top bar's corner
- 0f1871b9 board: read the window again once it has stopped moving
- 2f19a801 board: the screen's corners round off rather than appear
- 9ddeae67 board: ask where the viewport starts, not how big two things are
- 8d80beab board: the duck dances while the music is on
- b686d1ae board: the duck sleeps through a lock, and arrives only on arrival
- b739bc6b board: face the duck into the page, and stop the screen curving against browser chrome
- 99dbfc46 web: the console stays a column below the wide breakpoint
- 44959b8c web: a console sheet you cannot see through, and a hand sized off itself
- 6455c1f8 web: a hand that fits one line, and a ticket that cannot be squeezed to nothing
- b73487c2 web: the lift is the fraction of the way up the pointer is
- f35abd44 web: the tether is a ratio of the screen, so it spans the whole board
- 2a95df50 web: the dock has some give while it is dragged, and the tether reaches the top bar
- 7157fd02 web: the dock leans toward the pointer and drops back with some weight
- aaf4902f poker: a second host tab is not evidence the first one stopped
- 1b518976 poker: a tab that interrupted its own recording offers to pick it back up
- 34d21cfb poker: the light cannot outlive the recording
- b4d3c270 poker: the room mic is board state, so the whole room sees the light
- a16763f8 web: the mic is always offered, and says whether it is armed or recording
- 71104ddf web: the recording sign is a light beside the headcount
- 01aef91e web: the room can see it is being recorded, from the bar
- 7d8be099 web: one mic, the host's, and it records the room rather than a turn
- 6be79a12 web: the floor's controls stand between the two people they act on
- 3f303946 web: the row of faces is the table, so it needs no label
- 2fc5aed1 web: the no-mic warning is the host's console's to report
- bce12191 web: the floor sets itself up a row at a time, and the clock stands between the two
- 12a372aa web: the seats spread across the table instead of stacking on its left edge
- 3c4fb2ac web: the floor is a third tab, not a card under the results
- ae872a87 web: the board starts where the bar does, and the duel panel joins the material
- bbfe830d web: the outer columns hold their content at the same inset, and the room cards breathe
- 785f9e78 web: the console leaves room for the ring, and a seat is as wide as its name
- 80343ad5 web: the chromeless exclusions weigh nothing, so a filled button keeps its fill
- 4d61daea web: the room takes its shadow on the way out, and a bare button stays bare
- 98104472 web: colour survives disabling, the bar matches the screen's curve, and the room stops stacking shadows
- 315046e7 web: one material for every control on the board, and the seat is the face
- 51ff6aab web: the console's controls are furniture, not form controls
- 6aca2e15 web: the room settles lower, with room between the cards
- cedf9914 web: the tool panel stands above the notch, and every icon lands on the pixel grid
- a8cfcced web: the room slides out from under the bar, one width for every card
- ad7d781d web: the room deals itself out on hover, and the dock is a lifted pill
- 0aee711c web: the hand is cut off by the screen edge, and the board stops scrolling as one
- 49589597 web: the column comes down with the hand, and the perspective writes itself in
- 2e3c40bc web: the closed hand hangs off the bottom edge, and the results take a tab
- dde4d1e0 web: the bar has no notch, the perspective is a section, the floor opens on a track
- f22b4f7c web: the results are not fenced off from the table above them
- 4147dfe0 web: the avatars are the emoji, at the size of emoji
- 82878cb3 web: a dialog wide enough for its content, and an action the width of it
- 0c3c0b94 poker: the lock stops moving the table, and the avatars are just avatars
- 24a6e113 poker: the readout folds out as well as in
- 4be9a741 web: things that appear now leave the same way
- b372f1d1 poker: the timer has one action, and it is whichever one there is
- eb76120f poker: three small ones the board was getting wrong
- 14b62dd1 poker: the pickers have something to pick, and light gets its own elevation
- 06cf0bf2 poker: the station list escapes the notch, and the pager reads as a control
- 37a5c576 poker: the pager moves to the ticket, and the music says it is working
- d278a8db auth: say it is Claude Code; web: one grammar for the notch panels
- 90056b1b poker: say why the AI failed, and stop the dev board writing to Jira
- b61e53f8 poker: the notch collapses on the way out too
- 7ee521dd poker: an on toggle in the notch is coloured, not ringed
- 877e1b46 poker: the notch grows the panel, and wears the masthead's material
- 15454286 poker: one wall for the dock, and the panel grows out of it
- ea2e97ce design: give midnight an elevation ladder, and quieten the frame again
- a005c69e poker: the screen frame comes back, at a weight you can see
- 37f3ed87 poker: the ticket's properties are pickers, and the frame is gone
- 5ef99430 poker: the whole ticket is editable, and it all reaches the tracker
- f6df4578 poker: the dock stops flying in, and the pills match
- a1367e1f poker: the editor renders as the ticket, not as a form
- 85b6ead3 poker: the ticket edits in place
- 31e82e49 poker: the dock crawls round the corner a control at a time
- 2e55313f poker: the dock has a handle worth grabbing
- 86f0a126 poker: panels grow out of the notch, and icons get their lines back
- a50feee7 poker: the edit button rides with the ticket it edits
- 20b07329 poker: popovers fit themselves, and the invite leads with the link
- 4102bd49 poker: the QR works locally, and four regressions of mine
- 0c00769f poker: draw the wordmark instead of typesetting it
- f16aae50 poker: the ticket's facts are properties, and the masthead stops clipping
- 25663113 poker: a real analyser, and an elevation scale
- 60d93e72 poker: the dock no longer snaps under the cursor
- d28e451c poker: the dock stops styling the popovers it contains
- 4bb65c35 poker: the dock crawls round the corner
- 76206dba poker: the dock cannot leave the wall
- e0ed5a44 poker: notices are a line, not a band
- 451fc7b9 poker: the dock moves, and holds no empty slots
- d68092ae web: ship the typeface, and drop the court art
- 249f4032 poker: take the chrome off, and let the type carry it
- 5832296b poker: sink the wells, raise the controls
- cf12e36f poker: put the board on a material system
- 4cfabb10 poker: cast a court, and give the console one primary
- 4f24bf49 poker: give the surfaces a lit edge
- 02fb94c5 poker: the ticket's chips sit with the title
- 41d4d7f7 poker: stop hiding the ticket body, and draw a tie as a tie
- c29175b4 poker: put the seats back at the table
- 2c685dfc poker: neutralise the deck, drop the outlines, set a measure
- 9f4f1a6c poker: the columns fill the screen
- f8f7000a design: apply the basis — elevation, radius, motion, icons
- a03a5075 design: vendor an icon set
- 34274afd poker: bare controls in the notch, and put it on the grid
- d2d64554 poker: connect the fillets to the dock's edges
- 3ea893fc poker: the dock is a lifted section of the bottom border
- a4ff260d poker: fillet the dock's other join too
- 08bb8188 poker: draw the fillet as a ring, not a rounded corner
- 7864276b poker: fillet the inside corner where the dock leaves the frame
- e37bb4b2 poker: round the dock's top-right, close it when it is lifted
- f9adb279 poker: the dock replaces the frame's border, not doubles it
- 761a4971 poker: dock into the frame corner, strip the ticket panel
- bc1ef1fc poker: lift the frame over the dock, fill the column
- f96cccee poker: seat the dock in the frame, balance the bar
- 3ded6db9 poker: dock the tools bottom-right, like the TUI
- 91999951 poker: bigger cards, banded by value
- aa236818 poker: centre the title against the wordmark, drop the divider
- eafac0a4 poker: identity and toolbar share one row
- 38c3afdd poker: the table loses its panel and sits on the deck
- 326f81f4 poker: sit the table with the deck at the bottom of the column
- 80a94ef2 poker: float the chrome, anchor the deck, drop the footer
- 103bafb6 web: jet-black corners, and a comment rule to write to
- c74619a7 web: the frame goes to the glass, and dev boards keep their token
- d9a90725 web: the board is one framed screen, and modals centre again

</details>



What's Changed
* redesign the planning-poker board, and build the shared kit it needs by neakoh in https://github.com/dinho149/yeaboi.ai/pull/305


**Full Changelog**: https://github.com/dinho149/yeaboi.ai/compare/v3.21.0...v3.22.0

3.21.0

1 commits since `v3.20.0` (2026-08-18).

**3.21.0** — yeaboi now supports Claude subscription authentication using long-lived OAuth tokens instead of just API keys. The settings page gains a new auth-mode row where you can choose between API key and subscription token, and a seamless in-app setup flow — `claude setup-token` runs interactively on a managed pty while you stay in the TUI, letting you authorize in a browser and paste the code without leaving the app. Tokens are monitored for staleness via a free probe at launch, and if one expires during use, the duck alerts you with a Ctrl+R shortcut to refresh. The implementation includes new guardrails for OAuth beta compatibility, token extraction from CLI output, and a new provider card in the setup wizard.
· Choose between API key and subscription token in settings — new auth-mode row with derived provider list and credentials UI `[settings, general]`
· Sign in with `claude setup-token` without leaving the app — runs the CLI on a managed pty, opens a browser, and stays in the TUI throughout `[settings]`
· Subscription tokens are validated at launch via a free probe and monitored for staleness, with Ctrl+R to refresh when needed `[settings, general]`
· Full OAuth 2025-04-20 beta support with Bearer token auth instead of API key headers `[general]`

<details><summary>1 commits</summary>

- 10cb43ee sign in with a Claude subscription, and restyle the landing split (303)

</details>



What's Changed
* sign in with a Claude subscription, without leaving the app by neakoh in https://github.com/dinho149/yeaboi.ai/pull/303


**Full Changelog**: https://github.com/dinho149/yeaboi.ai/compare/v3.20.0...v3.21.0

3.20.0

1 commits since `v3.19.0` (2026-08-17).

**3.20.0** — Ship mode now surfaces a live, shareable web board — teammates can watch the story→PR pipeline run in real time over a browser, including the five-phase checklist, live agent activity, the diff, validation results, and cost estimates. The board is read-only for this release; guests watch from any device via a Cloudflare tunnel while you drive approval/rejection from the TUI. The board reuses the existing retro/poker live-board infrastructure and security model. Additionally, ship mode fixes a critical plan-finding bug where plans saved in the interactive planning chat were invisible ("no stories found") and adds cloud-friendly Cloudflare tunnel option for remote team collaboration.
· Live ship board shows the five-phase checklist, agent activity, diff, validation results, and cost in real-time over the browser `[planning]`
· Share the board with teammates over a Cloudflare tunnel — read-only guests watch the run while you drive from the TUI `[planning, general]`
· Ship mode now finds plans saved in both the interactive planning chat and the project store, fixing the "no stories found" bug on chat-built plans `[planning]`
· Live agent output streams over the TUI and the web board via stream-json format with hardened envelope parsing `[planning]`

<details><summary>1 commits</summary>

- 63332f04 surface a live, shareable web board over a supervised ship run (298)

</details>



What's Changed
* surface a live, shareable web board over a supervised ship run by dinho149 in https://github.com/dinho149/yeaboi.ai/pull/298


**Full Changelog**: https://github.com/dinho149/yeaboi.ai/compare/v3.19.0...v3.20.0

3.19.0

5 commits since `v3.18.2` (2026-08-17).

**3.19.0** — yeaboi now runs on a clock. Ceremonies let you schedule any of six catalogued modes — standup, report, and four agentwatch digests — to fire at a specific time on weekdays and deliver results to Slack, email, or terminal while yeaboi is closed. The OS installs the job (launchd on macOS, cron elsewhere); yeaboi's scheduler catches its fire, runs the engine, records the outcome and cost in a ledger, and applies three guards that block stale fires, cap spending, or respect pauses. You declare a ceremony once, and it runs unattended every week. The ceremony CLI lives under `yeaboi ceremonies` (add/list/remove/pause/resume/run/history/modes), with a dedicated TUI page for viewing schedules, pausing runs, and seeing OS/store drift.
· Schedule any mode to run at a time on weekdays with `yeaboi ceremonies add` — standup, report, and agentwatch digests deliver to Slack, email, or terminal `[standup, reporting, usage]`
· OS-installed jobs (launchd/cron) fire ceremonies while yeaboi is closed, with each run recorded in a ledger showing outcome, duration, cost, and delivery status `[usage, general]`
· Three guards protect unattended runs: staleness rejects fires too late for their slot, spending caps prevent budget overruns, and pause status gates fires `[usage, general]`
· New TUI page shows your ceremony schedule, lets you run or pause them, and displays any drift between the store and the OS `[general]`
· Delivery was unified onto a mode-neutral Dispatch type, reducing code duplication and making new delivery channels easier to add `[general]`

<details><summary>5 commits</summary>

- 3a7c0a24 put any mode on a cadence (295)
- 0a50b955 claim the migration lane with a ref, and record the cron the account keeps (297)
- 9f6a6b86 carry main forward on the wave branch, not by pushing at the integration branch (296)
- fcd85b82 run the migration campaign hourly, and stop two sessions sharing a wave (294)
- 75ace845 land go migration waves on an integration branch, and report daily (293)

</details>



What's Changed
* land go migration waves on an integration branch, and report daily by dinho149 in https://github.com/dinho149/yeaboi.ai/pull/293
* run the migration campaign hourly, and stop two sessions sharing a wave by dinho149 in https://github.com/dinho149/yeaboi.ai/pull/294
* carry main forward on the wave branch, not by pushing at the integration branch by dinho149 in https://github.com/dinho149/yeaboi.ai/pull/296
* claim the migration lane with a ref, and record the cron the account keeps by dinho149 in https://github.com/dinho149/yeaboi.ai/pull/297
* put any mode on a cadence by dinho149 in https://github.com/dinho149/yeaboi.ai/pull/295


**Full Changelog**: https://github.com/dinho149/yeaboi.ai/compare/v3.18.2...v3.19.0

3.18.2

1 commits since `v3.18.1` (2026-08-17).

**3.18.2** — The standup now shows an activity timeline swimlane board with landmarks and thread connections, while Azure DevOps PR reviews are captured and properly deduplicated. Four bugs in the Azure DevOps integration are fixed: reviewer votes were not fetched, comments incorrectly collapsed to one row per PR, activity caps silently dropped events, and the capability manifest claimed the opposite of reality. The standup timeline redesign replaces mute tick marks with labeled landmarks (merged PRs, ticket state changes) and commit bursts, using a compressed axis where events claim footprints and overlapping activity merges into bursts. Threads now connect lanes that touched the same pull request, and evidence caps widened from 8 to 30 rows per category to support busier days.
· Standup timeline visualizes activity as labeled landmarks and commit bursts on a compressed axis with thread connections between PRs `[standup]`
· Azure DevOps PR reviewer votes are now captured and appear in standup evidence `[standup]`
· Azure DevOps PR comments no longer incorrectly collapse to a single row per PR `[standup]`
· Evidence caps per category widened from 8 to 30 to support busier days without silent truncation `[standup]`
· Activity timeline geometry invariants tested across zoom levels, themes, and single vs. multi-day boards `[standup]`

<details><summary>1 commits</summary>

- f518c8cf redraw the standup timeline, and capture azure devops pr reviews (292)

</details>



What's Changed
* redraw the standup timeline, and capture azure devops pr reviews by dinho149 in https://github.com/dinho149/yeaboi.ai/pull/292


**Full Changelog**: https://github.com/dinho149/yeaboi.ai/compare/v3.18.1...v3.18.2

Page 1 of 18

© 2026 Safety CLI Cybersecurity Inc. All Rights Reserved.