Kevin

Object Contract — Self-Describing Objects & Surface Archetype

ObjectTypeSpec declares metadata/actions/state flags; generic front doors dispatch; four Mona primitives render any type.

Object Contract — Self-Describing Objects & Surface Archetype (v2026-09-30T092906Z-5e473105f4) 2026-09-30 | ObjectTypeSpec declares metadata/actions/state flags; generic front doors dispatch; four Mona primitives render any type. 1 - OBJECT CREATION - Object creation and registration seedNavObjects seedNavObjects.ts registerPlaceableTypes ensureObject reconcileSeedObjects seedOpsBoardObjects seedOpsBoardObjects.ts registerPlaceableTypes ensureObject reconcileSeedObjects seedHomeObjects seedHomeObjects.ts registerPlaceableTypes ensureObject reconcileSeedObjects PlaceableTypeS… PlaceableObject 2 - OBJECT MANAGEMENT - Object placement and interaction usePlaceableObjects usePlaceableObjects.ts fetch + relocate placeable objects reorder()/move() PATCH the backend computeReorder computeReorder.test.ts arrayMove computeReorder Orderable useInlineEdit useInlineEdit.ts beginEdit() cancelEdit() commitEdit() PlaceableObjec… Orderable 3 - OBJECT RENDERING - Object rendering and display navObjectRenderers navObjectRenderers.tsx PlaceableObjectHost registerObjectRenderer usePlaceableObjects opsObjectRenderers opsObjectRenderers.tsx MisconfiguredCard registerObjectRenderer useOpsStream homeObjectRenderers homeObjectRenderers.tsx MisconfiguredCard registerObjectRenderer useHomeDataPresent ObjectRenderPr… VisibleRoute 1. Register Placeable Types 2. Ensure Objects 3. Reconcile Objects 4. Fetch Placeable Objects 5. Compute Reorder 6. Commit Edit PlaceableTypeSpec { type: 'nav-section', label: 'Navigation Section', config_schema: { ... }, metadata_schema: { ... }, actions: [ ... ] } PlaceableObjectRow { id: '123', type: 'nav-link', config: { ... }, container_id: '456', order: 0, level: 1, layout_id: '789', scope: 'global', data_binding: { ... }, parent_id: null, created_at: '2023-01-01T00:00:00Z' } The source does not show any direct interaction with MQTT or HTTP bindings in the provided files. The source does not show any direct interaction with the knowledge_router.py in the provided files. Legend actor = initiates work · process = code path · store = state on disk · bus = durable queue · dashed = separate process cyan = request flow · pink = state read/write · dashed green = pull / return path · red = refusal As of 2026-09-30 09:29 UTC, from commit 5e47310

Provenance

This drawing is generated, not drawn. It is rebuilt from the source files below, so when they change the picture changes — a diagram here cannot quietly describe a system that no longer works this way.

Owner
Kevin
Slug
object-contract
Rendered
2026-09-30T092906Z
From commit
5e473105f4
Updated
30 Sep 2026, 09:29 UTC
Sources at
5e47310
Watches
19 paths
  • daemon/src/placeable_objects
  • daemon/mona/src/components/objects
  • daemon/mona/src/components/placeableObjects
  • daemon/mona/src/hooks/usePlaceableObjects.ts
  • daemon/mona/src/hooks/useInlineEdit.ts
  • daemon/mona/src/pages/KbPage.tsx
  • daemon/mona/src/pages/NavSectionsPage.tsx
  • daemon/mona/src/registry/seedNavObjects.ts
  • daemon/mona/src/registry/navObjectRenderers.tsx
  • daemon/mona/src/registry/placeableSeed.ts
  • daemon/mona/src/registry/seedOpsBoardObjects.ts
  • daemon/mona/src/registry/opsObjectRenderers.tsx
  • daemon/mona/src/components/opswidgets/OpsPinnedBoard.tsx
  • daemon/src/composer/placement.py
  • daemon/mona/src/lib/canvasHandles.ts
  • daemon/mona/src/registry/seedHomeObjects.ts
  • daemon/mona/src/registry/homeObjectRenderers.tsx
  • daemon/mona/src/components/intellimeeting/HomeDataContext.tsx
  • daemon/src/knowledge_router.py