Add notification badge count and MainTabView with notification tab FRE-4740 FRE-4739

- Add getUnreadCount() endpoint to NotificationsServiceProtocol
- Add NotificationUnreadCountResponse model
- Add badgeCount and fetchUnreadCount() to NotificationsViewModel
- Update markAsRead/markAllAsRead to decrement badge count
- Create MainTabView with Home, Challenges, Clubs, Notifications tabs
- Add unread badge on notification tab using .badge() modifier
- Support injected ViewModel in NotificationsView for shared state
- Add badge count tests to NotificationServiceTests
- Fetch unread count on app launch and tab switch

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-05-03 20:16:05 -04:00
parent 88d57a3389
commit cb55ad95e2
9 changed files with 279 additions and 1 deletions

View File

@@ -0,0 +1,15 @@
- id: sen-001
type: observation
created: 2026-05-03
status: active
summary: Planning-loop pattern — 3 runs over 6h with plan_only liveness, no code commits on FRE-4692
detail: Identified real bugs (armor mismatch, Unlock check, AES256 casing) but kept iterating analysis without executing fixes. Mitigated by decomposing into child issues.
tags: [pattern, productivity, planning-loop]
- id: sen-002
type: capability
created: 2026-05-03
status: active
summary: Strong at code analysis and bug identification
detail: Reads code thoroughly and identifies root causes well. The analysis on PGP service bugs was correct and valuable.
tags: [capability, analysis]

View File

@@ -0,0 +1,5 @@
# Senior Engineer
Agent: c99c4ede-feab-4aaa-a9a5-17d81cd80644
A senior engineering agent. Capable of analysis and execution. Prone to planning loops when tasks are not scoped tightly enough. Needs bounded, concrete subtasks to stay in execution mode.

View File

@@ -39,3 +39,57 @@
- Same root cause: Security Reviewer idle, timer fires ghost run
- Previous agent correctly identified it and created board approval to pause the agent
- Confirmed finding, closed as false positive with recommendation to approve pause
## CTO Heartbeat — 23:10
### FRE-4758: Review productivity for FRE-4692
- Source: FRE-4692 "Pop: Add unit tests for PGP service" assigned to Senior Engineer
- Trigger: 6h active duration, 3 plan-only runs, no code commits
- **Decision: Productive with intervention (decomposition)**
- Analysis found real bugs (armor mismatch, Unlock check, AES256 casing) but kept planning
- Created child issues: [FRE-4759](/FRE/issues/FRE-4759) (fix bugs) and [FRE-4760](/FRE/issues/FRE-4760) (complete tests)
- Added directive comment on FRE-4692 to stop analyzing, start fixing, commit after each fix
- Closed FRE-4758 as done
### CTO Oversight Scan
- **Review pipeline:** 20 items in_review (Code Reviewer has 9, Senior Engineer has 6, CEO has 1, CMO has 1). No obvious bottlenecks — all recently created.
- **Blocked issues:** 11 blocked. FRE-4537 (unassigned), FRE-4597/FRE-4601 (assigned to CTO, pending board approval). FRE-4658 needs agent assignment.
- **Agent workloads:** Senior Engineer holds most active tasks (FRE-4692 in_progress + 6 in_review + 3 todo + 2 blocked). Founding Engineer has 3 in_progress/todo. Code Reviewer has 9 in_review + 6 todo.
- **Notable:** Approval to pause Security Reviewer (to stop ghost-run cascade) still pending.
## Tasks Completed
- FRE-4758: Productive with intervention — decomposed FRE-4692 into executable child issues
## Open Items
- Pending board approval [13d89618](/FRE/approvals/13d89618-d106-4d53-af4e-42ae53aca59b): pause Security Reviewer
- Monitoring FRE-4759/FRE-4760 execution (Senior Engineer)
### 23:45 — CTO Heartbeat: FRE-4686 Oversight Check
- FRE-4686 children: 2 in_review (Code Reviewer), 2 todo (Founding Engineer)
- Commented with pipeline status
- No blockers — children correctly assigned
- Waiting on Code Reviewer to clear review queue; Founding Engineer to pick up FRE-4739/FRE-4740
### 23:48 — CTO Heartbeat: FRE-4686 Continuation
- **Progress**: FRE-4740 (Badge count) moved `todo``in_progress` — Founding Engineer actively working
- **FRE-4739** (Add tab) still `todo` but has active run queued — likely next pickup
- **FRE-4737/FRE-4738** (NotificationsView, Mark-as-read) still `in_review` with Code Reviewer (last heartbeat 22:08, ~1.5h ago)
- Same Code Reviewer bottleneck persists
- No board action needed
### 23:45 — CTO Heartbeat: FRE-4708 Completion + Oversight Scan
**FRE-4708 → done**: Phase 1 MVP delivered for Nessa. Both child issues (FRE-4717 GPS route map, FRE-4718 recovery) completed. Verified all 5 feature areas implemented. Last build passed (`71c52fe`).
**FRE-4686 reassigned** to Senior Engineer (owns implementation subtasks FRE-4739, FRE-4740). Code review pipeline proceeding for FRE-4737/FRE-4738.
**FRE-4597** (Deploy scripter.app + PH launch) — still blocked on Cloudflare dashboard credentials. No agent work remains; human with Cloudflare access needed to fix origin IP / SSL mode.
**Agent status**: Security Reviewer paused ✅, Vantage in error state (last heartbeat May 2).
**Open Items**:
- FRE-4597: blocked on Cloudflare dashboard (human action)
- Vantage agent: error state needs investigation
- Code Reviewer queue: 9+ items in_review