remove unnecessary todo items
This commit is contained in:
parent
378c0d0e84
commit
354a7e7799
1 changed files with 0 additions and 83 deletions
83
TODO.md
83
TODO.md
|
|
@ -39,9 +39,6 @@ ranking; unlabeled items are "someday, if the mood strikes."
|
|||
market return vs contributions" annotation would clarify how
|
||||
much of the trajectory was the model being right vs new money
|
||||
arriving on schedule.
|
||||
- Mosaic mode: overlay multiple as-of starting points on one chart
|
||||
("show me 1Y, 3Y, 5Y, 10Y projections all at once") so the user
|
||||
can see how the projection envelope tightened as data came in.
|
||||
- **Better composition basis for imported-only as-of.** Today
|
||||
the imported-only path uses today's allocations scaled by
|
||||
`imported_liquid / today_total_liquid`. That's the simplest
|
||||
|
|
@ -70,38 +67,6 @@ ranking; unlabeled items are "someday, if the mood strikes."
|
|||
faithfulness one notch. Pick whichever has the highest
|
||||
payoff vs. complexity when this gets revisited.
|
||||
|
||||
## `--export-chart` follow-ups - priority LOW
|
||||
|
||||
V1 of `--export-chart <PATH>` shipped for `quote`, `projections`
|
||||
(bands, `--convergence`, and `--return-backtest` modes), and
|
||||
`history`. Two adjacent surfaces still don't have PNG export:
|
||||
|
||||
- **`projections --vs <DATE>`.** No chart at all in this mode
|
||||
(text-only delta table); `--export-chart` rejected at parse
|
||||
time. Could grow a side-by-side bands comparison chart, but
|
||||
that's a feature of its own - not just an export plumbing job.
|
||||
- **Theme overrides at export time.** Today the export always
|
||||
uses `theme.default_theme`. A `--theme <PATH>` flag at export
|
||||
time would let users render with their configured theme or a
|
||||
presentation-friendly one. Out of scope for V1; gate when
|
||||
someone asks for it.
|
||||
|
||||
## Refactor: trim `src/format.zig` once Money / Date have absorbed their helpers - priority LOW
|
||||
|
||||
`src/format.zig` is still a ~1600-line grab-bag, but the money- and
|
||||
date-shaped helpers that used to live there have been moved out:
|
||||
money formatting now lives in `src/Money.zig` (with `{f}` /
|
||||
`whole()` / `trim()` / `signed()` / `padRight(N)` / `padLeft(N)`),
|
||||
date formatting lives in `src/Date.zig` (with `{f}` /
|
||||
`padRight(N)` / `padLeft(N)`), and the braille sparkline chart now
|
||||
lives in `src/charts/braille.zig`. What's left in `format.zig` is
|
||||
the genuinely-format-domain stuff: return formatters, allocation
|
||||
notes, signed-percent rendering.
|
||||
|
||||
If the file ever grows enough to be annoying again, consider
|
||||
renaming to `src/render.zig` to better describe what's left.
|
||||
Not blocking - file it as cleanup if and when it bites.
|
||||
|
||||
## Investigate: detailed 401(k) contributions data source
|
||||
|
||||
Found a more detailed contributions screen on at least one
|
||||
|
|
@ -130,46 +95,6 @@ opts ESPP/HSA accounts into cash-based attribution.
|
|||
Related: ESPP-style accrual blind spot in the "Audit: manual-check
|
||||
accounts mechanism" section above.
|
||||
|
||||
## Torn SRF files from server sync (root cause unknown)
|
||||
|
||||
**Status:** Root cause still unidentified. We have mitigations and
|
||||
diagnostics in place that keep torn responses from corrupting the
|
||||
cache, but we don't yet know *why* responses arrive torn. Until we
|
||||
have a root cause, this is not resolved - it's mitigated.
|
||||
|
||||
Mitigations landed so far:
|
||||
|
||||
- `syncFromServer` (`src/service.zig`) validates responses via
|
||||
`cache.Store.looksCompleteSrf` before `writeRaw`. Torn HTTP bodies
|
||||
(empty, missing `#!srfv1` header, or no trailing newline) are
|
||||
rejected with a warn-level log and NOT written to cache.
|
||||
- HTTP responses are checked for an `ETag` sha256 header; on mismatch
|
||||
we retry the request once before giving up and falling back to the
|
||||
provider.
|
||||
- Read-path self-heal: on SRF parse failure during read, the cache
|
||||
entry is invalidated so a subsequent refresh can repair without
|
||||
user intervention.
|
||||
- Diagnostics: richer error capture around the sync path. So far,
|
||||
HTTP transit is the dominant source of torn responses - but that's
|
||||
an observation, not a root cause.
|
||||
|
||||
**Remaining work:**
|
||||
|
||||
- Identify root cause. Candidates to investigate: proxy/load-balancer
|
||||
behavior, HTTP keepalive reuse, partial reads on the server side,
|
||||
client-side buffer handling. The etag retry tells us whether the
|
||||
problem is per-request or persistent; dig into the diagnostics
|
||||
output when the next occurrence is captured.
|
||||
- Once root cause is known, decide whether the current mitigations
|
||||
are sufficient or whether a targeted fix is needed. The
|
||||
mitigations may end up being the whole answer, but we can't
|
||||
conclude that without understanding the underlying cause.
|
||||
|
||||
(Content-Length validation was considered and rejected: once the
|
||||
server starts compressing response bodies, Content-Length reflects
|
||||
the compressed byte count, not the decoded payload, so it's not a
|
||||
reliable integrity check.)
|
||||
|
||||
## On-demand server-side fetch for new symbols
|
||||
|
||||
Currently the server's SRF endpoints (`/candles`, `/dividends`, etc.) are pure
|
||||
|
|
@ -330,14 +255,6 @@ taxonomy.
|
|||
The following items are acknowledged but not prioritized. Listed here
|
||||
so they don't get lost; pick up opportunistically.
|
||||
|
||||
### UX
|
||||
|
||||
- **CLI options command UX.** The `options` command auto-expands only
|
||||
the nearest monthly expiration and lists others collapsed. Reconsider
|
||||
the interaction model - e.g. allow specifying an expiration date,
|
||||
showing all monthlies expanded by default, or filtering by strategy
|
||||
(covered calls, spreads).
|
||||
|
||||
### Audit
|
||||
|
||||
- **Audit large-lot threshold tuning.** `src/commands/audit.zig` uses
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue