plugins/hermes-achievements/docs/achievements-performance-implementation-plan.md
Status: Ready for execution after hackathon review window
Constraint: Plugin remains frozen until judging is complete
Decision: /overview and top-banner slots are out of scope and will be removed.
Objective: Repro baseline before/after.
Acceptance:
/achievements (3 runs each, cold + warm).Objective: Lock success criteria now.
Acceptance:
/achievements p95 < 1s (cached)/overview backend routeObjective: Eliminate duplicate heavy endpoint path.
Acceptance:
plugin_api.py no longer exposes /overview.Objective: Remove cross-tab banner fetch behavior.
Acceptance:
registerSlot(..."sessions:top"...) or registerSlot(..."analytics:top"...).api("/overview").Objective: Reflect final UI scope.
Acceptance:
manifest.json removes slots declarations./achievementsObjective: Single source of truth for Achievements data that survives process restarts.
Acceptance:
/achievements.~/.hermes/plugins/hermes-achievements/scan_snapshot.json.Objective: Prevent concurrent recomputes.
Acceptance:
/achievements to read snapshotObjective: Remove direct repeated compute from request path.
Acceptance:
/achievements does not run independent full recompute per request when cache is valid.FRESH/STALE)Objective: Serve immediately when stale, refresh in background.
Acceptance:
scan-status endpoint (optional)Objective: Let UI/ops inspect scan state.
Acceptance:
/achievementsObjective: Improve transparency.
Acceptance:
generated_at, is_stale, maybe scan_id.Objective: Track session-level changes, not just global scan time.
Acceptance:
~/.hermes/plugins/hermes-achievements/scan_checkpoint.json.session_id, fingerprint (updated_at/message_count/hash), and cached contribution.Objective: Recompute only changed/new sessions and reuse unchanged contributions.
Acceptance:
Objective: Preserve correctness.
Acceptance:
/achievements response compatibility/achievements warm-cache load is fast/achievements timings with same history datasetRollback: keep old compute path behind temporary feature flag for one release window.
/overview endpoint or slot calls remain.