STEN Marks icon system in Figma
New Figma library of 74 original xSten icons (clipped-corner dossier + sten-tick language) with Light/Dark tokens and an Icon wrapper (Size × Style + Glyph swap).
BLACK MONEY · Operations
Editor-uploaded updates, Cursor agent logs, strategic roadmap, and the last three GitHub pushes — one dossier.
Issue folio
Editor · Agent · Roadmap · GitHub
Read like a zine, not a ticket dump
No manual entries yet.
New Figma library of 74 original xSten icons (clipped-corner dossier + sten-tick language) with Light/Dark tokens and an Icon wrapper (Size × Style + Glyph swap).
Public dark mode now uses a drifting phosphor/cosmic/gold mesh aurora behind the dossier canvas. Light mode and Desk stay on their existing substrates.
Relationship dynamics now project from a canonical life-arc dossier into keep/drop claims, episode strips, and constellation graph nodes; kind/subtype are derived with optional Advanced override. Related-person claims mint pending person stubs on apply.
Smart facts accept comma- or newline-separated life arcs (friend since, school/job together, wedding, related-person tattoo gifts) and fan each clause into milestones, orgs, related people, and entity-graph edges in one pass.
Removed redundant tier/kind dual pickers. Curation is now Kind → Subtype with tiers derived for Studio filters; closeness driven by importance rating; Dynamics folded into Relationship; reciprocity tucked under optional details.
Refined curation deck with progressive sections, sticky actions, keyboard loop, connection/era previews, fact templates, EntityReviewCard graph preview, and duplicate/co-occurrence hints. Hardened smart facts (org/era/met/rel prefixes, confidence, quote minting) and entity-graph person edges (tags, workplace relatedTo, notable quotes) plus relationship era spans.
Freeform curation lines (Colleague @ Org from 2019–2023, family titles, keywords, quotes) parse into person fields, relationship edges, timeline milestones, and entity-graph nodes/edges. Shared extract path keeps Desk people curation and /desk/entity-graph aligned; Save & Next and Apply to graph now both commit the graph.
Curation deck gains full relationship kind/subtype/status/closeness/reciprocity/contexts, pins quotes/chunks/threads/posts/milestones, mints life-event milestones with person appearances, and upserts personRelationship edges. Timeline milestone APIs and ingest bridge accept people[].
Rewrote PeopleCurationDeck with relationship dynamics (kind/subtype/status/closeness/reciprocity/contexts), family/colleague conditional panels, evidence pin pickers (quotes/chunks/threads/posts/milestones), and life-events editor with mintMilestone. Save payload matches CurationSavePayload.
Family tier auto-fills year met to 1995 and requires maternal/paternal side plus relation tree title; colleague opens place/role/timeframe mapped to org fields.
facebookPost list preview no longer joins commentThread comments or media arrays (which froze Structure over ~15k posts). Preview uses scalar fields only; Social archive list orders by postedAt desc.
import-facebook-batch now walks the full tree (skipping photos/videos/audio/gifs/files), matches message_N.json plus slug_message_N.json and slug-N.json parts, logs thread/file counts before Sanity writes, and merges multi-part threads via groupFacebookExportFiles.
Desk /desk/people/curate card workflow patches person entityType, tiers, years, keywords, and relevance; supports skip/remind and soft-merge with reference rewrite. Person schema gains curation fields.
parseFacebookExportJson/stripUtf8Bom now accept Buffer|Uint8Array (asUtf8Text), and import scripts pass utf8 encoding to readFile so Messenger batch import no longer throws text.charCodeAt is not a function.
Header example path facebook-*/messages closed the JSDoc early (Unexpected *). Rewrote the path placeholder and dropped server-only from shared facebook-import modules so CLI import:facebook loads under tsx.