Skip to content

Commit b76457a

Browse files
author
vanboompow
committed
docs: add CLAUDE.md, experiment configs, and parser test suite
1 parent 1e36892 commit b76457a

12 files changed

Lines changed: 2859 additions & 0 deletions

.experiments/log.jsonl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{"id":"exp-msgvault-20260313-122433-01","brief":"search-perf.md","hypothesis":"Pre-compiling the regexp in parseRelativeDate as a package-level variable eliminates repeated regexp.MustCompile overhead on every call, reducing ns/op for relative-date and complex query benchmarks.","files_changed":["internal/search/parser.go"],"metric_before":{"pass_rate":1,"bench_search_ns_per_op":80.16,"coverage":99.2,"test_count":95},"metric_after":{"pass_rate":1,"bench_search_ns_per_op":78.71,"coverage":99.2,"test_count":95},"kept":true,"status":"success","duration_s":92,"token_cost_usd":0.03,"timestamp":"2026-03-13T12:26:05Z"}
2+
{"id":"exp-msgvault-20260313-122605-02","brief":"search-perf.md","hypothesis":"Using a package-level defaultParser in the Parse convenience function eliminates the &Parser{} struct allocation and closure allocation on every call to Parse, reducing ns/op uniformly across all benchmarks since every benchmark uses the Parse convenience function.","files_changed":["internal/search/parser.go"],"metric_before":{"pass_rate":1,"bench_search_ns_per_op":78.71,"coverage":99.2,"test_count":95},"metric_after":{"pass_rate":1,"bench_search_ns_per_op":85.30,"coverage":99.2,"test_count":95},"kept":false,"status":"success","duration_s":142,"token_cost_usd":0.03,"timestamp":"2026-03-13T12:28:27Z"}
3+
{"id":"exp-msgvault-20260313-122827-03","brief":"search-perf.md","hypothesis":"Agent timeout or crash","files_changed":[],"metric_before":{"pass_rate":1,"bench_search_ns_per_op":78.71,"coverage":99.2,"test_count":95},"metric_after":{},"kept":false,"status":"error","duration_s":600,"token_cost_usd":0,"timestamp":"2026-03-13T12:38:27Z"}
4+
{"id":"exp-msgvault-20260313-123827-04","brief":"search-perf.md","hypothesis":"Agent timeout or crash","files_changed":[],"metric_before":{"pass_rate":1,"bench_search_ns_per_op":78.71,"coverage":99.2,"test_count":95},"metric_after":{},"kept":false,"status":"error","duration_s":600,"token_cost_usd":0,"timestamp":"2026-03-13T12:48:27Z"}
5+
{"id":"exp-msgvault-20260313-124827-05","brief":"search-perf.md","hypothesis":"Agent timeout or crash","files_changed":[],"metric_before":{"pass_rate":1,"bench_search_ns_per_op":78.71,"coverage":99.2,"test_count":95},"metric_after":{},"kept":false,"status":"error","duration_s":600,"token_cost_usd":0,"timestamp":"2026-03-13T12:58:27Z"}

CLAUDE.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,3 +249,51 @@ client_secrets = "/path/to/client_secret.json"
249249
[sync]
250250
rate_limit_qps = 5
251251
```
252+
253+
## Current State (as of 2026-03)
254+
255+
**Status:** Active — recent feature addition (web UI)
256+
**Last Active:** 2026 (web UI commit most recent)
257+
**Built:**
258+
- Full Gmail sync pipeline (full + incremental)
259+
- MIME parsing with charset detection
260+
- SQLite store (system of record) + FTS5
261+
- DuckDB/Parquet analytics engine (~3x faster than SQLite JOINs)
262+
- Bubble Tea TUI with drill-down navigation
263+
- React/TypeScript web SPA (Dashboard, Messages, Aggregate, Search, Deletions, Thread, Message detail)
264+
- Deletion staging + Gmail API execution (trash or permanent)
265+
- UTF-8 encoding repair tool
266+
- Pre-commit hooks (fmt + lint)
267+
268+
**Not Yet Built:**
269+
- App-level encryption at rest (database + attachments)
270+
271+
**Known Issues:**
272+
- runs first — requires (run once)
273+
- skips frontend if you just need the binary fast
274+
- Binary requires CGO_ENABLED=1 (go-sqlite3 + go-duckdb are C-linked)
275+
276+
277+
## Current State (as of 2026-03)
278+
279+
**Status:** Active - recent feature addition (web UI)
280+
**Last Active:** 2026 (web UI commit most recent)
281+
**Built:**
282+
- Full Gmail sync pipeline (full + incremental)
283+
- MIME parsing with charset detection
284+
- SQLite store (system of record) + FTS5
285+
- DuckDB/Parquet analytics engine (~3000x faster than SQLite JOINs)
286+
- Bubble Tea TUI with drill-down navigation
287+
- React/TypeScript web SPA (Dashboard, Messages, Aggregate, Search, Deletions, Thread, Message detail)
288+
- Deletion staging + Gmail API execution (trash or permanent)
289+
- UTF-8 encoding repair tool
290+
- Pre-commit hooks (fmt + lint)
291+
292+
**Not Yet Built:**
293+
- App-level encryption at rest (database + attachments)
294+
295+
**Known Issues:**
296+
- build target depends on web-build — requires node_modules (run web-install once before first build)
297+
- build-go skips frontend if you just need the binary fast
298+
- Binary requires CGO_ENABLED=1 (go-sqlite3 + go-duckdb are C-linked)
299+
- client_secret_ryanatquartermint.json is committed — do not leak

0 commit comments

Comments
 (0)