mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
refactor(immersion): split tracker storage and metadata modules
Decompose the immersion tracker facade into focused storage/session/metadata collaborators with dedicated tests and updated ownership docs while preserving runtime behavior.
This commit is contained in:
@@ -36,7 +36,12 @@ Primary index coverage:
|
||||
- event timeline/type reads: `idx_events_session_ts`, `idx_events_type_ts`
|
||||
- rollup reads: `idx_rollups_day_video`, `idx_rollups_month_video`
|
||||
|
||||
Reference implementation lives in `src/core/services/immersion-tracker-service.ts` (`ensureSchema`).
|
||||
Ownership boundaries:
|
||||
|
||||
- `src/core/services/immersion-tracker-service.ts`: orchestration facade (queueing, flush cadence, runtime event/session coordination).
|
||||
- `src/core/services/immersion-tracker/storage.ts`: schema bootstrap, prepared statement construction, and DB record writes/updates.
|
||||
- `src/core/services/immersion-tracker/session.ts`: session row lifecycle transitions (start/finalize).
|
||||
- `src/core/services/immersion-tracker/metadata.ts`: local media metadata probing (`ffprobe`, sha256, parsed metadata shaping).
|
||||
|
||||
## Retention and Maintenance Defaults
|
||||
|
||||
@@ -47,7 +52,7 @@ Reference implementation lives in `src/core/services/immersion-tracker-service.t
|
||||
- Maintenance cadence: startup + every `24h`
|
||||
- Vacuum cadence: idle weekly (`7d` minimum spacing)
|
||||
|
||||
Retention cleanup, rollup refresh, and vacuum scheduling are implemented in `runMaintenance` / `runRollupMaintenance`.
|
||||
Retention cleanup and rollup refresh stay in service maintenance orchestration + `src/core/services/immersion-tracker/maintenance.ts`.
|
||||
|
||||
## Configurable Policy Knobs
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# Agent Session: opencode-task106-immersion-modules-20260222T195109Z-r3m7
|
||||
|
||||
- alias: `opencode-task106-immersion-modules`
|
||||
- mission: `Execute TASK-106 decomposition of immersion tracker service into storage session and metadata modules end-to-end without commit`
|
||||
- status: `done`
|
||||
- last_update_utc: `2026-02-22T21:58:45Z`
|
||||
|
||||
## Intent
|
||||
|
||||
- Load TASK-106 context from Backlog MCP.
|
||||
- Produce implementation plan via writing-plans skill.
|
||||
- Execute with executing-plans skill; parallel subagents where safe.
|
||||
|
||||
## Planned Files (expected)
|
||||
|
||||
- `src/core/services/immersion-tracker-service.ts`
|
||||
- `src/core/services/immersion-tracker/*`
|
||||
- `src/core/services/immersion-tracker-service.test.ts`
|
||||
- `docs/architecture.md`
|
||||
|
||||
## Assumptions
|
||||
|
||||
- Task scope excludes commit/push.
|
||||
- Existing behavior must remain stable; refactor + focused tests only.
|
||||
|
||||
## Progress Log
|
||||
|
||||
- `2026-02-22T19:51:09Z` session started; backlog overview/task/execution guides loaded.
|
||||
- `2026-02-22T19:55:30Z` user approved proceed; executing plan with parallel slices (storage/session + metadata) then integration/test/docs/finalization.
|
||||
- `2026-02-22T20:01:45Z` implementation complete: extracted `storage.ts`, `session.ts`, `metadata.ts`; rewired `immersion-tracker-service.ts` facade; added `storage-session.test.ts` + `metadata.test.ts`; updated `docs/immersion-tracking.md` boundaries.
|
||||
- `2026-02-22T20:01:45Z` verification: tracker tests green (7 pass/9 skip), `test:core:src` green (236 pass/6 skip), `bun run build` blocked by unrelated pre-existing TS errors in `src/anki-integration/*` + `src/main/runtime/*`; left TASK-106 in progress with AC#4 unchecked.
|
||||
- `2026-02-22T21:58:45Z` user confirmed build fixed; reran `bun run build` + tracker tests + `test:core:src` all green; finalized TASK-106 Done with AC/DoD complete and final summary.
|
||||
|
||||
## Files Touched
|
||||
|
||||
- `src/core/services/immersion-tracker-service.ts`
|
||||
- `src/core/services/immersion-tracker/storage.ts`
|
||||
- `src/core/services/immersion-tracker/session.ts`
|
||||
- `src/core/services/immersion-tracker/metadata.ts`
|
||||
- `src/core/services/immersion-tracker/storage-session.test.ts`
|
||||
- `src/core/services/immersion-tracker/metadata.test.ts`
|
||||
- `docs/immersion-tracking.md`
|
||||
- `docs/plans/2026-02-22-task-106-immersion-tracker-storage-session-metadata.md`
|
||||
Reference in New Issue
Block a user