No description
- TypeScript 98.7%
- JavaScript 0.9%
- Dockerfile 0.4%
|
All checks were successful
server / check (push) Successful in 29s
Plane: WSAPI-13 ## Summary Adds household-visible Wealthsimple accounts (Sarah's RRSP, `rrsp-ZFgB7yct0Q`) to the nightly `sync/balances`, tagged `scope: 'household'`, merged with own accounts by id (own wins, no double-counting — Chris's TFSA is not household-shared). - **Holdings:** `FetchIdentityPositions` with `accountScope: HOUSEHOLD` (new `lib/wealthsimple/household`). - **Cash:** `FetchAccountsWithBalance` 500s for household accounts, so cash = latest daily net liquidation value (`FetchIdentityHistoricalFinancials`) − holdings, priced with the same merged quote map used for valuation. Non-CAD / stale / unparseable NLV and non-CAD quotes fall back to cash 0 with a warning. - **Status:** new `householdBalances` job on `/status`; a household failure never fails the own-account sync, but `SessionDeadError` still halts it. - **Carry-forward:** if the household step fails, the previous cache's household accounts are reused (their own-only securities priced from the previous cache; own holdings never get stale prices), stamped with `householdSyncedAt`, and dropped after 7 days without a fresh sync. - **API:** `scope` and `householdSyncedAt` exposed on `/positions`, `/accounts`, `/balance`. Limitation: a household account holding only cash (no positions) isn't discovered. ## Verification - `bun test`: 455 pass, 0 fail; type-check, lint, format:check clean. - Three pre-PR review rounds (Opus); all confirmed findings addressed (` |
||
|---|---|---|
| .forgejo/workflows | ||
| bearer-auth | ||
| create-app | ||
| docs | ||
| error-handler | ||
| lib | ||
| routes | ||
| scripts | ||
| sync | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .prettierrc | ||
| bun.lock | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| eslint.config.js | ||
| index.ts | ||
| package.json | ||
| tsconfig.json | ||