Files
crewli/apps
bert.hausmans fe3a2e1a52 chore(apps/app): mark lib/axios store imports for deferred refactor
WS-3 session 1c — Phase B Q1=B-revised (Bert's call after the
plugin-reality discovery).

eslint-plugin-boundaries treats both static `import` and dynamic
`await import(...)` as boundary edges. The original Q1=B mechanism
("convert static→dynamic to satisfy the rule") doesn't actually
satisfy the rule — all 4 store accesses in lib/axios.ts trip
boundaries/element-types: lines 3, 4 (static, pre-1c) and lines
61, 72 (dynamic, from 1b-iii).

Three options were on the table; Bert chose B-revised:
- A-reversal (allow lib→stores in matrix) was rejected because it
  permanently loosens the boundary for 4 imports — exactly the
  silent exception the zero-compromise principle forbids.
- B-extract (decouple axios.ts from stores via callback-injection)
  is real architectural work and deserves a focused session, not
  the tail-end of a tooling sprint. Filed as TECH-AXIOS-STORE-
  COUPLING in the next docs commit; the four sites carry per-line
  TODO references to it.
- B-revised (this commit) preserves the strict matrix:
  boundaries/element-types stays at 'error' globally; the four
  axios.ts sites are explicit per-line exceptions, not a rule
  loosening. Future lib/X.ts writers still hit the wall.

Behavior unchanged. Only lint visibility changed — 4 disable
comments added at:
- src/lib/axios.ts:3 (static useNotificationStore import)
- src/lib/axios.ts:5 (static useOrganisationStore import; was line 4)
- src/lib/axios.ts:63 (dynamic useImpersonationStore await import; was line 61)
- src/lib/axios.ts:75 (dynamic useAuthStore await import; was line 72)

Each comment is exactly:
  // eslint-disable-next-line boundaries/element-types -- TECH-AXIOS-STORE-COUPLING: deliberate HTTP↔state seam, refactor scheduled per backlog.

Commit verb is `chore` not `refactor` per Bert: the code's behavior
doesn't change, only its lint-visibility does. Honest naming.

Tests + typecheck + build verified green:
- apps/app vitest: 49 passed
- apps/app vue-tsc: clean
- apps/app pnpm build: succeeded in 11.24s

Lint baseline: 4 → 0 errors. WS-3 1c acceptance criterion satisfied.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-30 23:23:52 +02:00
..