Skip to content

Commit 152b797

Browse files
committed
chore(scout): upstream scout Jul 15 — upstream quiet, PR wxtsky#262 watch added to T-073
No new commits to wxtsky/CodeIsland since v1.0.30 (Jul 10). One new open PR wxtsky#262 (Jul 14): fix(appstate) ProjectsWatcherBox for FSEvents teardown safety — noted as prerequisite for T-073 implementation. vibe-island unchanged. No new GitHub issues created. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X1rG9TcKyFd2mpEVXb9n6k
1 parent 988b56d commit 152b797

2 files changed

Lines changed: 12 additions & 3 deletions

File tree

.kanban/board.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Kanban Board
2-
<!-- Updated: 2026-07-11 -->
2+
<!-- Updated: 2026-07-15 -->
33

44
## Backlog
55

@@ -36,10 +36,10 @@
3636
> Add a session-list footer that aggregates token usage across all Claude Code transcripts (`~/.claude/projects/**/*.jsonl`) in real time. Shows last-5h and today totals, with a 12h hourly sparkline. Incremental reads (per-file byte offsets) — never re-reads the full file. Local-only, no API calls. Toggle in Settings → Appearance. New Core file: `ClaudeUsageScanner.swift`.
3737
- **priority**: medium
3838
- **effort**: M
39-
- **source**: wxtsky/CodeIsland commits `73e7463` + `9814945` + relevant scanner parts of `a30462a` (v1.0.30, Jul 10, 2026)
39+
- **source**: wxtsky/CodeIsland commits `73e7463` + `9814945` + relevant scanner parts of `a30462a` (v1.0.30, Jul 10, 2026); `ProjectsWatcherBox` pattern from open PR #262 (Jul 14, not yet merged — port alongside scanner to avoid `assumeIsolated` trap in deinit)
4040
#### Criteria
4141
- [ ] Add `Sources/CodeIslandCore/ClaudeUsageScanner.swift``ClaudeUsageTotals` struct, `ClaudeUsageScanner.Snapshot`, `ClaudeUsageScanner.FileCache` (incremental per-file state), `scan(claudeHome:now:cache:)` static method; deduplicates on `message.id` within each file; handles truncation reset; `a30462a` incremental optimization is already folded into upstream's final state
42-
- [ ] `Sources/CodeIsland/AppState.swift`: own a `ClaudeUsageScanner.FileCache` instance; trigger lazy `scan()` on panel expansion, throttled to 2-minute minimum; store result as `@Published var usageSnapshot: ClaudeUsageScanner.Snapshot?`
42+
- [ ] `Sources/CodeIsland/AppState.swift`: add `ProjectsWatcherBox` (thread-safe weak-ref box with NSLock + cancelled flag) for the FSEvents stream callback — prevents `assumeIsolated` trap when AppState is released off the main actor in async tests; own a `ClaudeUsageScanner.FileCache` instance; trigger lazy `scan()` on panel expansion, throttled to 2-minute minimum; store result as `@Published var usageSnapshot: ClaudeUsageScanner.Snapshot?`
4343
- [ ] `Sources/CodeIsland/NotchPanelView.swift`: add footer row below session list showing "5h: Xk out / Xk in" and today totals; sparkline (12 hourly bars); tooltip with cache detail; hidden when `usageSnapshot == nil` or toggle off
4444
- [ ] `Sources/CodeIsland/Settings.swift`: `showUsageFooter` Bool key (default true)
4545
- [ ] `Sources/CodeIsland/SettingsView.swift`: Appearance toggle

CLAUDE.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -915,6 +915,15 @@ Unsynced from post-v1.0.15: menu bar icon, MorphText animation, BlurFade transit
915915
- `nguyenvanduocit/CodeIsland` issue tracker: 0 open issues
916916
- **No new actionable items.** All open tasks (T-016 through T-075) remain as previously documented.
917917

918+
**Scouted (July 15, 2026) — post-v1.0.30 activity:**
919+
- No new commits or releases since v1.0.30 (Jul 10); latest upstream commit remains `3e2aec7` — upstream quiet for 5 days
920+
- **PR #262** (open, Jul 14): "fix(appstate): allow AppState deinit off the main actor" — introduces `ProjectsWatcherBox` (thread-safe weak-ref box, NSLock guard, cancelled flag) so FSEvents callbacks reach AppState without holding a strong reference or calling `assumeIsolated` in deinit; fixes async XCTest teardown trap; this is specifically for the `~/.claude/projects/` watcher introduced by ClaudeUsageScanner (T-073); not yet merged → add to T-073 criteria: port `ProjectsWatcherBox` pattern alongside `ClaudeUsageScanner.swift` to avoid the same trap in our fork's tests
921+
- PR #257 (open): OpenCode v2 events — Codex/OpenCode-specific; skip (unchanged)
922+
- Issue #258 (open): Zcode permission button — non-Claude CLI; skip (unchanged)
923+
- vibeislandapp/vibe-island: `3bb9959` (Jul 11) remains the latest commit — nothing actionable
924+
- `nguyenvanduocit/CodeIsland` issue tracker: 0 open issues
925+
- **No new actionable items.** T-073 criteria updated with `ProjectsWatcherBox` note. All other open tasks (T-016 through T-075) remain as previously documented.
926+
918927
We only support Claude Code (no Codex/OpenCode). Cherry-pick relevant changes instead of full merge.
919928

920929
To check new upstream changes: `gh api repos/wxtsky/CodeIsland/compare/<last-synced-commit>...<new-tag> --jq '.commits[] | .sha[:7] + " " + (.commit.message | split("\n")[0])'`

0 commit comments

Comments
 (0)