Context and documents now live on the server between turns (and across reloads), per project, as requested: mock/store/<trip>/docs/<docId>-<file> ORIGINAL uploaded bytes mock/store/<trip>/docs/<docId>-<file>.txt extracted text (+ header) mock/store/<trip>/chat.jsonl full LLM conversation Endpoints: GET /trip-store/:trip (manifest incl. doc texts), GET .../doc/:docId, GET .../chat (last 100 turns), POST .../doc, POST .../chat. /parse-doc's extraction factored into shared finishParse() so both paths use identical logic. The store dir is gitignored (PII). Client: enterTrip rehydrates tripDocs + chatLog from the server (loadTripStore, race-guarded, one-time migration of localStorage docs from older builds), re-renders past turns in the chat panel, and askLLM persists each turn fire-and-forget. localStorage now carries only the plan state. Verified end-to-end: drop 133 KB email → direct re-anchor, original + parsed files on disk, both turns in chat.jsonl → full page reload → doc chip, document and conversation restored from the server → question asked without re-upload answered correctly (AK-77Q2ZD, 14C/22A). Co-Authored-By: Claude <noreply@anthropic.com>
16 lines
288 B
Plaintext
16 lines
288 B
Plaintext
# map tile cache + server runtime
|
|
mock/.tilecache/
|
|
mock/server.log
|
|
|
|
# OSM data (downloaded by router/scripts/setup-osrm.sh)
|
|
osm/*.osm.pbf
|
|
osm/build/
|
|
|
|
# Go
|
|
router/router
|
|
router/bench
|
|
router/scripts/__pycache__/
|
|
|
|
# per-trip uploaded documents + chat logs (PII — never commit)
|
|
mock/store/
|