Skip to content

Describe the write-only prune in the paper - #38

Merged
gabewillen merged 2 commits into
mainfrom
docs/paper-v5-prune
Oct 21, 2026
Merged

gabewillen merged 2 commits into
mainfrom
docs/paper-v5-prune

Conversation

@gabewillen

Copy link
Copy Markdown
Contributor

Summary

This follow-up to #36 applies the final chore/prune-write-only removal list (#37) to the paper. #36 merged before these two commits were pushed, so they come here. It is docs only.

Merge after #37. The paper now describes the pruned engine.

What changed

  • Described as removed, each with packets byte-identical:
    • the dynamic threshold controller, its hysteresis, the emotion/sensitivity/precision/homeostatic adjustments and 19 knobs (migration 58);
    • the spike bypass. CheckSpikeBypass is now CheckCapacityFlush, which keeps only the capacity cap;
    • the 6D mood integrator and memories.ambient_mood (migration 57);
    • source_reliability, source_contradiction_count, source_last_verified_ts and the per-memory context column (migration 56). c_t stays in memory for boundary detection;
    • the affect_retrieval, reinforcement_enabled and sequential_edges_enabled flags;
    • ten always-default Context::Memory fields.
  • Described as live, with their packet effects:
    • the RLS blender (LoCoMo retrieved-set Jaccard 0.29, 1980/1986 differ);
    • ComputeCompositeScore (Jaccard 0.08);
    • UpdateSignalHistory, formerly UpdateThreshold (Jaccard 0.53). It keeps the score window that feeds uncertainty and the dt_ema cadence that feeds boundary gaps and pacing. m_rate stays in UpdateRateState for the maintenance hints;
    • the emotion projection in UpdateSensitivity (171/1986 differ). It feeds the composite score and the interrupt gate.
  • What the composite score drives. It shapes e_peak, which goes into the stored representative embedding and serves as the fallback topic anchor. It also drives working-memory admission through S_window and the score-variance term of uncertainty. It is never called a write gate.
  • Write rule. The rule is force_write (Durable retention) ∨ should_flush, and the capacity flush is part of should_flush.
  • BiasMid. It is described as the clamped quadratic remap x' = clamp(x − 4b·x(1−x), 0, 1), used at about 300 call sites and not foldable into intercepts. The retrieval biases (−0.175 / 0.325 / −0.25) are listed.
  • Negative results. The prune is added, and the lesson table gains the long-horizon emotion/mood "measured harm" verdict. That verdict was measured while the threshold still gated writes.
  • Markers. All 14 PRUNE: markers from Rewrite the paper around the v5 engine and fix its contradictions #36 are resolved.

Test plan

  • QUARTO_DISABLE_GIT=1 QUARTO_DISABLE_GITHUB=1 quarto render docs/paper gives no warnings and 0 unresolved cross-references.
  • Every removed and kept item was checked against origin/chore/prune-write-only:
    • the CoreStage composition in src/cortext.cpp;
    • capacity_flush.cpp, signal_history.cpp and accumulator_scores.cpp;
    • the e_peak use in boundary.cpp and write_gate.cpp;
    • the InitializeSensitivityPriors fields.

Apply the chore/prune-write-only removals (PR #37): the dynamic threshold
controller and its hysteresis, the spike bypass (now CheckCapacityFlush),
the 6D mood integrator, the stored source-reliability metadata and
per-memory context, and the dead config flags are described as removed.
State what the composite score still drives (the peak embedding, working
memory admission, uncertainty) and that it is not a write gate, keep the
RLS blender, composite score, signal history and emotion projection as
live with their packet effects, and describe BiasMid as the clamped
quadratic remap it is.
@gabewillen
gabewillen merged commit 8344028 into main Oct 21, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant