Clone this repository
For self-hosted knots, clone URLs may differ based on your setup.
Two strata records can share the same graph (same connected component)
but have different analyses. The lexmin hash conflated them. Now the ID
is the record rkey (e.g. 3mlrokf4gho2i), so each strata record is
distinct. Also simplifies getIsland โ direct URI lookup instead of
scanning all records.
๐พ Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
resolveVertexMeta was doing 14 sequential D1 queries (cards+citations,
chunked at 50). Now builds all statements upfront and runs them in a
single db.batch() call. Also removed ensureContrailReady from getIslands
entirely โ it only needs D1.
940ms โ 320ms cold, 200ms warm.
๐พ Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
- Canvas height 200px โ 320px (was cramming 301 nodes vertically)
- Remove hardcoded width/height HTML attrs โ constructor sizes via
getBoundingClientRect + devicePixelRatio
- Repulsion force 300 โ 500 for better spread
- Warmup ticks 120 โ 200 for settled layout
๐พ Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
Explore page fetches ?summary=true โ skips vertexMeta (244KB saved)
and trims edges to source/target/connectionType. Full data loads
on demand when viewing an island detail. Also skips contrail init
in summary mode for faster cold starts.
523KB โ 216KB, 1.2s โ 230ms cold, 90ms warm.
๐พ Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
Landing page only needs a json_extract query, not contrail schema
init. Cold start went from ~450ms to ~170ms.
๐พ Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>