Two-week live test
Operational runbook for milestone 4 (spec §11.4): run Trove as your daily journal for two weeks and validate capture plus conversational retrieval.
Goals
- Capture broadly — HTTP ingest, iOS Shortcuts, Telegram, MQTT as available.
- Retrieve conversationally — use MCP (
search_records,get_record) from Cursor or another client at least daily. - Note gaps — record what you asked for that Trove could not answer.
Day 0 — setup checklist
Complete Try in a day first if you have not already — it covers install, config, first captures, and MCP query in one afternoon. Then use this checklist before starting the two-week run:
- [ ] Build host and modules:
make build - [ ] Create
trove.tomlwith[journal],[blobs],[http],[modules].paths - [ ] Point
[modules].pathsat the repomodules/directory (or install path) - [ ] Start
trove -config /path/to/trove.tomland confirm it stays running - [ ] Verify HTTP ingest:
curl -X POST http://127.0.0.1:8080/records -H 'Content-Type: application/json' -d '{"operation":"apply","source":"test","payload":{}}'expects201 - [ ] Connect MCP client to
http://127.0.0.1:8080/mcp— see MCP client setup - [ ] Import at least one iOS Shortcut — see iOS Shortcuts
- [ ] (Optional) Configure Telegram or MQTT source
Security note
By default Trove has no authentication on ingest, blobs, or MCP. For the live test, bind to localhost or a trusted tailnet (Tailscale). Optional gateway auth is Supported — enable when exposing beyond a trusted network:
[http.auth]
validator = "module.http-gateway.bearer"
[modules.settings.http-gateway]
token_env = "TROVE_HTTP_TOKEN"
See network auth. Do not expose :8080 to the public
internet without auth or a reverse proxy with TLS.
Example config
[journal]
path = "./trove.db"
# retention_days = 90 # optional; prunes revisions older than N days
[blobs]
path = "./blobs"
[modules]
paths = ["./modules"]
[http]
listen = "127.0.0.1:8080"
Binding to 127.0.0.1 limits exposure to the local machine during the live test.
Daily routine (days 1–14)
Capture (at least once per day)
Pick one or more:
| Source | Action |
|---|---|
| iOS Shortcut | Run Quick Note or Share Sheet capture |
| HTTP | POST /records for direct record append |
| Telegram | Send a message or photo to your bot |
| MQTT | Confirm sensor/event traffic appears (if configured) |
Retrieve (at least once per day)
In your MCP client, try:
search_recordswith a keyword from something you capturedget_recordon arecord_reffrom search resultslist_incomplete_recordsif using deferred capture flows
Log friction
Keep a simple notes file (outside Trove) with:
- Questions you asked that returned nothing useful
- Capture flows that failed or were too slow
- Features you wished existed
Validation checklist (end of week 2)
- [ ] At least 50 records captured across 2+ sources
- [ ] MCP search found records you remember capturing
- [ ]
search_recordsreflects recent activity accurately - [ ] Blob + photo flow tested at least once (
PUT /blobs→ append withblob_ref) - [ ] Trove survived at least one restart without data loss
- [ ] Documented top 3 retrieval failures and top 3 missing features
Known limitations during live test
| Limitation | Workaround |
|---|---|
| No auth by default | Localhost or tailnet; or enable [http.auth].validator — see auth |
| MQTT reconnect | Restart trove if broker was down at startup |
| Retention not enabled by default | Set [journal].retention_days to prune old revisions — see journal planning |
get_record does not inline blob bytes |
Note content_ref; fetch blob separately if needed |
After the live test
- Review friction notes against roadmap Later items.
- Decide whether embeddings, HA tap, remote modules, or sinks are worth building.
- File issues or planning updates for anything that blocked daily use.
See also
- Quick Start
- Roadmap — milestone 4 status
- iOS Shortcuts
- Telegram