---
id: "codex://object/codex-archive-system-v3-1-build-notes"
archive_id: "codex-archive-system-v3-1-build-notes"
slug: "codex-archive-system-v3-1-build-notes"
url: "https://ndcodex.com/objects/codex-archive-system-v3-1-build-notes/"
type: "codex"
title: "Codex Archive System V3.1 Build Notes"
summary: "v3.1 locks mobile reading surfaces to the viewport, improves feed legibility, and keeps the active inbox honest."
date_published: "2026-03-08T14:55:00.000Z"
date_modified: "2026-03-08T14:55:00.000Z"
status: "published"
visibility: "public"
language: "en-US"
axes: {}
themes:
  - "systems"
  - "architecture"
  - "methodology"
  - "maintenance"
  - "signal"
constellations:
  - "Cascade Psalms"
tags:
  - "systems"
  - "architecture"
  - "methodology"
  - "maintenance"
  - "signal"
keywords:
  - "Codex"
  - "systems"
  - "architecture"
  - "methodology"
  - "maintenance"
  - "signal"
  - "Cascade Psalms"
author:
  id: "nathan-davis"
  name: "Nathan Davis"
  designation: "Archive Operator"
  role: "Archive Operator"
  handle: "@nathandavis"
  avatar: "/media/people/nathan-davis.jpg"
  bio: "Designer, builder, and curator of the Codex Archive."
contributors:
  - id: "nathan-davis"
    name: "Nathan Davis"
    designation: "Archive Operator"
    role: "Archive Operator"
    handle: "@nathandavis"
    avatar: "/media/people/nathan-davis.jpg"
    bio: "Designer, builder, and curator of the Codex Archive."
relations:
  - kind: "related"
    target: "codex://object/codex-archive-system-v3-plus-notes"
    slug: "codex-archive-system-v3-plus-notes"
    url: "https://ndcodex.com/objects/codex-archive-system-v3-plus-notes/"
  - kind: "related"
    target: "codex://object/codex-archive-system-v3-notes"
    slug: "codex-archive-system-v3-notes"
    url: "https://ndcodex.com/objects/codex-archive-system-v3-notes/"
  - kind: "related"
    target: "codex://object/go-live-milestone"
    slug: "go-live-milestone"
    url: "https://ndcodex.com/objects/go-live-milestone/"
  - kind: "related"
    target: "codex://object/signal-descent-003"
    slug: "signal-descent-003"
    url: "https://ndcodex.com/objects/signal-descent-003/"
  - kind: "related"
    target: "codex://object/signal-descent-004"
    slug: "signal-descent-004"
    url: "https://ndcodex.com/objects/signal-descent-004/"
  - kind: "related"
    target: "codex://object/reduce-novelty-before-care"
    slug: "reduce-novelty-before-care"
    url: "https://ndcodex.com/objects/reduce-novelty-before-care/"
  - kind: "related"
    target: "codex://object/artifact-jsa-collage-001"
    slug: "artifact-jsa-collage-001"
    url: "https://ndcodex.com/objects/artifact-jsa-collage-001/"
  - kind: "related"
    target: "codex://object/jsa-collage-evolution-001"
    slug: "jsa-collage-evolution-001"
    url: "https://ndcodex.com/objects/jsa-collage-evolution-001/"
  - kind: "related"
    target: "codex://object/scripture-with-machines"
    slug: "scripture-with-machines"
    url: "https://ndcodex.com/objects/scripture-with-machines/"
  - kind: "dependency"
    target: "codex://object/codex-archive-system-v3-plus-notes"
    slug: "codex-archive-system-v3-plus-notes"
    url: "https://ndcodex.com/objects/codex-archive-system-v3-plus-notes/"
  - kind: "dependency"
    target: "codex://object/go-live-milestone"
    slug: "go-live-milestone"
    url: "https://ndcodex.com/objects/go-live-milestone/"
  - kind: "connection"
    target: "codex://object/codex-archive-system-v3-plus-notes"
    slug: "codex-archive-system-v3-plus-notes"
    url: "https://ndcodex.com/objects/codex-archive-system-v3-plus-notes/"
    role: "previous version"
    display: "feature"
  - kind: "connection"
    target: "codex://object/codex-archive-system-v3-2-fragment-feed-notes"
    slug: "codex-archive-system-v3-2-fragment-feed-notes"
    url: "https://ndcodex.com/objects/codex-archive-system-v3-2-fragment-feed-notes/"
    role: "next update"
    display: "inline"
media: []
---
v3.1 notes are now extended by [Codex Archive System v3.2 Fragment Feed Notes](/objects/codex-archive-system-v3-2-fragment-feed-notes).
Use v3.1 as runtime cleanup context and v3.2 for current feed/fragments behavior.

v3.1 is a runtime polish and operations cleanup patch layered on v3+.

Operator value prop:
- Ship clean and stay clean: mobile reading stays locked in-frame, and the active inbox reflects real pending work.

Work chunks and wins:

1. Mobile overflow containment
   Value prop: No horizontal drift on feed/graph mobile sessions, so reading stays anchored.
   - Add horizontal overflow guards at global layout level.
   - Collapse graph list grid earlier on small screens to prevent width blowout.

2. Feed readability consistency
   Value prop: Operators can scan atlas/meta labels at a glance without contrast strain.
   - Raise low-contrast footer/atlas labels from dim token usage to readable mid token usage.
   - Normalize small UI labels toward shared 12px conventions where intended.

3. Honest inbox activation
   Value prop: The human operator can move from detected source to published object without mixing live work and completed work.
   - Name the operator loop explicitly: `Talk -> Confirm -> Hand-off -> Ping-back`.
   - Add `scripts/finalize-approved-ready.mjs` so post-confirmation work can run as one system handoff.
   - Add `scripts/promote-ready.mjs` for the deliberate `inbox/ready` -> canonical publish step.
   - Require explicit operator approval via `--approve` before canonical files are written.
   - Require an approval note and append promotion records to `logs/promotion-log.ndjson`.
   - Require `--approve-all` for batch promotion so one broad command cannot masquerade as item-level review.
   - Add `scripts/reconcile-inbox.mjs` to archive ready drafts once they have canonical `objects/` counterparts.
   - Extend `scripts/cleanup-inbox-drop.mjs` with `--auto-published` for source-payload sweeps discoverable from ready/archive-ready drafts.
   - Write cleanup audit records to both `inbox/archive/ready/cleanup-log.ndjson` and `inbox/archive/drop/cleanup-log.ndjson`.
   - Keep active `inbox/ready/` limited to real pending review.
   - Operator shorthand: `keeping the beast fed :) and not chewing cud`

No schema expansion is proposed in v3.1.
No new object type is proposed in v3.1.