Repository navigation
feat(island): the cards that wait and today's activity, for the island - #266
Merged
Merged
Conversation
Spec section 31 designs the island, the Botloft at the top of the screen.
Its first slice (I1) is in the daemon: `cards.list` returns the requests
and questions that wait, as the phone's cards with its rules (cut, at the
computer) but with no account needed, and `activity.today {since}` counts
what the crews did since the app's local midnight without a bot's turn:
tasks, messages between bots, requests answered, files and lines edited,
and who spent the most time in turns.
httpsphl
enabled auto-merge
October 25, 2026 06:59
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.
What
First slice (I1) of the island: the Botloft at the top of the screen, a black pill that grows into a panel with the requests, live agents, a quick chat and the plan usage. Spec section 31 has the whole design and its five milestones; this PR brings the daemon side.
cards.listreturns the requests and questions waiting for the owner, oldest first, as the phone's cards (same builder,mobile::cards::waiting), withcutandatComputer, and with no account or phone needed.activity.today {since}counts what every crew did since the app's local midnight, without a bot's turn: tasks done and failed or expired, messages between bots, requests allowed or denied, files and lines edited (from thelinesof spec 8.2), and the bot with the most time in turns. Counted inbotloft-store/src/today.rs.FakeBotloftanswers both methods with the same rules.The window, the look and the utilities come in I2 to I5.
Tests
tests/island.rs: a plain command, a tool that belongs to the computer, a cut command and a question all show up with the right marks; an answered card leaves the list;activity.todaycounts the edit, the answer and the busiest bot, and a later start sees nothing.today.rs: tasks and bot messages count only from the start of the day.fakeIsland.test.ts: the fake builds the same cards and counts.cargo fmt,clippy -D warnings,cargo test --workspaceandpnpm checkpass locally.Manual test with the real Claude Code
None needed for this slice: nothing here depends on Claude Code's behavior. The real check is in I5.