feat(activity): implement memory-efficient rendering with Clear() #322

Merged
fuzzy merged 1 commit from phase07-memory-efficiency into main 2026-07-07 12:40:37 +00:00
Owner

What

Add View.Clear() to release in-memory data and auto-refresh resources, completing #258.

Changes

  • View.Clear() — resets window, stops ticker, clears stale flags, releases memory for GC
  • View can be reused after Clear() — Refresh() still works
  • SQLite streaming already efficient (indexed WHERE + rows iterator, never loads all contexts)
  • Only active view holds data in memory (at most 7 DailyActivity rows)
  • Fixed ROADMAP2.md URL typos (steper → steeper, missing https://)

References: #258, #255, #256, #257

Testing

  • 2 new tests: Clear resets state, Clear+Refresh reuse works
  • go test -race ./... — all pass
## What Add `View.Clear()` to release in-memory data and auto-refresh resources, completing #258. ### Changes - **View.Clear()** — resets window, stops ticker, clears stale flags, releases memory for GC - View can be reused after Clear() — `Refresh()` still works - SQLite streaming already efficient (indexed WHERE + rows iterator, never loads all contexts) - Only active view holds data in memory (at most 7 DailyActivity rows) - Fixed ROADMAP2.md URL typos (steper → steeper, missing https://) References: #258, #255, #256, #257 ## Testing - [x] 2 new tests: Clear resets state, Clear+Refresh reuse works - [x] `go test -race ./...` — all pass
feat(activity): implement memory-efficient rendering with Clear()
All checks were successful
Test and Release / lint (pull_request) Successful in 3m50s
Test and Release / test (pull_request) Successful in 9m44s
bc4f47e6d5
- View.Clear(): releases in-memory window, stops auto-refresh,
  resets all state for GC to reclaim
- View reuse after Clear(): Refresh() still works, renders fresh data
- Only active view holds data; dismissed views release memory
  immediately via Clear()
- Stream SQLite queries already use indexed WHERE + rows iterator
  (no full table loads)
- Fixed ROADMAP2.md URL typos (steper -> steeper, missing https://)

Ref: #258, #255, #256, #257
the.auditor left a comment

Review

Result: Approved — no blocking issues.

Summary: Adds View.Clear() to release in-memory state. Stops auto-refresh, resets window/loaded/error/stale flags, allows view reuse via Refresh(). Also fixes ROADMAP2.md URL typos. ROADMAP2.md updated — Phase 7 top-level items complete.

Non-blocking:

  • #323 — Add godoc for exported Clear

Checklist:

  • Correctness: Clear resets all state correctly, StopAutoRefresh called outside lock to avoid deadlock, view reusable after Clear
  • Completeness: Closes #258 — only active context in memory, Clear releases, SQLite streaming
  • Test coverage: 2 tests (Clear resets state, Clear+Refresh reuse works)
  • Race-safe: go test -race passes
## Review **Result: Approved** — no blocking issues. **Summary:** Adds `View.Clear()` to release in-memory state. Stops auto-refresh, resets window/loaded/error/stale flags, allows view reuse via `Refresh()`. Also fixes ROADMAP2.md URL typos. ROADMAP2.md updated — Phase 7 top-level items complete. **Non-blocking:** - #323 — Add godoc for exported `Clear` **Checklist:** - Correctness: ✅ Clear resets all state correctly, StopAutoRefresh called outside lock to avoid deadlock, view reusable after Clear - Completeness: ✅ Closes #258 — only active context in memory, Clear releases, SQLite streaming - Test coverage: ✅ 2 tests (Clear resets state, Clear+Refresh reuse works) - Race-safe: ✅ `go test -race` passes
fuzzy added this to the Steeper project 2026-07-07 12:31:12 +00:00
fuzzy self-assigned this 2026-07-07 12:31:19 +00:00
fuzzy merged commit bc4f47e6d5 into main 2026-07-07 12:40:37 +00:00
fuzzy deleted branch phase07-memory-efficiency 2026-07-07 12:40:38 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
thwap/steeper!322
No description provided.