docs: remove stale cmd/mcpspike references
This commit is contained in:
@@ -17,8 +17,7 @@ geniusrun is a personal web app that pulls running activities from Garmin Connec
|
||||
backend/
|
||||
cmd/geniusrund/ main server entrypoint
|
||||
cmd/seedsample/ inserts synthetic data for frontend dev/demoing without live Garmin creds
|
||||
cmd/mcpspike/ throwaway MCP-client spike, safe to delete
|
||||
internal/garmin/ MCP client wrapper (auth, get_activities, get_activity_splits, get_activity_details)
|
||||
internal/garmin/ Garmin Connect client: spawns an embedded Python wrapper over a JSON-lines subprocess protocol
|
||||
internal/garmin/mock/ fake Client for tests
|
||||
internal/classify/ pure rule engine (condition tree eval, scoring, interval detection, HR drift/recovery)
|
||||
internal/store/ SQLite layer + embedded migrations
|
||||
@@ -87,4 +86,4 @@ Each `workout_kinds.rule_json` is a recursive AND/OR condition tree (`internal/c
|
||||
- `internal/classify` tests are pure (no DB/network): construct a `MetricContext` + `RuleKind`s directly.
|
||||
- `internal/store` and `internal/sync` tests open a real temp-file SQLite DB (`store.Open` against `t.TempDir()`) — this is deliberate, not mocked, since the migration/SQL correctness is exactly what needs catching.
|
||||
- `internal/api` tests use `httptest` against a `Server` wired to a temp DB + `mock.Client`.
|
||||
- The MCP/Garmin integration itself can't be safely automated (real account, MFA, rate limits) — it's a manual smoke test via `cmd/mcpspike` or the real `geniusrund` auth endpoints.
|
||||
- The Garmin integration itself can't be safely automated (real account, MFA, rate limits) — it's a manual smoke test via the real `geniusrund` auth endpoints.
|
||||
|
||||
@@ -45,7 +45,6 @@ backend/
|
||||
cmd/geniusrund/ main server entrypoint
|
||||
cmd/seedsample/ inserts synthetic data for frontend dev/demoing without live Garmin creds
|
||||
cmd/dumpschema/ regenerates docs/DATABASE.md from the live schema -- run after editing schema.sql
|
||||
cmd/mcpspike/ throwaway MCP-client spike, safe to delete
|
||||
internal/garmin/ Garmin Connect client: spawns an embedded Python wrapper (pyscript/wrapper.py, garminconnect) over a JSON-lines subprocess protocol (auth, get_activities, get_activity_splits, get_activity_details, get_workout_by_id)
|
||||
internal/garmin/mock/ fake Client for tests
|
||||
internal/classify/ pure rule engine (condition tree eval, scoring, interval detection, HR drift/recovery)
|
||||
@@ -125,4 +124,4 @@ See `docs/DATABASE.md` for the full, always-current schema (every table/column/i
|
||||
- `internal/store` and `internal/sync` tests open a real temp-file SQLite DB (`store.Open` against `t.TempDir()`) — deliberate, not mocked, since schema/SQL correctness is exactly what needs catching. Since every table is `user_id`-scoped, tests provision a user first (`db.ProvisionUser`) and thread that `userID` into every call.
|
||||
- `internal/api` tests use `httptest` against a `Server` wired to a temp DB + `mock.Client`; `newTestServer` auto-provisions a `"test-user"` account matching the session cookie `doJSON` mints, so most handler tests don't need to think about provisioning at all. Tests that specifically need an *unprovisioned* session (e.g. the setup flow, or `resolveUser`'s not-found path) build a bare `NewServer` directly instead of using `newTestServer`.
|
||||
- **Cross-user isolation is tested adversarially, not just in parallel** — `internal/store/isolation_test.go` and `internal/api/isolation_test.go` provision two real users and attempt real reads/writes against the *other* user's real row IDs, asserting on not-found/403/empty-result rather than merely checking two separately-created rows don't collide. Any new per-user-scoped feature should get the same treatment, not just a "two users each see their own data" happy-path test.
|
||||
- The MCP/Garmin integration itself can't be safely automated (real account, MFA, rate limits) — it's a manual smoke test via `cmd/mcpspike` or the real `geniusrund` auth endpoints.
|
||||
- The Garmin integration itself can't be safely automated (real account, MFA, rate limits) — it's a manual smoke test via the real `geniusrund` auth endpoints.
|
||||
|
||||
Reference in New Issue
Block a user