Repository navigation
korekore Phase 2a: window, sidebar with the mini box, menu bar - #175
Merged
Merged
Conversation
GET /v1/status and its stream now include `activities`: each live Activity as the resident session's list_activities gives it (agent, task-card title, project, working or needs_input, newest first). The korekore sidebar draws the box from them instead of asking it for a screenshot, which would tie up the UART bridge. Every event sent to the box now also pushes a new status, so the stream follows the cards. Older apps ignore the field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Phase 2a of docs/design/korekore, behind VIBEBUDDY_UI=korekore on both apps; without it nothing changes. - Mac: a new KorekoreUI library holds the views, fed plain values: the settings window (cream, 3 px ink outline, radius 20, solid shadow, the real window buttons moved into the sidebar), the sidebar with the mini box redrawn from the status, and the 360 px menu bar panel opened from a Kore status item (NSStatusItem + NSPanel, which can switch with the app's UI, unlike MenuBarExtra). KorekorePreview draws them with sample data. - Linux: the same window inside, sidebar and mini box in iced, and Kore in the tray; the tray keeps its native menu. iced_test draws them headless. - BoxPicture (Swift and Rust) turns the status into what the box shows: mood, link, the newest three cards without their prefix, today's stats. - Pages are placeholders until 2b. New strings have zh-Hans entries, and check-localization now reads desktop/src's subfolders too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
macos-15's compiler gave up on the luminance expression in
PixelSprite.grayed ("unable to type-check this expression in reasonable
time"); the same steps, each typed, build there and here.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 23, 2026
# Conflicts: # app/Localization/zh-Hans.lproj/Localizable.strings # app/Sources/VibeBuddyCore/Status.swift # desktop/src/status.rs
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.
Phase 2a of the korekore UI (ADR-0021): the settings window, the sidebar with the mini box, and the menu bar, on the Mac and on Linux. Everything is behind
VIBEBUDDY_UI=korekore; without it both apps behave exactly as before. The six pages are placeholders until 2b; onboarding and every other state come in 2c.Stacked on #173 (Phase 1): review that first. This PR's own changes are the last two commits.
What it does
sky, ASKsun, READYlavender, POMODOROkore-pink), up to three cards with their agent tile and title, ALL QUIET with today's numbers when there are none, and the README's no-link screen (gray ground, Kore asleep and gray at scale 6, NO LINK, "waiting for the Mac").sundot when an agent needs you, gray and asleep without a link. A click opens the 360 px panel: lockup, the Ink strip ("WORKING · 3 AGENTS", "box online · USB · fw 0.5.0"; without the daemon it offers the restart, as today's menu does), the mode chips (they only show the mode: the box changes it), three stat chips, then Settings…, Check for updates…, Report a problem…, Quit korekore./v1/statusnow carries the live Activities (activities, the same summary the resident session'slist_activitiesgives), and every event sent to the box pushes a new status. No screenshots are taken from the box.Screenshots
Mac, the real
KorekoreSettingsWindowdrawn off screen with sample data (swift run --package-path app KorekorePreview <dir>; off screen the window isn't key, so its buttons are gray):Mac mini box: working, asking, quiet, no link:
Mac menu bar panel, linked and without a link, and the three icons:
Linux, drawn headless by iced_test (
cargo test -p vibebuddy-desktop korekore::snapshots -- --ignored):Against the canvas
The canvas page needs a claude.ai sign-in, so the boards aren't pictured here; the views were built from the boards' HTML and checked against it:
0 8px 0ink shadow, cream#C2335B0 4px 0; 320 × 240 at 0.65; side 96 widebox-card, Kore px 4, word 16 px; cards radius 8, padding 7, 24 px tile, title 13 px#2FBF8Aon the canvas, not a token:mintused)mint0 6px 0, padding 14, gap 12; strip radius 12, Kore px 3, 16/12 px; chips 12/800, 2 px, pill; stats 13 px, radius 10; items 14/700, keys 12 pxmuted-2Known differences: "…" in M PLUS Rounded 1c is the font's own centred ellipsis (the canvas uses the same font); on the Mac, text can't take a letter spacing token through
Font.customsizes alone, so the wordmark's-0.02emis applied withtracking, and on Linux iced has no letter spacing.Changes to existing files
daemon/src/status.rsactivitiesinStatusdaemon/src/main.rsdocs/app.mdapp/Package.swiftKorekoreUIlibrary and theKorekorePreviewtoolapp/Sources/VibeBuddyCore/Status.swiftactivitiesandActivitySummaryapp/Sources/VibeBuddy/AppDelegate.swiftdesktop/src/status.rsactivitiesandActivitydesktop/src/main.rsview()hands over, the window's size, the tray's Koredesktop/src/tray.rsdesktop/Cargo.toml,Cargo.lockiced_testas a dev-dependency (headless snapshots)tools/check-localization.pyKorekoreUIanddesktop/src's subfolders (it missedkorekore/)app/Localization/zh-Hans.lproj/Localizable.stringsapp/Sources/SelfTest/main.swiftBoxPicturePhase 1 files that moved:
KorekoreTheme.swiftandKorekoreAssets.swiftgo fromVibeBuddy/KorekoretoKorekoreUI(now public), andtools/korekore-codegen.pywrites the theme there.Tests
just test(cargo test --workspace, SelfTest): pass. New:BoxPicturein SelfTest section 8;korekore::pictureand the tray icon in the desktop tests; the daemon test asserts the status carries the Activities.cargo check -p vibebuddy-desktop --target x86_64-unknown-linux-gnu: pass (the tray code only builds for Linux).python3 tools/check-localization.py: ok, 335 keys. Tool tests: pass.cargo clippy: no warnings in changed code.🤖 Generated with Claude Code