Files
rcourtman 054ef7de13 Merge metrics-only resource deltas by patch shape
The 2026-08-25 evening perf pass re-profiled the remaining frontend
costs on the 50-node mock rig after d5440ff43. Idle main-thread burn on
a throttled phone (~10.5s of long tasks per 30s on the worst-case mock)
and residual warm tab-entry cost both decomposed into per-changed-row
work that ignores what actually changed: every metrics tick deep-cloned,
re-canonicalized, and fully re-merged each patched row, and both store
commits then deep-unwrapped the merged rows again through whole-row
keyed reconciles.

The server's resource delta is a JSON merge patch, so the change shape
is already known. applyResourceStateDelta now records the top-level
keys each patch touched (platformData expanded one level), the
connection store publishes them with the resource revision and unions
them across the bounded history and the hidden-tab deferral set, and
mergeCanonicalResourceDeltaSnapshot takes a fast path for changed
non-host rows whose keys stay within the pass-through metric fields,
the proxmox facet mirror, and the four platformData metric mirror
leaves: the previous display row with just those subtrees cloned in
(a manual plain-data clone — structuredClone's per-invocation setup
dominates at this size). Both commit sites write fast rows as per-key
subtree patches (nested reconcile for records, direct sets for
primitives and platformData leaves) instead of whole-row reconciles,
and the connection store commits aligned ticks per index. Any other
change shape — additions, removals, repeated patches in one frame,
structural keys, agent rows (host coalescing) — keeps the full
clone-canonicalize-merge path, and the fast output is pinned
content-equivalent to it in resourceStateAdapters tests; a websocket
store test pins the per-key change shapes, the meta-history union, and
its unknown-shape contamination.

Measured on the pulse-dev rig (VM-to-VM, 50-node/1500-resource mock,
worst-case RandomMetrics, vs two d5440ff43 baseline runs): mobile-4x
idle long tasks 10.8/10.2s -> 3.9s per 30s; warm Alerts entry 5-rep
median long-task total 3.85s -> 1.52s; mobile warm Overview return
3.8/1.7s -> 1.0s; desktop Backups entry settle 1.06/1.20s -> 0.71s;
warm Storage/Overview sub-tab switch medians flat within rep spread;
desktop cold load and /api/state size unchanged.

Browser-verified on the rig build of this tree: live ticks render
through the fast path with per-cell DOM-vs-store consistency at two
samples 30s apart, zero console errors, desktop and 390px/4x mobile.
2026-08-25 15:40:05 +01:00
..

Pulse v6 Release Control

This folder is the current active release profile under the evergreen Pulse release control plane.

The evergreen control-plane files live one level up:

  1. docs/release-control/CONTROL_PLANE.md
  2. docs/release-control/control_plane.json
  3. docs/release-control/control_plane.schema.json

Start With These Control Files

  1. ../CONTROL_PLANE.md (evergreen governance, active-profile selection, and active-target rules)
  2. ../control_plane.json (machine-readable active profile and active target)
  3. internal/SOURCE_OF_TRUTH.md (stable human governance, readiness-assertion design rules, and locked decisions)
  4. internal/RELEASE_PROMOTION_POLICY.md (canonical stable-versus-prerelease promotion rules, rollout criteria, and rollback expectations)
  5. internal/status.json (live lane state, coverage-gap discovery records, readiness derivation rules, the active readiness assertion catalog, lane-to-subsystem ownership, structured evidence references, typed lane/subsystem decision records, and canonical ordered lists)
  6. status.schema.json (machine-readable contract for the status.json shape)
  7. internal/subsystems/registry.json (machine-readable subsystem ownership, explicit shared-ownership exceptions, and proof routing)
  8. internal/subsystems/registry.schema.json (machine-readable contract for the subsystem registry shape, shared-ownership declarations, and unordered-list uniqueness)

status.json reporting every lane as target-met means the tracked v6 repo-hardening work is at target. It does not, by itself, mean Pulse v6 is ready to cut a prerelease or approve stable/GA while phase-blocking readiness_assertions, open_decisions, or release_gates remain unresolved. Use python3 scripts/release_control/status_audit.py --pretty for the current derived repo_ready, rc_ready, and release_ready summary. Use status.json.coverage_gaps for active product-scope discovery records when the current lane map does not model a durable surface cleanly enough yet. Use status.json.candidate_lanes for the machine-readable promotion plan that turns durable coverage gaps into explicit future lane splits, additions, or expansions. The current highest-ranked surfaced candidate is policy-aware data governance. Use status.json.work_claims for the active lease-style reservation list that keeps multiple agents from picking the same governed slice at the same time. Record the claim immediately once the slice is chosen, and if an agent rolls straight from one slice to another it should replace the claim in the same status.json edit so the live reservation set never drops to a misleading no-owner gap. Support-only slices should still reserve the owning lane, candidate lane, coverage gap, or narrower governed item, and the claim summary should say why the plumbing is required for that governed surface. Candidate lanes should point at the owning target from docs/release-control/control_plane.json so lane-expansion work is routed to an explicit initiative. Use python3 scripts/release_control/status_audit.py --pretty to see any derived candidate_lane_queue entries when agents need a ranked next pick for the lane-expansion target. Use that same audit output to see the available_candidate_lane_queue, active claims, expired claims, and any claim conflicts before taking a new slice. Use status.json.readiness_assertions for the active required assertion set, its proof references, and any executable proof_commands that readiness assertion guardrails run. Use docs/release-control/control_plane.json for the active profile and active target that sit above this profile. Use python3 scripts/release_control/control_plane_audit.py --check to enforce that the active target stays current and does not remain active after its completion rule is already satisfied.

Supporting governance file:

  • CONSOLIDATION_MAP.md (legacy-doc demotion and archival map)
  • RETIREMENT_AUDIT_2026-02-27.md (file-by-file audited retirement decisions)
  • internal/CANONICAL_DEVELOPMENT_PROTOCOL.md (canonical subsystem development protocol)
  • internal/PULSE_ACCOUNT_PORTAL_SPEC.md (canonical Pulse Account portal IA, ownership boundaries, and candidate-lane scope)
  • internal/RELEASE_PROMOTION_POLICY.md (customer-facing release-train contract for stable versus the prerelease rc channel)
  • internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md (manual verification runbook for trust-critical release gates)
  • internal/RC_TO_GA_REHEARSAL_TEMPLATE.md (human record template for the non-publish GA rehearsal run)
  • internal/subsystems/*.md (per-subsystem contracts: truth, shared boundaries, extension points, forbidden paths, completion obligations)

Useful helper tools:

  • python3 scripts/release_control/contract_audit.py --check for structured subsystem contract metadata, explicit cross-subsystem dependency declarations, shared-boundary declarations, required sections, and canonical path references Shared-boundary entries must match the exact registry-derived sentence shape, not freeform prose. Local pre-commit runs the v6 machine audits with staged control-file content so validation is based on the actual index content being committed. Local pre-commit also blocks partial staging for hook-sensitive governance files under docs/release-control/v6/, scripts/release_control/, internal/repoctl/, .husky/pre-commit, and .github/workflows/canonical-governance.yml, because those checks still execute or structurally read working-tree content locally.
  • python3 scripts/release_control/status_audit.py --check Validates lane evidence, readiness assertions, release gates, decision records, and derived repo/release readiness.
  • python3 scripts/release_control/readiness_assertion_guard.py --active-target --proof-type automated Runs the machine-declared proof commands for automated assertions required by the active target phase straight from status.json.readiness_assertions.
  • python3 scripts/release_control/readiness_assertion_guard.py --active-target --proof-type hybrid Runs any executable hybrid proof commands required by the active target phase, without replacing the linked manual release gates.
  • python3 scripts/release_control/registry_audit.py --check
  • python3 scripts/release_control/subsystem_lookup.py <path> [<path> ...] --pretty --lean for subsystem ownership, proof routing, exact contract-focus lines, and compact lane context without pulling the full governance payload into every lookup Omit --lean when you explicitly need the full decision, release-gate, and status-summary payload.
  • python3 scripts/release_control/work_claim.py --kind <KIND> --id <ID> --summary <SUMMARY> --agent-id <AGENT_ID> --pretty Reserve or renew exactly one governed slice in a shared checkout before mutation without hand-editing status.json.
  • python3 scripts/release_control/worktree_base.py --base-branch <BASE_BRANCH> --pretty Ensures the canonical clean landing worktree exists for the base branch before an isolated mutating slice begins.
  • python3 scripts/release_control/worktree_claim.py --kind <KIND> --id <ID> --summary <SUMMARY> --agent-id <AGENT_ID> --pretty Reserves a governed mutating slice and creates a dedicated git worktree for it, isolating hooks, staged scope, and dirty state to that slice.
  • python3 scripts/release_control/worktree_finish.py --base-branch <BASE_BRANCH> --pretty Lands a finished isolated slice back onto the canonical clean landing worktree for the base branch.

For governed runtime changes, the completion guard also requires any staged contract update to touch a substantive contract section such as Purpose, Canonical Files, Shared Boundaries, Extension Points, Forbidden Paths, Completion Obligations, or Current State, not just metadata. Local pre-commit formatting is intentionally scoped to staged files so unrelated dirty worktree files are not mutated during commit. The staged Go formatter and the staged frontend prettier formatter both update the git index directly and avoid broad restaging, so partially staged files do not silently absorb unrelated hunks. The frontend formatter skips gracefully when prettier is not installed (fresh clones, linked worktrees without node_modules). Local pre-commit also blocks any unstaged edits to hook-sensitive governance files, so working-tree-only governance changes cannot make local validation disagree with the committed tree.

The old release-control orchestrator and loop tooling are retired. Direct, repo-aware sessions are now the only supported control-plane execution path. Post-release work should keep using this same profile until the control plane promotes a new active target such as stabilization, polish, or a named feature initiative.

Active Repo Scope

status.json.scope.control_plane_repo is pulse, and status.json.scope.repo_catalog is the canonical machine-readable repo map for the active workspace.

  • pulse: core desktop/runtime repo and canonical v6 release-control authority
  • pulse-pro: commercial operations, checkout, license-server, and relay-server
  • pulse-enterprise: closed-source enterprise and paid runtime features
  • pulse-mobile: mobile client, relay pairing, approvals, and local auth/state

Ignored for v6 control:

  • pulse-5.1.x
  • pulse-refactor-streams

Lean-Mode Rule

For v6 execution, agents must read ../CONTROL_PLANE.md and ../control_plane.json first, then SOURCE_OF_TRUTH.md and status.json. Open other docs only when direct evidence is needed for the active task.

For canonical subsystem work, the next file to open after those two is internal/CANONICAL_DEVELOPMENT_PROTOCOL.md, followed by the relevant file under internal/subsystems/.