Workspace
Files
Local-first file storage. Same store backs the FileBrowser, TextEditor, Spreadsheet, and indicator code.
Every editor in Finterm reads and writes through a unified IndexedDB-backed store. Open the FileBrowser window to browse what's there; double-click any file to spawn it in the appropriate editor (text → TextEditor, sheet → Spreadsheet, json → TextEditor).
Auto-save
Spreadsheet and TextEditor auto-save with a 4-second debounce after the last keystroke. The status bar shows the dirty / saved state explicitly so you know what's persisted. SettingsPanel's debounce is tighter (1 s) since changes apply immediately.
What's NOT in this store
- Workspace layouts — those live in their own IDB key, distinct from files.
- Custom indicators — also a separate IDB key (chart.customIndicators.v1) so they can be enumerated independently.
- Settings — stored as a single structured value via lib/settings.ts, not as a regular file.
warnLocal-first means local-only for now: clearing browser site data wipes all of it. Cross-device sync is on the roadmap; until then, export .ftm regularly if a layout matters.