no ecb messages

This commit is contained in:
2026-06-21 10:16:34 +02:00
parent 1c20c24961
commit 0df834108a
2 changed files with 89 additions and 8 deletions
@@ -30,6 +30,13 @@ NIGHT variables
LOCALITY RULE
every evaluation uses only local state + signals that have arrived.
no component reads another compartment's internal state.
CLEFT MESSAGE CHANNELS (the only PRE/POST/ASTRO interaction — each writes, others read)
glutamate PRE → POST, ASTRO (forward transmitter; cleared by ASTRO)
astro_Dserine ASTRO → POST (NMDA co-agonist gate)
retro_NO POST → PRE (+) (NO/BDNF: "release reached a responsive target")
retro_eCB POST → PRE () (endocannabinoid: "over-driven, suppress release" = DSE)
Each channel decays/clears; a component reads a channel into a local copy and computes locally.
```
---
@@ -46,7 +53,7 @@ sat(x, K) = x / (K + x)
```
K_release K_AMPA K_Dserine
Mg_eject Ca_STP Ca_TAG
Mg_eject Ca_STP Ca_TAG eCB_thr
elig dop_thr tag_thr tag_expiry
traj_thr endur_thr
spillover inactivation overload
@@ -96,24 +103,34 @@ that neighbours compete for.
## PRE
```
// Backward messages from POST (computed by POST from its own local state, read here):
// retro_NO (+) : POST responded — release reached a responsive target
// retro_eCB () : POST over-driven — suppress release (DSE)
// PRE reads these as arrived signals; it never reads POST's internal state.
DAY | AP:
if pre_budget < release_cost:
suppress(NT_flux)
if pre_fast_trace > traj_thr: // LOCAL success: I released strongly
pre_endurance_need += pre_fast_trace × (1 + retrograde_local)
// interrupted LOCAL success: I was releasing strongly (own fast_trace),
// confirmed by retro_NO that POST actually responded
if pre_fast_trace > traj_thr:
pre_endurance_need += pre_fast_trace × (1 + retro_NO_local)
exit
pre_fast_trace += spike_Ca(input_freq); pre_fast_trace *= decay(100ms)
drive = sat(pre_fast_trace, K_release)
drive = sat(pre_fast_trace, K_release) × (1 - retro_eCB_local) // DSE brake from POST
if RRP > 0:
NT_flux = RRP × drive
glutamate += NT_flux·Δt; RRP -= NT_flux·Δt; pre_budget -= NT_flux·fusion_cost
fill(RRP, pre_structure.slot_ceiling, pre_structure.refill_ceiling, vatpase_cost, pre_budget)
if glutamate > spillover: drive *= brake // output brake (not a fill)
if glutamate > spillover: drive *= brake // autoreceptor/astro brake (output)
// NO fill here — AP only depletes RRP; recovery happens in NOT_AP
// (sustained high-frequency firing therefore deepens short-term depression)
DAY | NOT_AP:
pre_fast_trace *= decay(100ms); pre_endurance_need *= decay(min)
refill(pre from astro_lactate[syn] + axon_ship_pre) // contested: lactate + shipment
fill(RRP, pre_structure.slot_ceiling, pre_structure.refill_ceiling, vatpase_cost, pre_budget)
retro_NO_local = retro_NO; retro_NO *= decay(s) // receive + channel clears (NO short-lived)
retro_eCB_local = retro_eCB; retro_eCB *= decay(s) // receive + channel clears
refill(pre from astro_lactate[syn] + axon_ship_pre) // contested: lactate + shipment
fill(RRP, pre_structure.slot_ceiling, pre_structure.refill_ceiling, vatpase_cost, pre_budget) // private reserve
if pre_fast_trace > elig: pre_possible_tag += pre_fast_trace
pre_possible_tag *= decay(s); dopamine *= decay(ms)
if dopamine > dop_thr and pre_possible_tag > tag_thr:
@@ -137,6 +154,13 @@ DAY | NOT_bAP:
// SOURCE 2 — NMDA: large Ca if local coincidence
if Vm > Mg_eject and astro_Dserine > thr and glutamate > 0:
post_fast_trace += NMDA_Ca(glutamate)·rise_speed(); post_budget -= NMDA_cost
retro_NO += NO_emit(post_fast_trace); post_budget -= NO_synth_cost
// POST → PRE (+): nNOS coupled to NMDA emits NO/BDNF — "your release was effective"
// backward brake to PRE (): strong depolarization → endocannabinoid (DSE)
if Vm > eCB_thr:
retro_eCB += eCB_emit(Vm); post_budget -= eCB_synth_cost
// POST → PRE (): "I am over-driven — reduce release"
post_fast_trace *= decay(ms)