Brazen Framework - Reactor

Reactor Core: signals, event bus, job scheduler, and coordinator kernel

Seznam verzí skriptu, při kterých došlo ke změnám v kódu. Zobrazit všechny verze.

  • v1.0.0 22. 08. 2026

    Added

    • Single-file Reactor — merged modules into BrazenReactor.js.
    • BrazenSignals namespace — frozen spec surface on globalThis.BrazenSignals: atom, replicaAtom, computed, effect, batch, applyPatches, markDependency, assertAcyclic, BrazenSignalCycleError; path-keyed graph shared by atoms, Kernel writes, and follower applyPatches.
    • BrazenEventBus — Commands in, ordered Patches out; follower snapshot gate, seq-gap resync, bounded delivery queue.
    • BrazenJobRegistry — typed job descriptor registry (register, get, types); JOB_TYPE_RESOLVE / JOB_TYPE_DOWNLOAD constants on globalThis.
    • BrazenScheduler — coordinator job scheduler: schedule / enqueue, cancelPending / cancel, runReady / runUntilIdle, pendingCount; coalesce/merge, dependency DAG, ctx.spawn, AbortSignal scope, optional reassess.
    • BrazenScheduler.scheduleLocal / BrazenKernel.scheduleLocal / BrazenScheduler.cancelAll() — local-scope lanes (scope: 'local' | 'coordinator' on job descriptors).
    • BrazenKernel — Web Locks coordinator tab: start() / stop(), isCoordinator(), requestCoordinatorRole, getSeq(), dispatch() / handleCommand(), handleSnapshotRequest(), hydrate(), commitStatePatches, onCommandApplied, coordinatorLockName, abortSignal; pagehide / bfcache pageshow lifecycle.
    • Effect naming on signals.effect — optional third argument name for loop watchdog buckets.
    • Reactor profiler (BrazenReactorProfiler) — on globalThis.BrazenReactorProfiler and globalThis.__brazenReactor; bounded ring buffer, mark / time / enter / exit, report() / dump() / clear() / exportLog(); always on by default (opt-out via localStorage['brazen:reactor:profile'] = 'disabled').
    • Passive loop breakers — propagation re-entrancy skip, per-path write-storm skip, spawn storm refusal, lane re-arm cooldown, scheduler pump watchdog, long-task warnings.
    • Cause tracingpushCause / withCause / noteReentrant; async linkage via scheduler originCauseId; noteScheduledReentrant; summary() / incident payloads with cause breakdown and path aggregation.
    • Incident persistencesessionStorage lastIncident replay on load; corner badge on breaker trip.
    • Idle-watchdog — trips on sustained core-channel activity without quiescent gap; deferred while enterProductiveBusy() depth > 0.
    • Deep reentrancy origin capture — on genuine same-kind reentrancy (noteReentrant, stack depth ≥ 2).

    Changed

    • Kernel hydrate hardeningkernelHydrate required; throws if absent; async IDB snapshot from repos.
    • _invokeReposWriteThrough — coordinator dispatch requires repos.kernelWriteThrough.
    • confirm-tag-discovery job scheduling — coordinator runs DM-registered job after write-through.
    • Scheduler pump — no longer requires coordinator role (drains local lanes on followers); cooperative yield every 8 job starts; Kernel.handleCommand calls _ensureSchedulerPump() after _scheduleJobsForCommand.
    • enqueue-download — kernel no longer auto-enqueues resolve jobs; pipeline advancement is DM lane dispatcher + pipeline-pump wake only.
    • Follower EventBusmarkSnapshotReady() on coordinator; followers requestSnapshot() on boot before live patches.

    Fixed

    • DM progression freeze — removed over-broad _captureReentrancyOrigin from pushCause on every depth > 2 nest.
    • Idle-watchdog false positivesenterProductiveBusy / exitProductiveBusy defer incidents during active lane process-item work.
    • Scheduler pump hardening — watchdog releases stuck _schedulerPumpRunning; pending work re-pumps after completion/failure.
    • Scheduler pump gap — tag-discovery jobs drain via runReady() without reviving old DM lane-blocking pump.
    • Pipeline claim no-ops — use brazenSchedulerSkip (terminal skipped, not done).
    • Signals — no-op write guard (Object.is); computed version via reduce over dependency versions (not Math.max(...spread)).
    • Event Bus — follower snapshot gate buffers until snapshot; seq-gap resync; _deliveryQueue cap drops oldest; nextSeq overflow degrades; requestSnapshot channel-only publish.
    • Scheduler_depsSatisfied treats terminal states as satisfied; _executeJob no longer re-throws; _terminal map pruned at cap; cancel cleans _jobControllers.
    • Kernel / integration — path-keyed signal graph shared by Kernel and DM UI atoms; scheduler _localSeq decoupled from bus patch seq; steal/lock-loop cleanup + stop() awaits prior loop.
  • v0.0.1 15. 08. 2026