Build & inspect

Start from the boundaries, then touch the code.

Syxon is a monorepo containing the shared product, the Global Server, native hosts, internal operations, the public site, and constitutional documents. This guide identifies the live spine and the checks that keep old species from regrowing.

Source availableRemembrance License draft

Repository map

Where the current system lives.

Syxon/
├── Production/
│   ├── Platforms/web/       shared React product runtime
│   ├── Platforms/shared/    API, identity, heap, publish, local contracts
│   ├── Platforms/ios/       native iOS host
│   ├── Global Server/       Cloudflare Worker and D1 migrations
│   ├── Monitor/             internal custodian dashboard
│   └── *.md                 protocol and implementation sources of truth
├── main-website/            syxon.org, docs, public witness material
└── REMEMBRANCE-LICENSE-DRAFT.md
Do not infer architecture from directory age.

The current boundary documents and route exposure audit outrank obsolete readmes, legacy table names, and compatibility routes.

Local development

Run the Global Server and web client separately.

The Global Server requires Node.js 20.19 or newer because its post-quantum cryptography dependency is native ESM. The deployment helper checks this before running release gates.

Global Server

cd "Production/Global Server"
npm install
npx wrangler dev

Web client

cd "Production/Platforms/web"
npm install
npm run dev

The web client uses VITE_GLOBAL_API_BASE when set. Local defaults target the Wrangler development origin. Use a test Worker and test persistence for any mutation, paid inference, or broad ingestion rehearsal.

iOS host

cd "Production/Platforms/web"
npm run ios:sync
npm run ios:open

The generated native public bundle is ignored. Change shared behavior in the web/shared kernel, sync it, and add Swift only for responsibilities owned by iOS.

API surface

Route families are capability boundaries.

FamilyAudiencePurpose
/health, public graph, heap, search, knowledge, resolversAnonymous, rate-limitedPublic reads required by the four spaces.
/v1/auth/*, /v1/account, actors, collaboration, heap writesAuthenticatedAccount, identity bridge, and user-owned mutation.
/v1/trust/*Public reads; confirmed visible actors writeLow-risk work claims, attestations, per-domain readouts.
/v1/ion/*Public policy reads; authenticated members; scoped reviewers and moderatorsParticipation levels, the Connect /participation/summary, real-world verification, private issues, unclaimed Actors, explicit duty assignments, conflict responses, and bounded review actions.
/v1/civic/*Anonymous accepted findingsPublic civic policy and reviewed public cases.
/v1/ion-commons/civic/*CustodiansPrivate intake, evidence, assembly, analysis, appeal, findings.
/v1/governance/*, proposals, votesAuthenticated or governedObject-scoped review and decisions.
current events, maintenance, audits, indexingMaintainersOperational jobs that never belong in casual product UI.
/v1/ion-commons/* workspaceInternal monitor or custodianSource spans, packets, candidates, releases, mirrors, rehearsals.

Every new literal route must be classified in Production/Global Server/ROUTE-EXPOSURE.md. Compatibility utilities are pruning candidates, not invitations for new clients.

Shared contracts

Code the boundary before styling the projection.

Production/Platforms/shared is the cross-client vocabulary for AuthorityScope, Context, Lens, View Recipe, Public Artifact, local ion, Vein, Proposal, Presence, capabilities, and agent intent. Adapters may translate legacy store and route names, but they must not leak those accidents into the stable product model.

  • Learn, Think, Explore, and Connect are the only product spaces.
  • Canvas geometry, clustering, camera, and animation remain derived presentation.
  • Models return semantic intent or proposals; the host owns authority, geometry, persistence, policy, tools, and accessibility.
  • Publishing creates a new Public Artifact and receipt; it never mutates a local ion into a public ION.
  • Account, Actor, and profile remain separate types and stores.

Authentication

First-party sessions use a secure cookie; API clients may use Bearer tokens.

  • Anonymous reads have lower IP-based rate limits and list caps.
  • Writes require an authenticated session and explicit authorization at the route.
  • Production auth requires durable D1 persistence and fails closed without it.
  • Deleted-account tombstones are checked on authenticated requests.
  • OAuth callback state and nonce are verified before token issue.
  • Trust writes additionally require confirmed email, visible profile, and a verified client signature.

Never put custodian sessions, Cloudflare tokens, recovery material, or provider keys in the repository, URLs, screenshots, or issue logs.

Local gates

Run the checks that match the boundary you changed.

Global Server

npm run typecheck
npm run audit:boundaries
npm run audit:route-exposure
npm run audit:retired-species
npm run test:ion-commons
npm test

Web client

npm run audit:copy
npm run attest:horizon
npm run attest:public-addressing
npm run test:e2e
npm run build

Public site

cd main-website
npm run validate:witness-ledger
npm run build

Focused tests are useful while iterating. Before release, the system-level gates matter because copy, routes, stores, and UI can each reintroduce a boundary violation the local component test cannot see.

Contribution contract

Keep the live spine coherent.

  1. Start from the five data planes and name every outward transition.
  2. Do not send private Context to public APIs for convenience.
  3. Do not imply personhood, expertise, consensus, or Sybil resistance from signatures alone.
  4. Keep AI output visibly proposed until a person or governed process accepts it.
  5. Do not create a new public truth store or treat Fracta geometry as canonical state.
  6. Remove stale routes only after consumers, migrations, checks, and runbooks are accounted for.
  7. Update implementation docs and public copy when behavior changes.
  8. Use direct language: say local ion, Public Artifact, proposal, review, released, and not available yet.

Ethical source

The source is available under the draft Remembrance License.

Do not describe the project as OSI open source. The license adds public-interest field-of-use restrictions and remains under specialist legal review. Contributions and downstream use must follow the current repository text, while public descriptions should say ethical source, source available, or Remembrance-licensed.