Clone this repository
For self-hosted knots, clone URLs may differ based on your setup.
- Add org.latha.island.validateRecord XRPC endpoint that checks records
against the lexicon schema (empty connections, inline URIs, object
format, missing required fields, inline synthesisDoc objects)
- Add schema migration CTA banner on island pages: when validateRecord
returns issues, show pink banner with issue list and PDS record link
- Fix note wrapping: edge notes use flex-basis 100% + overflow-wrap
instead of text-overflow ellipsis
- Add science.latha.org OXA document link in synthesis heading
- Add island:create CLI for publishing islands from centroid URLs
- Update lexicon schemas and generated types
- Add RDF ingest and link card scripts
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
Fix bug where first positional arg was filtered out when --top absent
(topIdx=-1 caused i!==0 to exclude index 0). Add og:title,
og:description, og:type, and twitter card meta tags to island detail
pages so link previews show the island title instead of "Stigmergic".
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
- New searchIslands XRPC: query published islands by URL (exact + domain match)
- /search SPA page with URL input, centroid display, matched edge highlighting
- island:search CLI: dedup cache vs published by centroid URL (published wins)
- Refactor records_strata → records_island throughout worker + contrail config
- Header nav: Explore, Search, Connect links
- Edge display: morphism name between nodes (source relates target)
- Remove Docker container, StrataContainer DO, PDS_APP_PASSWORD, and all
server-side PDS write routes (updateRecord, analyze, deriveIsland,
containerHealth, syncContainer, getCarryData)
- Frontend edits now write via OAuth session: putRecord for owner,
createRecord (fork) for non-owner with forkOf provenance
- OAuth callback preserves return page via state + sessionStorage
- Parallelize island:discover: batch 10 DIDs concurrently via
Promise.allSettled, merge resolvePDS+resolveHandle into single
resolveDidDoc call
- Add island:search CLI command for text-based island discovery
- Add synthesis-to-oxa migration script
- Edit chip moved below graph, shown/hidden based on auth state
- Login dialog uses placeholder instead of prefilled handle
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>