MiCyte — overview and glossary
BuiltRendered from 00-overview-and-glossary.md in the public repository. Edits belong there.
This page states what MiCyte is, maps its layers to packages, lists every wiki page, and defines the terms the wiki uses.
What MiCyte is
MiCyte is software for keeping records and building applications on them. An instance holds its own records at its own address and is the unit of identity on the network. Applications written and hosted by anyone work with an instance through the same data standard. Running the software needs no account and no rented service (96).
Records are datums: rows addressed <layer>-<value_group>-<iteration>, grouped into datum documents, stored in one per-instance database (MOS, Mycelial Ontological Schema). Primitive datums at 0-0-* (rudis) are the base units; other datums reference them. A datum's dependency closure gives it a content-derived identity (its hyphae value).
Layers
| Layer | Content | Packages | Page |
|---|---|---|---|
| L1 core | Addresses, the datum engine, MSS identity, SAMRAS and HOPS structures, the WORKBOOK-YAML codec | micyte/core/datum_semantics/, micyte/core/mss/, micyte/core/datum_ops/, micyte/core/datum_io/, micyte/core/structures/ | 10 |
| L2 persistence | The datum store port and its SQLite adapter, canonical document ids | micyte/ports/datum_store/, micyte/adapters/sql/, micyte/core/document_naming/ | 20 |
| L3 shell | Surfaces, shell state, tool eligibility, the workbench | micyte/state_machine/portal_shell/, micyte/tools/workbench_ui/ | 30 |
| Registers | Tools, channels, routines, lenses | micyte/tools/, micyte/channels/, micyte/automation/, micyte/state_machine/lens/ | 40 |
| Ports | Seams to outside services | micyte/ports/, micyte/adapters/ | 92 |
| Network | Keys, contracts, channels | micyte/core/crypto/, micyte/domains/contracts/, micyte/channels/ | 90 |
The hosting application in fnd_app/ runs on micyte/ and is not published (separation and responsibility).
Pages
Standards
Architecture
- 10 — L1 core engine
- 20 — L2 persistence
- 30 — L3 shell, runtime and UI
- 40 — Tools, channels, routines and lenses
- 41 — Archetypes and viewscopes
- 42 — The glyph library
- 43 — The local domain
- 44 — Project documents
Applications
- 46 — The applications: index, installation, app sandboxes
- Almanac
- Brevat
- Claude
- Director
- Enchir
- FND Service
- Oveure
- PIM
- Quiar – Freelancer
Datum identity
How-to
Network, ports, marketplace, hosting
- 90 — Network and contracts
- 91 — Channels
- 92 — Ports: type, extension, binding, grant
- 93 — The marketplace
- 96 — Accounts, hosting and access
- 98 — Taking your data with you
- 99 — What is not built
About the wiki
- README: purpose and status lines
- Separation and responsibility: what this repository contains and publishes
Glossary
Where this glossary and docs/contracts/portal_vocabulary_glossary.md differ, the contract is canonical.
- datum — one row of a datum document: a
datum_address, arawcell list, and references to other datums. Modelled byAuthoritativeDatumDocumentRowinmicyte/core/datum_documents.py. - datum address —
<layer>-<value_group>-<iteration>, for example0-0-1or3-1-4. Parsed byparse_datum_addressinmicyte/core/datum_semantics/engine.py. An address is local to its document. - rudi — a primitive datum at layer 0, value group 0 (
0-0-*). - hyphae value — a datum's content-derived identity, computed over its dependency closure and the rudi chain
0-0-1 … 0-0-K(derive_hyphae_chaininmicyte/core/mss/datum_identity.py). See 60. - hyphae flag — a registered binding from a hyphae value to a tool or lens. The registry exists and is empty (60).
- MSS — the canonical single-sequence encoding of datums and the version hash computed over it. See 61.
- hyphae (payload) — an MSS payload for one focused datum and its dependencies, naming its document (
micyte/core/mss/hyphae.py). The network's citation form. - SAMRAS — the structural model for breadth-first child-count trees: encode, decode, address derivation (
micyte/core/structures/samras/;docs/contracts/samras_structural_model.md). - HOPS — mixed-radix coordinate decoding for time and place (
micyte/core/structures/hops/). - datum document — a named set of datum rows, stored in MOS. Modelled by
AuthoritativeDatumDocumentinmicyte/core/datum_documents.py. - canonical document id —
lv.<msn>.<sandbox>.<name>.<version_hash>for sandbox documents;stl.andcptr.ids carry no sandbox (micyte/core/document_naming/;docs/contracts/datum_document_naming_taxonomy.md). - msn — an instance's node address in the registrar's
msntree. It must be non-empty and contain no.. - sandbox — a named group of datum documents inside an instance. The shell focuses one sandbox at a time.
- anchor — the document in a sandbox that holds the primitive, magnitude, abstraction and babelette rows the sandbox's other documents reference (82).
- archetype — the declared shape of a kind of document; a viewscope declares how it is drawn (41). Archetype tokens decide which tools a document is offered.
- WORKBOOK-YAML — a YAML rendering of datum documents used as a transport format, never as storage (
micyte/core/datum_io/codec.py). - tool — a registered object that draws a panel for a selected document (80).
- lens — a codec between a datum's stored value and its displayed value (81).
- channel — a read-only session surface for callers outside the instance (91).
- routine — a registered writer that runs when a condition holds (40).
- package / app / extension — an installable unit declared in
micyte/tools/_packages.py. An app ships tools; an extension fills a port (93). - port — a seam to an outside service; works when its type, extension, binding and grant all hold (92).
- contact card — an instance's registrar entry. Carries
public_signature(3-1-17) andinstance_endpoint(3-1-18) (90). - contract — an encrypted relationship between two instances, formed by a signed handshake and run on a minted symmetric key (90).
- magnet reference —
hy.<msn>.<sandbox>.<document>.<version_hash>.<address>, a reference to one datum in another instance. Resolving one across instances is not built.
Page conventions
Each page starts with a title, a > Status: line (see README) and a link back to this page. Statements about code name the file they are true of. Something not built is stated in one line as not built. Rules belong in docs/contracts/; pages link to them.