Turn Document

# Durable Options Tape History

Implemented the durable options tape plan: the live hot head is capped at 100 rows, older rows are preserved behind the scroll gate, ClickHouse history keeps execution context, and the Filter menu now exposes Signal versus All prints semantics.

2026-05-16 17:25 Beads: islandflow-200 Surface: Options Tape

## Summary

The options tape now behaves as a continuous instrument: the live cache stays lean, historical rows arrive only when scrolling asks for them, and old valid rows are not treated as degraded just because they came from durable history.

## Changes Made

- Changed the API default options live cache limit to `100`.
- Removed the unused scoped live auto-hydration path so history is loaded by the scroll gate.
- Fixed unbounded options/equities history retention so a cap of `0` means keep the loaded tail.
- Added a Filter menu `Options View` toggle for `Signal` and `All prints`.
- Ensured All prints clears signal-only side/type/min-notional/security constraints.
- Added a destructive ClickHouse reset runbook for local and VPS operators.

## Context

The prior plan called out useful partial work already in the repo: ClickHouse history endpoints, execution-context columns, scroll-hold behavior, and a shared row renderer. This implementation keeps those pieces and removes the ambiguous history/autohydration behavior around them.

## Important Implementation Details

- `/history/options` still uses the selected option filters and scope, including raw contract drilldowns.
- Storage tests now verify execution NBBO side, underlying spot, IV, and signal reasons survive normalization.
- The options row path already preferred `execution_nbbo_side`, `execution_underlying_spot`, and `execution_iv`; tests cover that behavior.
- The reset runbook is documented in `docs/clickhouse-reset-runbook.md` and is explicitly operator-confirmed.

## Expected Impact for End-Users

Traders can stay on a signal-first tape by default, switch to raw prints when investigating, and scroll into older ClickHouse-backed flow without seeing a separate stale-history treatment.

## Validation

- Passed: `bun test packages/storage/tests/option-prints.test.ts services/api/tests/live.test.ts apps/web/app/terminal.test.ts`
- Passed: `bun --cwd=apps/web run build`

## Issues, Limitations, and Mitigations

- The ClickHouse reset remains destructive. Mitigation: documented as a manual runbook only, never automatic startup behavior.
- No live browser smoke test was run in this turn. Mitigation: unit coverage and production build exercised the changed web paths.

## Follow-up Work

No new follow-up issue was needed. The implementation task is tracked and completed in `islandflow-200`.