Skip to content

feat(island): the cards that wait and today's activity, for the island - #266

Merged
httpsphl merged 1 commit into
mainfrom
feat/island
Oct 25, 2026
Merged

httpsphl merged 1 commit into
mainfrom
feat/island

Conversation

@httpsphl

Copy link
Copy Markdown
Owner

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.list returns the requests and questions waiting for the owner, oldest first, as the phone's cards (same builder, mobile::cards::waiting), with cut and atComputer, 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 the lines of spec 8.2), and the bot with the most time in turns. Counted in botloft-store/src/today.rs.
  • TypeScript bindings regenerated; FakeBotloft answers both methods with the same rules.
  • Spec: section 31 (the island), item 14 in section 18, both methods in 11.2.

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.today counts 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 --workspace and pnpm check pass 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.

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
httpsphl enabled auto-merge October 25, 2026 06:59
@httpsphl
httpsphl merged commit 045fed6 into main Oct 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant