Repository navigation
Release 0.96.0 - #289
Merged
Merged
Release 0.96.0#289
Conversation
The arm composed takes Brain.compose's own composition and teaching point, so a one-out of a composed setting reads on the battery by --settings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The indirect-object chamber, the head-function panel, causality by silencing and erasure, and the matched controls, on the library's address lesson. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… an emulation (#269) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y term (#266) Words by class at any size and words by pieces, the matched controls, one hearing, and a split of the read's logits by source at every word whose content a heard moment holds; the cortex the maps read as an emulation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s neuron's bias A synapse at rate zero keeps its optimizer moments as they are, and a neuron whose every inbound synapse steps at zero holds its bias and the bias's moments, on the CPU, torch and MLX. Learner.held() names both. Learners without a zero rate keep their bits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A lesson's step scaled by the running share of lesson rows answered wrong, to a power; one number, no count of lessons. The default arm on the grammar chamber and the sequence battery, and the lesson-step instrument with its declared two-stage protocol. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… site Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…atched controls (#267) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Passes of the chamber's 4,000 batches in the transformer's epoch order, with and without the rehearsal, every first-grammar panel read per pass, compute counted beside the offline control's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n and the place store's read in compiled passes The same equations as the ordinary path, other bits; off by default, so a brain without it keeps every bit. One head of one event per moment on the host; any other read takes the ordinary path. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Two branches from a start, one reaching the goal the meaning names; the first hop is said before the goal. Word by word, a sliding window of three, and the matched LSTM and transformer on held-out start-goal pairs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lesson used (#272) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
recall_copy is refused at compose and retune, and a saved memory with the pathway is refused by name (cadence 0.95.2 runs it): recall_gain with recall_tokens is the learned path from a read to its token's action. recall_tokens stays as a declaration that adds no synapse. The copy-tokens instrument retires to its receipt, read by its archived checker, and the battery's heads_copy arm leaves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ntrast and the recall write Under learning_compiled_moment the route contrast of the carried gains and the lesson's per-synapse contrast run as compiled passes (the same equations, other bits), and the recall memory's write goes into the rooms behind its slots in one compiled pass with the ordinary write's bits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On the composition's battery the share cost copying, induction and n-back (#258), and wide brains step at their width by default. The name is refused at compose and retune, and a checkpoint saved with the share is refused by name (cadence 0.95.2 runs it). Learner.update takes no share; every lesson without the share keeps its bits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…orm (#269) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… a support (#267) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The step that follows the running error settles no more lives than the default composition (C1 4 of 6 and 3 of 6) and costs held-out clauses by .10 to .13 (C2); the battery holds (C3). The library returns to main's source; the instrument keeps the control arm and the gates. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A new brain reads the contextual-choice chamber at learned_code=units, recall_window=2, recall_address=0.0, recall_temperature=0.1 as the recipe did (four founders, 32 of 32, every gate; contextual_choice.py --composition). attention is refused at compose and retune with those settings; a brain saved with the marker loads with the settings it saved. The contextual-choice and held-heads instruments name the settings and build the brains they built. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…; device benchmarks On torch, where the critic rests on the device, the dopamine is made there from the critic's value and the outcome's checks (the dopamine's, the critic's, the recall memory's reward step and the update's) come to the host in one read before anything is installed. On MLX the critic's and the memory's checks are made in the update's launch. A CUDA card the default backend's table has not read is calibrated once and cached. The device ledger, the lives and the whole-life benchmarks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…281) A one-out of the composition reads the next port as the successor induction, copying, two hops and the grammar chamber's paths need (each at chance without it). recall_next=False is refused at compose and by Brain(connectome), and a saved memory without the next port is refused by name (cadence 0.95.2 runs it). The ordered recall instrument's reward_recipe arm and the recorded-lives parity case without the next port leave with it. The memory and tuning guides drop the copy pathway, the share, attention and the next-less memory; the CHANGELOG holds them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… its parts and its panels Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Conflict: CHANGELOG.md (every lane's Unreleased section kept in merge order). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The spans read their ranges from the parts that are slices, a lesson's batch is read where its labels or targets are made, and the greedy choice's clear action has its own name. No value changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ecall_cortex_norm (#282, #269) The compiled act writes the moment in its own pass in place of Recall.witness, which is where recall_cortex_norm sets the carried cortex to unit norm. With both options named the carried cortex had norms of 0.85 to 2.25 on a life of 30 moments and the efficacies parted from the ordinary path's by 4e-3; they agree to 1e-14 with the norm taken in the compiled act as well. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… are kept Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…d an M4, the changelog Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…na reading (#253) A row whose value is wholly masked writes nothing and deepened its records; the depth takes the writing rows' unit cues. Lives without such rows keep their bits. The memory guide and the changelog name the arena's reading. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…d call Under learning_compiled_moment a greedy act runs its read, free solve, choice, working trace step and write in one compiled call, and a surprise lesson its read and judging solve in one; each part is the kernel the passes in turn call, so the bits are the option's (the test lives the same moments through the general path, the shortcuts and the one call). A moment the call does not take whole (a row that needs the rescue, a drive that is not finite, a stream's first moment) changes nothing and runs as before. The read's dot product and position term are written in place, without a helper's reference counts per slot. Type fixes for mypy in the spans and the lesson's batch. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ts records; the arena reading named Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…cks in one read, the calibration of an unread CUDA card, Lives Conflict: CHANGELOG.md (every lane's Unreleased section kept in merge order). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…wn name (#274) benchmarks/vocabulary holds a life module too, and one pytest process imports both: after the vocabulary chamber's tests the device test read the vocabulary's module and failed. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…device (#274, #281) Learner.synapse_rate of zero holds the synapse, its moments and its neuron's bias on the CPU, torch and MLX. The lives' own adaptive step held the synapse and the bias and kept adding the contrast to the moments: over three lessons and rewards a held synapse's velocity read 2.9e-2 and a held bias's 6.3e-2. It keeps them as the lone brain's learner does. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…rain/3 (#253) A brain saved with memory_fade loaded on 0.95.2 with the fade off. It takes a format name of its own, as maturity's does: cadence-brain/3 for any brain whose store fades, with a maturity or without, which 0.95.2 and earlier refuse as an unsupported format. Brain.load reads /1, /2 and /3 and refuses a fading store under another name and a /3 file whose store does not fade. A brain without the setting keeps its format, member names and bytes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…checkpoint format cadence-brain/3 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…no row without the learner's step An act that begins its streams (no slot yet, a trace of another batch) runs in the one compiled call: the read is silence, and the general write begins the streams. A lesson whose judged answer matches every label takes the learner's lesson of no row without the step's second validation, and reports from one record. The packed maps and the spans are found by identity without a generator. cost.py warms every kernel a pass can call before its clock (the general path's and the rescue's among them), and the address lesson's slots are one kind of array, so its kernel compiles once. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ne compiled call Under learning_compiled_moment a finite lesson that teaches a row runs its free phase, the two nudged phases and their residual checks in one call of the kernels settle_batch and residual launch, with the states, what they keep and the reports the passes in turn make (the test lives the same moments through each path, to the bit). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…rtex at unit norm Conflicts: _moment.after_spans (the lane's identity cache, typed), the generic import list (both names kept). The compiled write's helper (written) takes recall_cortex_norm as Recall.witness and act_after do. The read's key holds the working trace by value, since a trace's rows begin again in place. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
With recall_cortex_norm, memory_fade, maturity, the delayed gains or a synapse rate of zero named, a life of lessons, greedy acts, sampled moments and outcomes keeps its bits through the general path, the shortcuts and the one-call paths, and agrees with the ordinary path to rounding. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…on a quiet core and their parts Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ated with the chamber's loop Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…282) On Python 3.11 the type checker reads NumPy 2.4's stubs, where the cast is redundant and strict mypy refuses it; on NumPy 2.5's it is not. The action has a declared type in its place. No value changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…s to its written efficacies Under learning_compiled_moment a lesson by surprise that teaches a row runs, after its judgment, as one compiled call: the taught rows' free phase, nudged phases and checks, the contrast, the optimizer's moments and steps, the tied and bounded efficacies with their weights and blocks, the address lesson through the new weights and the carried routes' contrasts. Each part is the kernel the passes in turn launch, in their order, so the bits are the option's; Python stores what the call returns. The lesson's contrast is one compiled pass in every path of the option (the block products through the BLAS Numba calls). A learner with frozen or tied synapses or per-synapse rates, a route off the host and an update that is refused take the passes in turn, with their errors. Tests: the same lives through four modes (general path, shortcuts, one-call act and judgment, one-call lesson) to the bit, beside every other 0.96 option, at eight further settings of the learner and the wiring, and for a refused update. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…fter a lesson The taught lesson's call returns the stepped maps packed, without the grid's columns and each part apart, so the memory takes them as they are and the next read's packed maps are the call's where every map was stepped; the carried gains' step runs in the call (two routes and more; with one, NumPy's own sum of the column steps them); the update's finite checks vectorize. A judgment whose lesson teaches keeps neither its read nor its solve for the act that follows, which makes its own. An act after a lesson that taught nothing writes its moment in the choice's pass: it takes the read's own observations, which equal the act's to the bit, where it took the general write before. The same bits in less time, for every brain: a public operation enters and leaves the recall memory's scope without a context manager, a lesson without a learned code keeps its moment without one, one slot's labels are checked in two reductions, and the compiled moment's hot paths hold their imports at the module. Tests: lessons of nine and 24 taught rows, the packed maps a lesson in one call leaves. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…, its seconds and parts The tables of one session on a quiet Xeon core (three founders, default, compiled, transformer; founder 0's pass by part), the Python around an act's and a lesson's call, and the share of the default's seconds beside the ratio to the transformer. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…that fade, the attention opt-ins (#274, #282, #253, #269, #281) The version is 0.96.0 in the package, the install pins and the documentation links. The CHANGELOG's Unreleased entries are one dated section, and the rate-zero rule states the measured behaviour of a reciprocal pair where the CHANGELOG, the guides and the learner describe synapse_rate: both directions at zero hold the pair; one alone takes half its partner's step. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
muellerberndt
marked this pull request as ready for review
November 9, 2026 20:29
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release 0.96.0.
release-0.96holds the six lanes of the milestone merged ona513b74, the version at 0.96.0, the CHANGELOG's## 0.96.0 — 2026-11-11and the lanes' Unreleased entries consolidated into it. The coordinator merges, tags and publishes after the owner has read the release notes.Merged lanes
lane-096-device05b8f98cadence.Lives: many lives of the default composition stepped together on a device; an outcome's checks in one read on torch; the calibration of a CUDA card the table has not read; the ledger of a moment's crossings (#274)lane-096-cpu637f72flearning_compiled_moment: a greedy act, a lesson's judgment and a taught lesson each in one compiled call on the CPU (#282)lane-096-retention5cb1909memory_fade: place records nobody uses fade, slower the deeper their use; a fading store's brain saves checkpoint formatcadence-brain/3; where the composition's falls come from (#253, #280)lane-096-attention3718401recall_cortex_norm,recall_gain_afterandrecall_gain_next; the heads, vocabulary, crossing and held-token instruments (#269, #266, #267, #272)lane-096-simplifye114306recall_copyremoved; asynapse_rateof zero holds the synapse, its optimizer moments and its neuron's bias; the sequence battery'scomposedarm (#281)lane-096-research20b943cCommits of the integration
ed30e3e: the release. Version 0.96.0 inpyproject.toml,cadence.__version__, the install pins and the documentation links; the CHANGELOG section with one summary and the sections new, changed and removed, fixes, instruments and measured negatives; and the rate-zero rule stated as measured where the CHANGELOG,docs/settling.md,docs/tune.mdandLearnerdescribesynapse_rate: a reciprocal pair holds where both directions are at rate zero, and one direction alone takes half its partner's step.ebf2b12: the one-call act returns its action without a cast, which strictmypyrefuses under NumPy 2.4's stubs (CI's Python 3.11 job). No value changes.62052c1:Liveson a torch device keep the optimizer moments of a synapse at rate zero, as the lone brain's learner does;tests/test_rate_zero.pyholds the case.65fa89b: the device benchmarks' test loads itslifemodule by path under its own name, sincebenchmarks/vocabularyholds alifemodule too and one pytest process imports both.9bf5abe:Livesrefuse a recall memory with the cortex at unit norm by that name, and the backends guide's table of host-keeping options listsmemory_fadeandrecall_cortex_norm.fd02a02,a8207c7: the compiled act carries the cortex at unit norm underrecall_cortex_norm(the lane carried the fix into its later write helper as well), and three typing sites of4ecc474.1df37f1,e574fb1: the API reference'sRecallsignature withoutcopy; AGENTS.md names the second goal epic by its title (Goal: saying sentences formed in the brain #173).Merge conflicts and their resolution
CHANGELOG.md: every lane's section kept in merge order, then consolidated ined30e3e.benchmarks/sequence/battery.py: thecomposedarm (simplify) and thedefaultarm (research) both kept.src/cadence/stream.py: the three attention options joined toRecall.OPTIONSandCONSTRUCTION_OPTIONSwithoutcopy.docs/memory.md: the released-gains section placed before "Declared tokens".generic.pyand_moment.pythere.What changes for a caller
recall_copyis refused atcomposeandretunewith one sentence that namesrecall_gain, and a saved memory with the pathway is refused by name. cadence 0.95.2 runs it.memory_fadewrites the checkpoint formatcadence-brain/3, which earlier releases refuse; every other brain's checkpoint is unchanged.CADENCE_CALIBRATE=0keeps the margin of twice the work.memory_fade=0.0,recall_cortex_norm=False,recall_gain_after=0,recall_gain_next=0.0,learning_compiled_moment=False.cadence.Livesis a new class.Checks
At
637f72f, the last code head (ed30e3echanges the version string, the CHANGELOG and documentation text):ruff check src tests,mypyCADENCE_FUSED=0:test_learned_code,test_observation_code,test_recall_memory,test_reset_arousal)mainonbackend="cpu"tests/test_compiled_moment.py,tests/test_recall_cortex_norm.py,tests/test_documentation.pyAt
ed30e3eon the Apple machine:ruffandmypyclean in both environments,tests/test_documentation.py,tests/test_packaging.py,tests/test_public_configuration.py,tests/test_api_patch_audit.py,tests/test_rate_zero.pyandtests/test_memory_fade.pypass (201 passed), andcadence.__version__reads 0.96.0.Earlier heads of this branch:
8eb5426, the Mac full suite in two processes (2,969 passed, 236 skipped, 1 xfailed; the benchmark paths 1,138 passed, 7 skipped);ebf2b12, the gate, the identity (23 of 23), MLX (760 passed, 8 skipped) and the cross-lane lives (every act equal, parameters within 2e-10);feb9965, the one-process CI-style suite on Linux (4,060 passed). CI is green on every head it ran to completion; one run lost two matrix jobs to a GitHub Actions incident and passed in full on a rerun.The identity lives are 23 compositions that name none of the new options (the default, a wide association, two regions, an image, two slots, a fixed and a learned code,
attention=True, two heads,recall=False,recall_founder=True, arousal, maturity,memory_choice, rehearsal,recall_gainwith tokens, an apical compartment atteaching="deep", observers, four streams). Each lives 40 steps with rewards, teachers and episode ends, 12 lessons, a save, a reload and 10 further steps, and the lives with arousal a second life ofliveandwait. Compared withmain: every act, every checkpoint array, the description and the checkpoint after the reload.recall_copyis the exception:composeandretunerefuse it with the CHANGELOG's sentence.🤖 Generated with Claude Code