Skip to content
V5EvolutionPhase 7 · complete

Evolution.The system remembers itself.

This is the engineering memory layer for the portfolio ecosystem. Not the changelog (that lives at /changelog and reads the raw commit firehose). Not the project archive (those live at /architecture). This is the editorial registry of architectural moments the system chooses to remember — versioned, typed, append-only.

01 · The registry

17 architectural events recorded across 2026-05-142026-05-19. 16 currently active; the rest carry the superseded flag and remain in the archive for the audit trail.

Architecture
1
Infrastructure
3
AI system
7
Topology
2
Release
2
Milestone
2
Evolution
0

02 · Filter by category

Seven categories index the registry. Each one is an architectural axis — not a content type. Pick one to narrow the archive, or stay on the unfiltered view to read the full memory.

AI systemLumina, sub-agents, lab experiments, evals, memory layers — the AI-native subsystems.

03 · Scrub the timeline

The slider below is the cursor over the engineering memory. Drag the thumb, click a tick, step with the arrow keys, or press play to let the cursor advance from the present back to genesis. The track is a single WAI-ARIA slider — keyboard, mouse, and touch all work; reduced-motion preserves the slider but removes the easing.

cursorV5 Phase 6 closes — Sensory Awakening complete

2026-05-14
2026-05-19

04 · The memory

  1. AI systemSub-PR 6.3· pacing

    Cinematic pacing engine — multiplier provider + visibility beacon

    Four-tier duration multiplier taxonomy (FULL / MID / SNAPPY / STILL ≡ 1.0 / 0.85 / 0.65 / 0.0) derived from the cognition signal plus the visitor's reduced-motion preference. Exposed as a React Context with `usePacing()`. A once-per-session `pacing-transition` beacon fires on `visibilitychange:hidden` via `navigator.sendBeacon` with sessionStorage dedupe.

    V5 § 2.5 declares pacing an emotional engine, not visual ornament. The four discrete tiers replace the continuous multipliers other sites bikeshed over — a 0.83 vs 0.84 difference is invisible noise, but a 0.85 vs 1.0 difference is a perceptual shift. Spring physics is banned by the type signature, not just by convention.

  2. AI systemSub-PR 6.2· perception

    Cognition-aware navigation — first perception observer

    The cognition state taxonomy (arrival / exploring / engaged) plus a layout-mounted observer that watches `usePathname()` and fires `cognition-signal` and `navigation-flow` events to the 6.1 endpoint when the visitor has opted in. Renders null. Idle CPU is zero — the only work runs on pathname change, which is a user action.

    The three buckets are deliberately few: two collapses to new-vs-returning, four invites bikeshedding without adding decision value. The transitions are monotone in the per-session page counter so the inference layer never regresses a session from engaged back to exploring.

  3. AI systemSub-PR 6.4· memory

    Memory layer V5 — configurable TTL, IPv6 redaction, pages index

    The V4 Lumina memory layer gained four V5 extensions without breaking the V4 storage shape: configurable 14-30 day TTL via `V5_MEMORY_TTL_DAYS`, IPv6 PII redaction ordered before IPv4, a per-session recently-visited pages index at `lumina:session:<id>:pages` (foundation only — no observer yet), and a memory adoption hash that drives the live hit-rate tile on /lumina/brain. V4 visitors' sessions continue to read through the same keys with the same parser.

    Phase 10's ambient awareness needs longer context windows and a pages index it can read without ever revealing perception to the visitor. Shipping those primitives during the Phase 6 foundation pass — rather than at Phase 10 launch — keeps the V5 foundation work fully isolated from the eventual ambient surface.

  4. AI systemV4 Phase 4 · Sub-PR 4.5· lumina

    First Lumina sub-agent — architecture-critic

    A heuristic router selects between Lumina and the architecture-critic sub-agent based on critique-verb + architecture-noun signals in the user's message. The sub-agent appends its discipline overlay onto Lumina's base system prompt (inheriting the voice and tool registry); a synthetic init tool surfaces the routing decision through the existing tool-pill UI. Routing decisions land in a KV hash for observability.

    A second inference call for routing would have doubled cold-start latency. The deterministic classifier returns in under a millisecond. ONE sub-agent only — the V4 doc explicitly forbids the multi-agent mesh other AI portfolios sprawl into.

  5. AI systemV4 Phase 4 · Sub-PR 4.1· lumina

    Public Lumina transparency — /lumina/brain + /lumina/failures

    Two public surfaces document Lumina end-to-end: `/lumina/brain` exposes the system prompt, the tool registry, the memory contract, and the runtime topology; `/lumina/failures` is an append-only corrections log where every operator-grade mistake gets a what / why / fix paragraph triplet. V4 § 2.3 turned transparency from a footer link into a brand surface.

    Lumina would otherwise read as a black box whose behavior visitors had to take on faith. The transparency pages make every claim grep-able in the public repo, which is the asymmetry V5 § 2.3 later codified as a brand contract.

  6. AI systemV4 Phase 3· luminasuperseded

    Lumina V3 persistent memory — 14-day TTL + redaction + recap

    KV-backed session memory at `lumina:session:<id>`: full thread persistence for 14 days, PII redaction (emails, phones, AWS keys, IPv4, TC Kimlik, API key prefixes), an 8-turn verbatim context window, and a Haiku-generated session summary at `lumina:summary:<id>` once a thread crosses the cap. The chat survives reloads without leaking identity through the redaction net.

    The aim was operator-grade memory without `welcome back, Emre` ambient profile theatre. The redaction net is purely additive; the visitor-facing controls (opt-out + forget-me) shipped as separate sub-PRs once the memory layer itself was stable.

  7. AI systemV4 Phase 2 · Sub-PR 2.1· lab

    /lab scaffold + IAM Translator — first public AI experiment

    The `/lab` namespace opens with the IAM Translator: a streaming Bedrock-backed endpoint that turns plain-English AWS access requests into hardened least-privilege IAM JSON. Triple-gate budget — per-IP rate limit, per-experiment daily cost cap, server-side allow-list of input shapes — keeps experimentation cheap. Edge runtime; cost telemetry to the V4 dashboard.

    Phase 2's wedge was public-facing AI experiments that DEMONSTRATE Lumina's operating discipline rather than describe it. IAM Translator is the canonical example: the security-sensitive output forces the architecture to handle prompt injection, cost caps, and streaming failure modes correctly.

05 · Live adoption

The temporal layer records three kinds of adoption event: the page rendered, a category filter was applied, an event deep-link was followed. All three are aggregate-only — counters by event kind, no per-visitor identifier, no session-id field. The numbers below are cumulative since the layer was first enabled.

view

category_view

event_view

Playback verbsCounters for the five primitive operations the slider exposes — seek (click or keyboard jump), scrub (drag), play (auto-advance), pause, step (single frame). Every counter increments fire-and-forget; the slider never blocks on the network.

seek

scrub

play

pause

step

Timeline engagementThe slider's lifecycle hash. Each visitor session increments mounted at most once when the slider renders, and engaged at most once on the first scrub, seek, step, or play interaction. The rate captures awareness vs use.

mounted

engaged

engagement_rate

06 · Source files

Every entry in the registry is grounded in code. Click any row to read the file on GitHub.

V5 · Phase 7 · Temporal Architecture·Append-only registry·Versioned + typed + provenanced

Phase 7 closes here. Four sub-PRs landed the temporal architecture: 7.1 the schema + registry + archive surface, 7.2 the deterministic playback primitive, 7.3 the WAI-ARIA slider above, and 7.4 the per- project mount on /architecture pages (hidden below 768px viewport, opt-in by registry coverage). The observation window now opens before Phase 8 (cinematic topology); no further temporal surface ships during that window.