@sema-agent/server 7.147.0 → 7.148.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +1039 -24
- package/README.md +20 -7
- package/README.zh-CN.md +14 -8
- package/USAGE.md +380 -163
- package/deploy/sema-up/README.md +16 -5
- package/deploy/sema-up/chart/templates/NOTES.txt +1 -1
- package/deploy/sema-up/chart/templates/_helpers.tpl +20 -4
- package/deploy/sema-up/chart/values.yaml +3 -2
- package/deploy/sema-up/cluster-up.sh +74 -176
- package/deploy/sema-up/kube-up.sh +29 -49
- package/deploy/sema-up/lib/chart-run.sh +23 -0
- package/deploy/sema-up/lib/dataroot.sh +3 -3
- package/deploy/sema-up/lib/health.sh +62 -13
- package/deploy/sema-up/lib/helm-values-cluster.py +18 -0
- package/deploy/sema-up/lib/helm-values-kube.py +35 -0
- package/deploy/sema-up/lib/regcred.py +8 -0
- package/deploy/sema-up/lib/remote/helm-install.sh +3 -0
- package/deploy/sema-up/lib/remote/image-import.sh +6 -0
- package/deploy/sema-up/lib/remote/machine-precheck.sh +11 -0
- package/deploy/sema-up/lib/remote/region-probe.sh +3 -0
- package/deploy/sema-up/lib/remote/stack-ready.sh +26 -0
- package/deploy/sema-up/lib/remote/vxlan-guard.sh +8 -0
- package/deploy/sema-up/lib/render-stack.py +17 -0
- package/deploy/sema-up/lib/shell-text.sh +87 -0
- package/deploy/sema-up/lib/usage-flags.txt +10 -0
- package/deploy/sema-up/lib/usage-head.txt +1 -0
- package/deploy/sema-up/lib/usage-tail.txt +13 -0
- package/deploy/sema-up/preflight.sh +10 -8
- package/deploy/sema-up/sema-up.sh +14 -39
- package/deploy/sema-up/smoke.sh +7 -6
- package/deploy/sema-up/stack/compose.dataroot.yaml +3 -0
- package/deploy/sema-up/stack/compose.yaml +13 -1
- package/deploy/sema-up/stack/sema-stack-cluster.yaml +21 -0
- package/dist/adoption/plan.d.ts +24 -0
- package/dist/adoption/plan.js +53 -1
- package/dist/adoption/runner.d.ts +10 -1
- package/dist/adoption/runner.js +36 -16
- package/dist/adoption/wire.d.ts +3 -3
- package/dist/approval-card.d.ts +28 -30
- package/dist/approval-gate-currency.js +3 -2
- package/dist/approval-reconciler.d.ts +4 -13
- package/dist/approval-reconciler.js +2 -2
- package/dist/approval.d.ts +13 -11
- package/dist/approval.js +3 -3
- package/dist/audit.d.ts +10 -3
- package/dist/audit.js +15 -7
- package/dist/auth-bridge.d.ts +0 -14
- package/dist/auth-bridge.js +0 -7
- package/dist/auto-mode-face.d.ts +10 -7
- package/dist/auto-mode-face.js +7 -4
- package/dist/background-agent-name.d.ts +19 -1
- package/dist/background-agent-name.js +12 -2
- package/dist/background-session-reap.d.ts +1 -1
- package/dist/bake-runner/main.js +9 -6
- package/dist/bench/s1/arms.js +6 -5
- package/dist/bench/s1/live-deps.js +5 -2
- package/dist/bench/s1/run-firm.js +6 -5
- package/dist/bind-host.d.ts +25 -0
- package/dist/bind-host.js +25 -0
- package/dist/boot/adoption.d.ts +3 -0
- package/dist/boot/adoption.js +1 -0
- package/dist/boot/deployment-mods.d.ts +1 -1
- package/dist/boot/execution-env.d.ts +17 -7
- package/dist/boot/execution-env.js +37 -31
- package/dist/boot/exit-boundary.d.ts +2 -2
- package/dist/boot/exit-boundary.js +6 -5
- package/dist/boot/fatal-exit.d.ts +3 -5
- package/dist/boot/fatal-exit.js +2 -2
- package/dist/boot/leader.d.ts +15 -0
- package/dist/boot/leader.js +17 -15
- package/dist/boot/memory-consolidation.d.ts +37 -29
- package/dist/boot/memory-consolidation.js +11 -5
- package/dist/boot/org-memory.js +1 -1
- package/dist/boot/parked-revive-gate.js +2 -2
- package/dist/boot/reapers.d.ts +4 -3
- package/dist/boot/reapers.js +19 -16
- package/dist/boot/resolve-spec.d.ts +5 -3
- package/dist/boot/resolve-spec.js +55 -67
- package/dist/boot/retention-lane.d.ts +4 -4
- package/dist/boot/retention-lane.js +2 -2
- package/dist/boot/runner-deps.d.ts +28 -7
- package/dist/boot/runner-deps.js +11 -4
- package/dist/boot/runtime-caps.d.ts +2 -2
- package/dist/boot/runtime-caps.js +16 -2
- package/dist/boot/session-faces.d.ts +16 -7
- package/dist/boot/session-faces.js +114 -94
- package/dist/boot/shutdown.d.ts +5 -4
- package/dist/boot/shutdown.js +6 -4
- package/dist/boot/stage-01-config.js +9 -1
- package/dist/boot/stage-02-web-admin-pull.d.ts +1 -0
- package/dist/boot/stage-02-web-admin-pull.js +6 -1
- package/dist/boot/stage-03-store-backend.d.ts +3 -0
- package/dist/boot/stage-03-store-backend.js +4 -3
- package/dist/boot/stage-04-stores.d.ts +2 -0
- package/dist/boot/stage-04-stores.js +2 -2
- package/dist/boot/stage-05-execution-env.d.ts +7 -3
- package/dist/boot/stage-05-execution-env.js +2 -2
- package/dist/boot/stage-06-runners.d.ts +10 -12
- package/dist/boot/stage-06-runners.js +23 -15
- package/dist/boot/stage-07-capability-layer.d.ts +11 -8
- package/dist/boot/stage-07-capability-layer.js +5 -3
- package/dist/boot/stage-08-reapers.d.ts +11 -8
- package/dist/boot/stage-08-reapers.js +3 -3
- package/dist/boot/stage-09-leader.d.ts +12 -15
- package/dist/boot/stage-09-leader.js +12 -4
- package/dist/boot/stage-10-http-server.d.ts +12 -15
- package/dist/boot/stage-10-http-server.js +7 -4
- package/dist/boot/store-evidence.d.ts +20 -0
- package/dist/boot/store-evidence.js +13 -0
- package/dist/boot/stores.d.ts +3 -0
- package/dist/boot/stores.js +21 -10
- package/dist/boot/task-list-lane.d.ts +4 -4
- package/dist/boot/web-admin.d.ts +4 -2
- package/dist/boot/web-admin.js +55 -35
- package/dist/boot/webfetch-summarize-lane.d.ts +1 -1
- package/dist/boot-reclaim.d.ts +3 -1
- package/dist/boot-reclaim.js +1 -1
- package/dist/brain.d.ts +7 -18
- package/dist/brain.js +5 -17
- package/dist/budget.js +6 -6
- package/dist/capabilities/center-plugins.d.ts +7 -1
- package/dist/capabilities/center-plugins.js +32 -10
- package/dist/capabilities/center-wiring.js +1 -1
- package/dist/capabilities/composite-members.d.ts +2 -2
- package/dist/capabilities/composite-members.js +2 -2
- package/dist/capabilities/repo-tools.d.ts +2 -0
- package/dist/capabilities/repo-tools.js +14 -12
- package/dist/capabilities/scenarios.d.ts +6 -15
- package/dist/capabilities/scenarios.js +11 -16
- package/dist/capabilities/skills.d.ts +1 -1
- package/dist/capabilities/tool-defer.d.ts +1 -1
- package/dist/capability-facts.d.ts +38 -11
- package/dist/capability-facts.js +47 -8
- package/dist/card-void.d.ts +4 -4
- package/dist/card-void.js +1 -1
- package/dist/center-credential-renewer.d.ts +6 -2
- package/dist/center-credential-renewer.js +7 -3
- package/dist/config-catalog.d.ts +16 -1
- package/dist/config-catalog.js +62 -56
- package/dist/config-dir-trust.d.ts +37 -4
- package/dist/config-dir-trust.js +88 -44
- package/dist/config-invariants.d.ts +42 -3
- package/dist/config-invariants.js +69 -5
- package/dist/config-lkg.d.ts +23 -1
- package/dist/config-lkg.js +17 -3
- package/dist/config-provider.d.ts +9 -9
- package/dist/config-provider.js +25 -110
- package/dist/config-pull-failure.d.ts +50 -0
- package/dist/config-pull-failure.js +48 -0
- package/dist/config-types.d.ts +26 -17
- package/dist/config.d.ts +8 -16
- package/dist/config.js +113 -47
- package/dist/delegated-session-owner.d.ts +1 -1
- package/dist/deleted-session-ids.d.ts +3 -2
- package/dist/deployment-governance.d.ts +3 -3
- package/dist/deployment-shape.d.ts +30 -4
- package/dist/deployment-shape.js +7 -0
- package/dist/egress-redirect.d.ts +25 -7
- package/dist/egress-redirect.js +20 -2
- package/dist/elicitation.d.ts +6 -5
- package/dist/elicitation.js +23 -22
- package/dist/engine-identity.d.ts +28 -0
- package/dist/engine-identity.js +10 -0
- package/dist/entry-problems.d.ts +5 -7
- package/dist/entry-problems.js +1 -1
- package/dist/env-facts.js +2 -1
- package/dist/env-witness.d.ts +7 -0
- package/dist/env-witness.js +16 -0
- package/dist/execution-lane-caps.d.ts +5 -18
- package/dist/execution-lane-caps.js +0 -22
- package/dist/execution-placement.d.ts +58 -18
- package/dist/execution-placement.js +41 -2
- package/dist/field-conflict.d.ts +7 -11
- package/dist/field-conflict.js +3 -3
- package/dist/file-history-capture.d.ts +3 -3
- package/dist/file-history-disclosure.js +1 -0
- package/dist/fleet/fleet-bus.d.ts +21 -3
- package/dist/fleet/fleet-bus.js +35 -25
- package/dist/fleet/fleet-reconciler.js +2 -2
- package/dist/fleet/serving-lease.js +3 -3
- package/dist/fleet-client.js +3 -3
- package/dist/fleet-lease.d.ts +0 -1
- package/dist/fleet-lease.js +4 -5
- package/dist/history-anchor.d.ts +23 -3
- package/dist/history-anchor.js +24 -4
- package/dist/hitl-delivery.d.ts +90 -0
- package/dist/hitl-delivery.js +98 -0
- package/dist/hooks/classic-stations.d.ts +8 -11
- package/dist/hooks/classic-stations.js +0 -7
- package/dist/hooks/hook-llm.d.ts +5 -1
- package/dist/hooks/hook-llm.js +24 -15
- package/dist/hooks/hook-runner.d.ts +67 -57
- package/dist/hooks/hook-runner.js +260 -186
- package/dist/host-lsp-manager.d.ts +22 -8
- package/dist/host-lsp-manager.js +4 -1
- package/dist/http/active-run-conflict.d.ts +2 -43
- package/dist/http/active-run-conflict.js +3 -7
- package/dist/http/admission.d.ts +4 -18
- package/dist/http/admission.js +75 -78
- package/dist/http/approval-sweeps.d.ts +3 -3
- package/dist/http/approval-sweeps.js +54 -30
- package/dist/http/caller-trust.d.ts +8 -10
- package/dist/http/caller-trust.js +1 -2
- package/dist/http/claim-heartbeat.d.ts +49 -0
- package/dist/http/claim-heartbeat.js +46 -0
- package/dist/http/claimed-run.d.ts +4 -3
- package/dist/http/dispatch.d.ts +8 -1
- package/dist/http/dispatch.js +76 -30
- package/dist/http/durable-run-leg.d.ts +3 -3
- package/dist/http/durable-run-leg.js +17 -12
- package/dist/http/execution-context.d.ts +17 -43
- package/dist/http/execution-context.js +7 -5
- package/dist/http/health-reader.d.ts +36 -0
- package/dist/http/health-reader.js +21 -0
- package/dist/http/health-self-report.d.ts +9 -9
- package/dist/http/health-self-report.js +4 -4
- package/dist/http/idempotency.d.ts +9 -5
- package/dist/http/idempotency.js +4 -4
- package/dist/http/memory-compliance-failure-reply.d.ts +15 -16
- package/dist/http/memory-compliance-failure-reply.js +4 -2
- package/dist/http/memory-face-fault-reply.d.ts +67 -0
- package/dist/http/memory-face-fault-reply.js +71 -0
- package/dist/http/memory-store-refusal-reply.d.ts +1 -1
- package/dist/http/memory-store-refusal-reply.js +3 -0
- package/dist/http/owner-access.d.ts +391 -67
- package/dist/http/owner-access.js +371 -35
- package/dist/http/principal-gate.d.ts +24 -81
- package/dist/http/principal-gate.js +24 -68
- package/dist/http/refusal-body.d.ts +35 -2
- package/dist/http/refusal-body.js +34 -0
- package/dist/http/request-guards.d.ts +9 -13
- package/dist/http/request-guards.js +34 -68
- package/dist/http/resume-composition.d.ts +37 -0
- package/dist/http/resume-composition.js +18 -0
- package/dist/http/resume-ctx-read.d.ts +35 -12
- package/dist/http/resume-ctx-read.js +25 -6
- package/dist/http/resume-legs.d.ts +21 -18
- package/dist/http/resume-legs.js +189 -129
- package/dist/http/retired-skill-manifest.d.ts +1 -1
- package/dist/http/route-ctx.d.ts +25 -32
- package/dist/http/routes/a2a-serve.d.ts +43 -5
- package/dist/http/routes/a2a-serve.js +58 -37
- package/dist/http/routes/admin-config-refresh.js +2 -2
- package/dist/http/routes/admin-drain.js +2 -2
- package/dist/http/routes/admin-memory-optout.js +4 -3
- package/dist/http/routes/adoption.d.ts +3 -0
- package/dist/http/routes/adoption.js +17 -10
- package/dist/http/routes/agents-roster.js +13 -7
- package/dist/http/routes/approvals-assistant.js +70 -65
- package/dist/http/routes/attachments.js +2 -2
- package/dist/http/routes/background.d.ts +3 -3
- package/dist/http/routes/background.js +9 -17
- package/dist/http/routes/capabilities.js +15 -18
- package/dist/http/routes/config-catalog.js +2 -2
- package/dist/http/routes/devices.d.ts +3 -3
- package/dist/http/routes/devices.js +4 -4
- package/dist/http/routes/diagnostics.d.ts +27 -3
- package/dist/http/routes/diagnostics.js +27 -21
- package/dist/http/routes/engine.js +2 -2
- package/dist/http/routes/fleet.js +5 -3
- package/dist/http/routes/images.js +10 -6
- package/dist/http/routes/leader.d.ts +7 -2
- package/dist/http/routes/leader.js +12 -3
- package/dist/http/routes/mcp-reconnect.d.ts +1 -1
- package/dist/http/routes/mcp-reconnect.js +7 -15
- package/dist/http/routes/memory-bundle.js +4 -7
- package/dist/http/routes/memory-compliance.js +4 -4
- package/dist/http/routes/memory-consolidation.js +6 -9
- package/dist/http/routes/memory-origin.d.ts +2 -0
- package/dist/http/routes/memory-origin.js +7 -8
- package/dist/http/routes/memory-policy.js +17 -12
- package/dist/http/routes/notify-wake.js +10 -19
- package/dist/http/routes/observability.js +3 -3
- package/dist/http/routes/principal-inbox.d.ts +1 -1
- package/dist/http/routes/principal-inbox.js +2 -2
- package/dist/http/routes/projects.d.ts +1 -1
- package/dist/http/routes/projects.js +3 -2
- package/dist/http/routes/retention-ops.js +6 -9
- package/dist/http/routes/rules.js +20 -5
- package/dist/http/routes/run-memory-capture.d.ts +2 -2
- package/dist/http/routes/run-memory-capture.js +6 -12
- package/dist/http/routes/run-permission-mode.d.ts +2 -2
- package/dist/http/routes/run-permission-mode.js +10 -17
- package/dist/http/routes/runs.js +146 -231
- package/dist/http/routes/session-memory-sync.d.ts +2 -2
- package/dist/http/routes/session-memory-sync.js +7 -13
- package/dist/http/routes/session-sync.d.ts +4 -2
- package/dist/http/routes/session-sync.js +21 -20
- package/dist/http/routes/sessions-list.d.ts +3 -3
- package/dist/http/routes/sessions-list.js +9 -9
- package/dist/http/routes/sessions.js +87 -124
- package/dist/http/routes/shared-memory.js +6 -6
- package/dist/http/routes/side-query.js +2 -2
- package/dist/http/routes/tasks.js +136 -120
- package/dist/http/routes/trace-usage.d.ts +0 -12
- package/dist/http/routes/trace-usage.js +40 -46
- package/dist/http/routes/workflows.d.ts +39 -4
- package/dist/http/routes/workflows.js +42 -14
- package/dist/http/run-concurrency-cap.d.ts +20 -12
- package/dist/http/run-concurrency-cap.js +39 -26
- package/dist/http/run-read-face.d.ts +3 -5
- package/dist/http/run-read-face.js +8 -13
- package/dist/http/send.d.ts +12 -3
- package/dist/http/send.js +42 -6
- package/dist/http/server.d.ts +39 -40
- package/dist/http/server.js +36 -11
- package/dist/http/sse-log.d.ts +17 -10
- package/dist/http/sse-log.js +7 -7
- package/dist/http/stored-body-replay.d.ts +12 -0
- package/dist/http/stored-body-replay.js +2 -2
- package/dist/http/submit-ctx.d.ts +16 -8
- package/dist/http/submit-ctx.js +6 -2
- package/dist/http/submit-replay.d.ts +19 -6
- package/dist/http/submit-replay.js +18 -6
- package/dist/http/sync-submit-body.d.ts +3 -4
- package/dist/http/sync-submit-body.js +4 -5
- package/dist/http/wire-types.d.ts +4 -3
- package/dist/identity-source.d.ts +36 -5
- package/dist/identity-source.js +27 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/key-resolver.d.ts +32 -0
- package/dist/key-resolver.js +23 -9
- package/dist/leader/diffup.js +2 -1
- package/dist/leader/endpoint.d.ts +26 -5
- package/dist/leader/endpoint.js +154 -14
- package/dist/leader/fanout.d.ts +3 -0
- package/dist/leader/fanout.js +78 -63
- package/dist/leader/leader.d.ts +16 -0
- package/dist/leader/leader.js +43 -3
- package/dist/leader/merge.d.ts +9 -1
- package/dist/leader/merge.js +16 -1
- package/dist/leader/repair-wire.js +1 -1
- package/dist/leader/wire.d.ts +36 -3
- package/dist/leader/wire.js +59 -18
- package/dist/lsp-evict.d.ts +6 -4
- package/dist/lsp-evict.js +2 -3
- package/dist/memory-operator-faces.d.ts +5 -4
- package/dist/memory-operator-faces.js +1 -1
- package/dist/memory-scope.d.ts +29 -2
- package/dist/memory-scope.js +64 -15
- package/dist/memory-store-refusal.d.ts +5 -2
- package/dist/memory-sync-client.d.ts +3 -2
- package/dist/memory-sync-client.js +6 -3
- package/dist/model-compat.d.ts +17 -8
- package/dist/model-compat.js +6 -2
- package/dist/model-context-window.d.ts +18 -0
- package/dist/model-context-window.js +2 -0
- package/dist/model-entry-headers.d.ts +46 -4
- package/dist/model-entry-headers.js +2 -2
- package/dist/model-entry-refusal.d.ts +35 -16
- package/dist/model-entry-refusal.js +40 -27
- package/dist/model-plane-face.d.ts +19 -11
- package/dist/model-plane-face.js +9 -1
- package/dist/model-plane-probe.d.ts +2 -0
- package/dist/model-plane-probe.js +17 -0
- package/dist/model-provider.d.ts +3 -3
- package/dist/model-route-endpoint.d.ts +9 -5
- package/dist/model-route-endpoint.js +29 -7
- package/dist/model-select.d.ts +16 -0
- package/dist/model-select.js +4 -0
- package/dist/mountinfo.d.ts +37 -0
- package/dist/mountinfo.js +47 -0
- package/dist/namespaced-rule-name.d.ts +23 -14
- package/dist/namespaced-rule-name.js +8 -11
- package/dist/net-address.d.ts +1 -1
- package/dist/observability/corrupt-read-seat.d.ts +4 -4
- package/dist/observability/corrupt-read-seat.js +5 -3
- package/dist/observability/fail-open.d.ts +58 -38
- package/dist/observability/fail-open.js +60 -38
- package/dist/observability/logger.d.ts +22 -1
- package/dist/observability/logger.js +89 -12
- package/dist/observability/metrics.js +3 -4
- package/dist/observability/otel-exporter.js +2 -1
- package/dist/observability/principal-context.d.ts +14 -7
- package/dist/observability/principal-context.js +8 -3
- package/dist/observability/run-terminal.d.ts +7 -1
- package/dist/observability/run-terminal.js +5 -2
- package/dist/orchestration/hardened-vm-runner.d.ts +1 -0
- package/dist/orchestration/hardened-vm-runner.js +11 -5
- package/dist/orchestration/hardened-vm-worker-runner.d.ts +0 -14
- package/dist/orchestration/hardened-vm-worker-runner.js +5 -0
- package/dist/orchestration/hardened-vm-worker.js +2 -1
- package/dist/orchestration/workflow-completion-inbox.d.ts +3 -3
- package/dist/orchestration/workflow-completion-inbox.js +3 -2
- package/dist/org-delivery-gate.d.ts +5 -4
- package/dist/org-delivery-gate.js +7 -6
- package/dist/outbound-dispatcher.d.ts +1 -1
- package/dist/outbound-dispatcher.js +6 -12
- package/dist/owner-brands.d.ts +81 -0
- package/dist/owner-brands.js +42 -0
- package/dist/owner-faces.d.ts +531 -0
- package/dist/owner-faces.js +126 -0
- package/dist/parked-decide.d.ts +67 -5
- package/dist/parked-decide.js +127 -5
- package/dist/parked-revive-surface.d.ts +14 -4
- package/dist/parked-revive-surface.js +5 -4
- package/dist/peer-directory.d.ts +6 -8
- package/dist/peer-directory.js +3 -2
- package/dist/permission-rule-vocab.d.ts +53 -8
- package/dist/permission-rule-vocab.js +30 -2
- package/dist/plugins/adoption-log-sql.d.ts +0 -22
- package/dist/plugins/adoption-log-sql.js +5 -3
- package/dist/plugins/approval-ask-retired-delete-by-task-m50.d.ts +7 -0
- package/dist/plugins/approval-ask-retired-delete-by-task-m50.js +17 -0
- package/dist/plugins/approval-ask-store-file.d.ts +18 -7
- package/dist/plugins/approval-ask-store-file.js +37 -14
- package/dist/plugins/approval-ask-store-memory.d.ts +12 -4
- package/dist/plugins/approval-ask-store-memory.js +24 -10
- package/dist/plugins/approval-ask-store-sql.d.ts +39 -20
- package/dist/plugins/approval-ask-store-sql.js +41 -10
- package/dist/plugins/approval-exemption-skill-m46.d.ts +20 -0
- package/dist/plugins/approval-exemption-skill-m46.js +25 -0
- package/dist/plugins/approval-exemption-store.d.ts +6 -1
- package/dist/plugins/approval-exemption-store.js +14 -0
- package/dist/plugins/approval-nonce-store.d.ts +39 -12
- package/dist/plugins/approval-nonce-store.js +72 -23
- package/dist/plugins/blob-backend.d.ts +2 -0
- package/dist/plugins/blob-backend.js +9 -6
- package/dist/plugins/caching-session-store.d.ts +13 -1
- package/dist/plugins/caching-session-store.js +43 -4
- package/dist/plugins/checkpoint-index-columns.d.ts +32 -5
- package/dist/plugins/checkpoint-index-columns.js +36 -1
- package/dist/plugins/checkpoint-store-face.d.ts +83 -10
- package/dist/plugins/checkpoint-store-face.js +18 -1
- package/dist/plugins/device-store-sql.js +1 -0
- package/dist/plugins/ensure-index.d.ts +13 -1
- package/dist/plugins/ensure-index.js +154 -21
- package/dist/plugins/ensure-schema-lock-policy.d.ts +0 -15
- package/dist/plugins/ensure-schema-lock-policy.js +3 -2
- package/dist/plugins/file-run-store.d.ts +63 -23
- package/dist/plugins/file-run-store.js +138 -83
- package/dist/plugins/host-platform.d.ts +24 -3
- package/dist/plugins/host-platform.js +15 -1
- package/dist/plugins/image-bake-store-sql.js +2 -0
- package/dist/plugins/imported-layer-root-retirement.d.ts +2 -2
- package/dist/plugins/k8s-pod-reaper.d.ts +1 -3
- package/dist/plugins/k8s-pod-reaper.js +0 -1
- package/dist/plugins/leader-run-store-sql.d.ts +22 -0
- package/dist/plugins/leader-run-store-sql.js +34 -4
- package/dist/plugins/local-checkpoint-store.d.ts +58 -23
- package/dist/plugins/local-checkpoint-store.js +195 -76
- package/dist/plugins/local-data-dir-modes-m39.js +2 -1
- package/dist/plugins/local-docker-capacity.d.ts +93 -0
- package/dist/plugins/local-docker-capacity.js +194 -0
- package/dist/plugins/local-docker-reaper.d.ts +92 -0
- package/dist/plugins/local-docker-reaper.js +102 -0
- package/dist/plugins/local-engine-high-water.d.ts +4 -2
- package/dist/plugins/local-engine-high-water.js +4 -1
- package/dist/plugins/local-session-store.d.ts +358 -125
- package/dist/plugins/local-session-store.js +824 -251
- package/dist/plugins/local-session-window.d.ts +3 -2
- package/dist/plugins/local-session-window.js +3 -2
- package/dist/plugins/local-sidecar-quarantine.js +3 -2
- package/dist/plugins/local-task-attachment-store.d.ts +18 -1
- package/dist/plugins/local-task-attachment-store.js +22 -1
- package/dist/plugins/memory-embedder.js +9 -7
- package/dist/plugins/memory-engine-pg.d.ts +3 -2
- package/dist/plugins/memory-engine-pg.js +14 -5
- package/dist/plugins/memory-engine-sql-apply.d.ts +8 -4
- package/dist/plugins/memory-engine-sql-apply.js +6 -8
- package/dist/plugins/memory-engine-tidb.d.ts +4 -2
- package/dist/plugins/memory-engine-tidb.js +11 -2
- package/dist/plugins/memory-optout-grant-store-sql.d.ts +1 -1
- package/dist/plugins/memory-optout-grant-store-sql.js +3 -3
- package/dist/plugins/memory-run-store.d.ts +39 -27
- package/dist/plugins/memory-run-store.js +72 -70
- package/dist/plugins/one-time-migration-marker.d.ts +10 -0
- package/dist/plugins/one-time-migration-marker.js +7 -0
- package/dist/plugins/one-time-migrations.d.ts +186 -45
- package/dist/plugins/one-time-migrations.js +442 -119
- package/dist/plugins/org-delivery-quota-store.js +2 -1
- package/dist/plugins/permission-rule-store-file.d.ts +3 -3
- package/dist/plugins/permission-rule-store-sql.d.ts +4 -63
- package/dist/plugins/permission-rule-store-sql.js +6 -86
- package/dist/plugins/pg-pool.d.ts +1 -31
- package/dist/plugins/pg-pool.js +16 -7
- package/dist/plugins/remote-env-e2b.d.ts +7 -25
- package/dist/plugins/remote-env-e2b.js +34 -25
- package/dist/plugins/remote-env-host.d.ts +2 -9
- package/dist/plugins/remote-env-host.js +34 -22
- package/dist/plugins/remote-env-k8s.d.ts +40 -45
- package/dist/plugins/remote-env-k8s.js +107 -58
- package/dist/plugins/remote-env-local-docker.d.ts +148 -14
- package/dist/plugins/remote-env-local-docker.js +367 -72
- package/dist/plugins/remote-scratchpad.js +4 -0
- package/dist/plugins/retention-deployment.d.ts +49 -17
- package/dist/plugins/retention-deployment.js +39 -8
- package/dist/plugins/run-preview-m45.d.ts +11 -0
- package/dist/plugins/run-preview-m45.js +19 -0
- package/dist/plugins/run-store-sql.d.ts +56 -68
- package/dist/plugins/run-store-sql.js +127 -116
- package/dist/plugins/s3-answer.d.ts +2 -1
- package/dist/plugins/sandbox-reaper.d.ts +26 -0
- package/dist/plugins/sandbox-reaper.js +2 -0
- package/dist/plugins/scenario-prefix-switch-m42.d.ts +54 -0
- package/dist/plugins/scenario-prefix-switch-m42.js +55 -0
- package/dist/plugins/scheduler-support.d.ts +16 -1
- package/dist/plugins/scheduler-support.js +22 -2
- package/dist/plugins/schema-consistency.d.ts +42 -9
- package/dist/plugins/schema-consistency.js +212 -11
- package/dist/plugins/schema-drift-sentence.d.ts +4 -1
- package/dist/plugins/schema-drift-sentence.js +4 -4
- package/dist/plugins/schema-ensure-legs.d.ts +9 -0
- package/dist/plugins/schema-ensure-legs.js +1 -1
- package/dist/plugins/schema-indexes.js +3 -0
- package/dist/plugins/schema-live-columns.d.ts +14 -5
- package/dist/plugins/schema-live-columns.js +10 -10
- package/dist/plugins/send-user-file.js +2 -1
- package/dist/plugins/session-birth.d.ts +37 -0
- package/dist/plugins/session-birth.js +38 -0
- package/dist/plugins/session-epoch-anchor.d.ts +40 -12
- package/dist/plugins/session-epoch-anchor.js +33 -11
- package/dist/plugins/session-ext-table.d.ts +27 -3
- package/dist/plugins/session-ext-table.js +19 -6
- package/dist/plugins/session-fork.d.ts +15 -1
- package/dist/plugins/session-fork.js +3 -0
- package/dist/plugins/session-ownership.d.ts +1 -1
- package/dist/plugins/session-placement.d.ts +22 -16
- package/dist/plugins/session-placement.js +15 -12
- package/dist/plugins/session-row-sql.d.ts +12 -0
- package/dist/plugins/session-row-sql.js +3 -3
- package/dist/plugins/session-run-rollup.d.ts +29 -0
- package/dist/plugins/session-run-rollup.js +40 -0
- package/dist/plugins/session-store-sql.d.ts +38 -12
- package/dist/plugins/session-store-sql.js +130 -30
- package/dist/plugins/session-withdraw-sql.d.ts +36 -0
- package/dist/plugins/session-withdraw-sql.js +42 -0
- package/dist/plugins/shared-memory-store-sql.d.ts +0 -69
- package/dist/plugins/shared-memory-store-sql.js +2 -1
- package/dist/plugins/shell-sentinel-owner-m48.d.ts +20 -0
- package/dist/plugins/shell-sentinel-owner-m48.js +3 -0
- package/dist/plugins/snapshot-bucket-presence.d.ts +2 -1
- package/dist/plugins/sql-driver.d.ts +1 -1
- package/dist/plugins/sql-driver.js +2 -1
- package/dist/plugins/sql-errors.d.ts +32 -5
- package/dist/plugins/sql-errors.js +55 -7
- package/dist/plugins/sql-json-column.d.ts +8 -7
- package/dist/plugins/sql-json-column.js +10 -6
- package/dist/plugins/store-backend.d.ts +84 -15
- package/dist/plugins/store-backend.js +186 -55
- package/dist/plugins/store-contracts.d.ts +90 -30
- package/dist/plugins/store-contracts.js +22 -1
- package/dist/plugins/store-fault.d.ts +28 -2
- package/dist/plugins/store-fault.js +20 -2
- package/dist/plugins/task-attachment-store.d.ts +15 -3
- package/dist/plugins/task-attachment-store.js +22 -9
- package/dist/plugins/tidb-pool.js +23 -8
- package/dist/plugins/web-search.js +5 -3
- package/dist/plugins/workflow-run-store-sql.d.ts +6 -1
- package/dist/plugins/workflow-run-store-sql.js +11 -5
- package/dist/principal-jwt.d.ts +4 -4
- package/dist/principal-jwt.js +20 -5
- package/dist/principal-shape.d.ts +41 -0
- package/dist/principal-shape.js +19 -0
- package/dist/question.d.ts +13 -23
- package/dist/question.js +21 -39
- package/dist/request-declaration-refusal.d.ts +35 -12
- package/dist/request-declaration-refusal.js +21 -9
- package/dist/request-form.d.ts +58 -0
- package/dist/request-form.js +72 -0
- package/dist/request-image-urls.d.ts +8 -2
- package/dist/request-image-urls.js +2 -1
- package/dist/request-images.d.ts +20 -0
- package/dist/request-images.js +59 -0
- package/dist/request-key-closure.d.ts +6 -7
- package/dist/request-key-closure.js +15 -2
- package/dist/resource-suspend.d.ts +7 -16
- package/dist/resource-suspend.js +1 -1
- package/dist/retired-name-host-notice.d.ts +21 -0
- package/dist/retired-name-host-notice.js +12 -0
- package/dist/rule-entry-list.d.ts +2 -2
- package/dist/rule-entry-list.js +3 -4
- package/dist/rule-issue-reading.d.ts +58 -0
- package/dist/rule-issue-reading.js +14 -0
- package/dist/rules-consent.d.ts +5 -3
- package/dist/rules-consent.js +1 -0
- package/dist/run-acceptance.d.ts +3 -1
- package/dist/run-acceptance.js +3 -0
- package/dist/run-local.d.ts +14 -6
- package/dist/run-local.js +92 -80
- package/dist/run-stale-default.d.ts +7 -0
- package/dist/run-stale-default.js +2 -0
- package/dist/runs.d.ts +26 -15
- package/dist/runs.js +39 -27
- package/dist/runtime-caps-resolver.d.ts +21 -6
- package/dist/runtime-caps-resolver.js +17 -4
- package/dist/runtime-governance.d.ts +2 -2
- package/dist/runtime-governance.js +5 -3
- package/dist/sealed-key-layout.d.ts +12 -5
- package/dist/sealed-key-layout.js +5 -0
- package/dist/sealed-key.d.ts +12 -2
- package/dist/sealed-key.js +115 -27
- package/dist/security.d.ts +128 -158
- package/dist/security.js +163 -59
- package/dist/sema-config-dir.d.ts +20 -0
- package/dist/sema-config-dir.js +25 -0
- package/dist/server-secret-env.d.ts +21 -5
- package/dist/server-secret-env.js +14 -4
- package/dist/session-children-retire.d.ts +7 -5
- package/dist/session-children-retire.js +7 -2
- package/dist/session-deletion.d.ts +88 -0
- package/dist/session-deletion.js +8 -0
- package/dist/session-erase.d.ts +145 -0
- package/dist/session-erase.js +115 -0
- package/dist/session-error-wire.d.ts +5 -5
- package/dist/session-error-wire.js +1 -1
- package/dist/session-incarnation.d.ts +52 -5
- package/dist/session-incarnation.js +19 -2
- package/dist/session-policy-wire.d.ts +6 -3
- package/dist/session-policy-wire.js +11 -1
- package/dist/session-resident-background.d.ts +0 -71
- package/dist/session-resident-background.js +4 -3
- package/dist/session-row.d.ts +2 -1
- package/dist/session-rules-seat.d.ts +12 -0
- package/dist/session-rules-seat.js +19 -0
- package/dist/session-titler.d.ts +7 -15
- package/dist/session-titler.js +1 -1
- package/dist/spec-fields.d.ts +57 -3
- package/dist/spec-fields.js +72 -51
- package/dist/store-posture.d.ts +136 -20
- package/dist/store-posture.js +188 -3
- package/dist/stored-request-hooks-m20.js +2 -2
- package/dist/stores-sql/background-agent-store-sql.d.ts +11 -2
- package/dist/stores-sql/background-agent-store-sql.js +73 -20
- package/dist/stores-sql/checkpoint-store-sql.d.ts +33 -28
- package/dist/stores-sql/checkpoint-store-sql.js +75 -44
- package/dist/stores-sql/mailbox-store-sql.d.ts +7 -4
- package/dist/stores-sql/mailbox-store-sql.js +31 -32
- package/dist/stores-sql/pg-session-storage.d.ts +7 -5
- package/dist/stores-sql/pg-session-storage.js +54 -46
- package/dist/stores-sql/retention-store-sql.d.ts +87 -19
- package/dist/stores-sql/retention-store-sql.js +92 -27
- package/dist/stores-sql/session-policy-store-sql.d.ts +32 -10
- package/dist/stores-sql/session-policy-store-sql.js +44 -36
- package/dist/stores-sql/session-write-hooks.d.ts +12 -6
- package/dist/stores-sql/tidb-session-storage.d.ts +4 -4
- package/dist/stores-sql/tidb-session-storage.js +13 -8
- package/dist/stores-sql/tidb-session-store.d.ts +36 -17
- package/dist/stores-sql/tidb-session-store.js +69 -39
- package/dist/stores-sql/windowed-session-storage.d.ts +5 -0
- package/dist/stores-sql/windowed-session-storage.js +9 -0
- package/dist/submission-exit.d.ts +50 -0
- package/dist/submission-exit.js +108 -0
- package/dist/task-a2a.d.ts +1 -1
- package/dist/task-a2a.js +3 -3
- package/dist/task-cwd.d.ts +20 -0
- package/dist/task-cwd.js +8 -0
- package/dist/task-mcp.d.ts +1 -1
- package/dist/task-mcp.js +3 -3
- package/dist/task-settings.d.ts +14 -10
- package/dist/task-settings.js +18 -7
- package/dist/terminal.d.ts +25 -43
- package/dist/terminal.js +31 -11
- package/dist/tool-approval.d.ts +131 -129
- package/dist/tool-approval.js +189 -193
- package/dist/trace/core-keyset-guard.d.ts +13 -6
- package/dist/trace/core-vocab-wire.d.ts +95 -0
- package/dist/trace/core-vocab-wire.js +15 -0
- package/dist/trace/exit-seat.d.ts +30 -4
- package/dist/trace/exit-seat.js +40 -36
- package/dist/trace/extension-call-face.d.ts +3 -2
- package/dist/trace/extension-call-face.js +3 -1
- package/dist/trace/ledger-events.d.ts +4 -7
- package/dist/trace/ledger-sink.d.ts +1 -30
- package/dist/trace/ledger-sink.js +0 -11
- package/dist/trace/model-segment.d.ts +5 -5
- package/dist/trace/model-segment.js +5 -5
- package/dist/trace/project.d.ts +55 -42
- package/dist/trace/project.js +52 -19
- package/dist/trace/redact.d.ts +123 -27
- package/dist/trace/redact.js +880 -260
- package/dist/trace/self-minted-wire.d.ts +487 -19
- package/dist/trace/self-minted-wire.js +172 -23
- package/dist/trace/wire-projection-faces.d.ts +5 -6
- package/dist/trace/wire-projection-faces.js +2 -2
- package/dist/upstream-body.d.ts +23 -0
- package/dist/upstream-body.js +16 -0
- package/dist/url-refusal.d.ts +3 -3
- package/dist/url-refusal.js +11 -4
- package/dist/user-authored-text.d.ts +1 -1
- package/dist/user-input-ledger.d.ts +7 -8
- package/dist/user-input-ledger.js +1 -1
- package/dist/web-admin-client/apply-effective.d.ts +6 -3
- package/dist/web-admin-client/apply-effective.js +13 -16
- package/dist/web-admin-client/apply-ledger.d.ts +16 -7
- package/dist/web-admin-client/apply-ledger.js +5 -2
- package/dist/web-admin-client/center-request.d.ts +2 -2
- package/dist/web-admin-client/center-request.js +15 -15
- package/dist/web-admin-client/effective-keys.d.ts +1 -1
- package/dist/web-admin-client/effective-keys.js +1 -1
- package/dist/web-admin-client/entry-metadata.d.ts +8 -0
- package/dist/web-admin-client/entry-metadata.js +13 -0
- package/dist/web-admin-client/http-client.d.ts +1 -1
- package/dist/web-admin-client/http-client.js +23 -4
- package/dist/web-admin-client/mcp-revocation.d.ts +1 -1
- package/dist/web-admin-client/mcp-revocation.js +2 -1
- package/dist/web-admin-client/read-warnings.d.ts +1 -0
- package/dist/web-admin-client/read-warnings.js +1 -0
- package/dist/web-admin-client/restart-signal.js +8 -4
- package/dist/web-admin-client/skills-mcp.d.ts +2 -2
- package/dist/web-admin-client/types.d.ts +1 -2
- package/dist/workspace-space.d.ts +3 -2
- package/docs/DEVICE-EXECUTOR-PROTOCOL.md +4 -4
- package/package.json +6 -3
- package/scripts/drain-check-local.mjs +118 -147
- package/scripts/drain-check.mysql.sql +22 -2
- package/scripts/drain-check.pg.sql +22 -2
- package/wire-changes/server@7.148.0.json +1517 -0
- package/dist/http/memory-control-plane-corrupt-reply.d.ts +0 -25
- package/dist/http/memory-control-plane-corrupt-reply.js +0 -19
- package/dist/http/memory-layer-reply.d.ts +0 -30
- package/dist/http/memory-layer-reply.js +0 -24
- package/dist/lsp/e2b-bridge.d.ts +0 -57
- package/dist/lsp/e2b-bridge.js +0 -139
- package/dist/lsp/e2b-manager.d.ts +0 -93
- package/dist/lsp/e2b-manager.js +0 -178
- package/dist/lsp/lsp-frames.d.ts +0 -14
- package/dist/lsp/lsp-frames.js +0 -25
- package/dist/lsp/manager.d.ts +0 -129
- package/dist/lsp/manager.js +0 -127
- package/dist/lsp/types.d.ts +0 -12
- package/dist/lsp/types.js +0 -2
- package/dist/lsp/ws-transport.d.ts +0 -40
- package/dist/lsp/ws-transport.js +0 -210
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* ⇒ 换成本段:**升一次级把存量字节改完,兼容臂当场删干净**。代价是每一条在它的窗内每次启动都要跑一遍(第二次起全是
|
|
25
25
|
* 零命中的空转);收益是窗关之后可以把那一条连同它的 SQL 一起删,而读腿从引入那一版起就只有**一种**读法。
|
|
26
26
|
*
|
|
27
|
-
* ## 已退役的 M1–
|
|
27
|
+
* ## 已退役的 M1–M11 与 M14
|
|
28
28
|
* 退役的整树快照索引表(M1)、退役的单座 steering 列(M2)、被上游改了名的闭集词 `unresolvable` → `ancestor_marked`(M3)三条的改写、计数与读数
|
|
29
29
|
* 窗关后已全部删码,登记行一并删。跳过了它们直接升的库由起服对账一族的拒启臂接住(`schema-consistency.ts` 头注「第二道对账」一节:两件退役 schema
|
|
30
30
|
* 任一在场 ⇒ 拒启、点名出路;先于一切建表)—— 那一道没有窗,所以不在本文件里。本段入口({@link runSqlOneTimeMigrations})不问这一问。
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
* ② 列在但行上仍是空化身 ⇒ 会话店头读投成活住客(`session-incarnation.ts` 的 `sessionFaceOfHead`)时对那一行响亮拒 `session.incarnation_missing`(parked 决定腿因此拒、记忆座退回按 id 绑定并 warn),
|
|
36
36
|
* 出路是运维给那些行各填一只互不相同的随机令牌,或删会话(MIGRATION 写了升级序)。
|
|
37
37
|
* LKG 的 formatVersion 1 迁移(M14:7.98.0 及以前写在默认路径的旧缓存文件迁进身份箱;非店迁移,不写库)同样已删码(本版提前于窗关删),登记行一并删;它没有自己的拒启臂 —— 那是缓存文件、不是数据:
|
|
38
|
-
* `CONFIG_LKG_PATH` 指到旧文件 ⇒ `loadLkg` 的 1 臂答 `config_lkg_unusable`(env 兜底)
|
|
38
|
+
* `CONFIG_LKG_PATH` 指到旧文件 ⇒ `loadLkg` 的 1 臂答 `config_lkg_unusable`(env 兜底);默认路径上的旧文件名不是身份箱的文件名形、不被读 —— 本身份的箱缺席时起服读腿
|
|
39
|
+
* 按名字点名它,同一行 `config_lkg_unusable`、同一句拒因(`config-lkg.ts` `preIdentityLkgLeftover`;只看名字、不读内容,常设的响亮臂,不是迁移);中心可达时第一份干净候选照常写出身份箱。
|
|
39
40
|
* M6 / M7 / M8 同样已删码(7.146.0 删;三条的窗 2026-11-04 … 2026-11-05 关,发版日前都已关),登记行一并删。逐条写跳过了它直接升的库(以及滚动升级窗里旧副本新写的旧形行)由谁接住:
|
|
40
41
|
* ① run 死亡判决码回填(M6;连同 SQL 行映射里的读侧半场):没有响亮臂 —— 只有句子、码列为空的 `failed` 行(只有 ≤7.115.x 的写者铸得出;7.116.0 起的写者恒同写码)不再被判成持有者死亡:
|
|
41
42
|
* 用户输入受理账本的收敛判词(`user-input-ledger.ts` `judgeOpen`)把它落到「其余」臂 `leg_over`(补落 `settled{leg_end}`、不告知),那条 run 上丢掉的 steer 不再告诉用户;`GET /v1/runs/:id` 上 `errorCode` 缺席、只剩 `error` 句子。
|
|
@@ -54,27 +55,15 @@
|
|
|
54
55
|
* 没有持有者位(引擎 7.43 及以前写下)的存量卡路由判 `none` ⇒ 落 legacy 腿,答 409 `conflict.resume_context_unavailable`(响亮;成因是子会话没有续跑上下文,不再是
|
|
55
56
|
* `decide.workflow_parks_unreadable`),出路不变(续跑发起它的那条 workflow run);随包排空判据没了,没有机器读数可数这些卡。
|
|
56
57
|
*
|
|
58
|
+
* M10 / M11 同样已删码(7.148.0 删;两条的窗 2026-11-07 关,发版日前已关),登记行一并删。逐条写跳过了它们直接升的库(从 < 7.119.0 直接升到本版、中间没在 7.119.0–7.147.x 任一版起过服)由谁接住:
|
|
59
|
+
* ⑤ local 车道会话属主的认领(M10;窗内带 principal 的第一次提交把「属主从没被记下」的存量会话认领给那个 principal):没有响亮臂,认领本身删码零行为变化(窗 2026-11-07 关〔含当日〕,UTC 2026-11-08 00:00 起认领臂已不生效);唯一可观测的差在授权口 —— 它不再为这样的会话调登记口(登记口的存在性探针会读存档),存档读不出的无主存量会话,带 principal 的提交不再被授权口拒,存档的故障改由读存档那一步按腿答(门只判归属、不碰存档)——
|
|
60
|
+
* 属主从没被记下的存量会话(边档那一格只有化身,7.118.x 及更早写下)照旧读作无主:它的会话规则这条路由读不了也改不了(409 `conflict.session_ownerless`,句子里只剩「删会话」一条出路),
|
|
61
|
+
* 已存的规则对写下它们的 principal 的 run 照旧生效;授权口对这样的会话不再调登记口。出路 = 删会话(`DELETE /v1/sessions/:id`,规则随之删)。
|
|
62
|
+
* ⑥ 持久规则桶里 scope 不被引擎收的行的删除(M11;SQL 两孪生):由引擎读侧的既有响亮臂接住 —— project scope 的 root 不是完整绝对路径的存量行在有效视图里被丢、每次 run 一条 `permission.rule_row_dropped`(点名规则与 root),
|
|
63
|
+
* 那一行不参与任何检查,但撤销口删不动它(引擎的写臂对这种 scope 同样拒)。出路 = 运维在库里把那只桶的那一行删掉(整桶 OCC 回写,指纹按 `buildRuleBucketChecksum` 重算)。
|
|
64
|
+
* 起服不再逐桶扫描、也不再有逐行 / 逐桶的删除告警;读腿整桶拒的桶照旧整桶拒(出路是人)。local 车道的持久规则在引擎自己的 File 分区里,这一半对它本来就是空转。
|
|
65
|
+
*
|
|
57
66
|
* ## 窗内的迁移(逐条的失败方向刻意不同)
|
|
58
|
-
* · **M10 local 车道会话属主落盘**(7.119.0)—— local 店的属主从进程内存搬进会话边档(与化身同一格,`LocalSessionStore` 头注);SQL 两孪生的属主
|
|
59
|
-
* 一直是 `session_meta.owner` 列,没有可迁的东西。存量:7.118.x 及更早写下的边档那一格只有化身、**没有属主事实** —— 迁移**不伪造**它
|
|
60
|
-
* (起服时没有 principal,把它判给任何人都是编造)。本条是一只**窗内才生效的行为臂**:窗开着时,带 principal 的第一次提交(attach)认领
|
|
61
|
-
* 这种会话(写进那一格,一行 info `session_owner_claimed`);窗关之后(运行期读本表 M10 行的 `removableAfter`,见 {@link migrationWindowOpen})
|
|
62
|
-
* 它照今天答无主,删码因此是零行为变化。认领的安全前提是单用户:local 后端起服门拒 `REQUIRE_PRINCIPAL=true`,授权口也只在
|
|
63
|
-
* `REQUIRE_PRINCIPAL` 关时把 principal 递给店认领。没有起服读数(它不在起服时写库)。
|
|
64
|
-
* · **M11 持久规则里 scope 不被引擎收的行**(7.120.0,引擎 7.46.0)—— 7.119.0 及更早的本仓入口(`/v1/rules` 写口、两条导入面)按
|
|
65
|
-
* 「root 非空」收 project scope,引擎 7.45 也收;引擎 7.46.0 把 project root 收窄成**完整绝对路径**(`isValidDurableScope`),本仓入口
|
|
66
|
-
* 同版改调同一只谓词。存量的 `project:myproj` 一类行在新引擎的读侧被丢(每次 run 一条 `permission.rule_row_dropped`),而撤销口删不动它
|
|
67
|
-
* (引擎的写臂对这种 scope 的墓碑同样拒)⇒ **一次性删除**:SQL 两孪生逐桶 OCC 回写,规则行与墓碑里 scope 不被谓词收的都删
|
|
68
|
-
* (`permission-rule-store-sql.ts` `purgeUndurableScopeRows`),一行一条 `permission_rule_row_removed` warn(桶键 / 工具名 / 态 / root,
|
|
69
|
-
* 规则正文不出店;root 在店里已过 `redactSecrets`)。逐行的句子按态分:仍有活 add 的规则行劝按完整路径重写,**早已撤销**的规则行
|
|
70
|
-
* (判活 = core 的 `applyTombstones`)与墓碑不劝 —— 劝了就是把人撤销过的规则加回去。每只桶先过**读腿的唯一判官**(`decodeBucketRow`),
|
|
71
|
-
* 回写走**写臂的唯一写法**(`writeBucket`):判官整桶拒的桶(形 / 指纹 / behavior 闭集 / 墓碑规范文本 / 单一验证器)一个字节不动,
|
|
72
|
-
* 一桶一条 `permission_rule_bucket_unreadable` warn(桶键 + 不带行内容的拒因),读腿对它照旧整桶拒,出路是人 —— 从一只被整桶拒的桶里删行
|
|
73
|
-
* 再重算指纹,等于把整桶拒「修」成可读、让原本被拒的 allow 行上线。**不**给撤销口另开一条「坏 scope 也认」的读法(那是长期双读)。删除是破坏性步骤,排在最后: * 它自己半途失败时拒因自带已删的行。残余(如实):回写提交之后、日志行写出之前**进程死掉**,
|
|
74
|
-
* 那几行的记录随之丢失(重扫看不见已删的行),不为它另建迁移账表。
|
|
75
|
-
* ⚠️ **够不到的一格(如实登记)**:local 车道的持久规则在**引擎自己的** File 分区里 —— 引擎的写面对这种 scope 的加 / 墓碑一律拒,
|
|
76
|
-
* 本仓没有合法缝删它们,改那份盘上格式是下游改上游。那里的存量坏行照旧由引擎读侧丢并告知;出路候引擎给
|
|
77
|
-
* 一条删除缝。
|
|
78
67
|
* · **M12 停驻行模式词读法记号的拒臂**(7.122.0)—— 持久数据「响亮拒」那一半:7.122.0 起一条 run 的模式词只有存储体顶层 `permissionMode`
|
|
79
68
|
* 一个源(提交入口盖运维 `AUTONOMY=plan` 的地板一次),更早的行体里是请求原词、运维的 plan 由治理层每段重钳。续跑重放之前:本部署此刻有入口地板 ∧
|
|
80
69
|
* ctx 上没有当前记号 `"entry_word"` ∧ 体的生效词被地板钳会变 ⇒ 认领之前 409、行字节不动。规则、拒句与写点在 `http/checkpoint-ctx.ts` 顶注第三问。
|
|
@@ -143,7 +132,7 @@
|
|
|
143
132
|
* **响亮**(`server.approval-card.retired-card-word-read`);读的是浅拷贝,被读的行一个字节不动。local 车道读数恒零(`NO_SQL_MIGRATIONS`)。
|
|
144
133
|
* · **M19 续跑重放腿上的存量 `toolAxes`**(7.130.0)—— 请求体 `mcpServers[].toolAxes` 的判官从本版起是引擎的 `readMcpToolAxes`(整份一坏全拒);
|
|
145
134
|
* 升级前的请求腿读者把非对象(含 `null`)整键忽略、对象逐成员剔坏留好,server 照挂。续跑重放腿重放的是升级前存下的请求体(`checkpoint_ctx`),
|
|
146
|
-
* 停驻在那台 server 某只工具审批上的任务,若这台 server 整条不进,批准即撞 `resume.tool_unavailable
|
|
135
|
+
* 停驻在那台 server 某只工具审批上的任务,若这台 server 整条不进,批准即撞 `resume.tool_unavailable`、检查点重开、永远批不过去。本条:
|
|
147
136
|
* 不改写存下的字节(体按原样留在 ctx 里),是一只**窗内才生效的行为臂** —— 窗开着时(运行期读本表 M19 行的 `removableAfter`,见 {@link migrationWindowOpen}),
|
|
148
137
|
* **只在续跑重放腿**、**只对判官判不过的那一格**按升级前的读法重读一次(`stored-request-tool-axes-m19.ts`),产物再交同一只判官(不过 ⇒ 整条不进的原臂),
|
|
149
138
|
* 真挂上的这类 server 各一行运维 warn `mcp_tool_axes_read_as_before_upgrade`;窗关之后照今天答(整条不进),删码因此是零行为变化。
|
|
@@ -213,10 +202,10 @@
|
|
|
213
202
|
* 不存在的列、响亮失败(先停光旧副本再起新,`docs/DEPLOY-PREREQS.md` 的 7.133.0 SQL 后端一节);复制之后、换名之前旧副本写进旧表的行随旧表删掉(那几步续跑时活跑)。
|
|
214
203
|
* local 车道的店是 core 的 File 店(属主 = 每条 run 的 journal 文件首行)⇒ `file-store` / 0 / 0。
|
|
215
204
|
*
|
|
216
|
-
* · **M25 单用户记忆项目层换键形**(7.133.0)—— 不在店里、不在起服里(与
|
|
205
|
+
* · **M25 单用户记忆项目层换键形**(7.133.0)—— 不在店里、不在起服里(与 M19 同为**窗内才存在的行为臂**,但它是改写):项目层键从 `repo:<sha256(项目根)[:24]>`
|
|
217
206
|
* (7.98.0–7.132.x)换成带主体、跨设备的 `userrepo:<属主段>/<档>.<摘要>`(文法 `project-layer-key.ts`)。退役键是路径哈希、反推不出路径 ⇒ 起服没法枚举改写;
|
|
218
207
|
* 改为**每个项目第一次跑任务时**由项目层准备一步(`memory-project-layer.ts` `createMemoryProjectLayers`)把该 checkout 的 `repo:` 层经 core `migrateScope`
|
|
219
|
-
* 折进新键(File 与两只 SQL 孪生同一条;id 保留、CAS,冲突留原地下次再试)。本条不写起服读数(`reportKeys` 空,与
|
|
208
|
+
* 折进新键(File 与两只 SQL 孪生同一条;id 保留、CAS,冲突留原地下次再试)。本条不写起服读数(`reportKeys` 空,与 M19 同形);折了什么由运行期 info
|
|
220
209
|
* `memory_project_layer_folded` 说。常设的另一条律(`r` 档时本 checkout 的 `p` 档折进当前档)不是迁移,不随本条删。
|
|
221
210
|
* **曾属本条的另一半已退役(如实)**:同步客户端腿的旧游标文件 `sync-cursor-<peer>.json`(只按 peer 分区)的收编臂。引擎 7.59.0 起游标必带店绑定 `store`,
|
|
222
211
|
* 升级前落盘的旧文件都没有这一员,收编的形判从不认它 ⇒ 臂对任何存量文件都不可达,已整条删码(收编函数、守卫旗标、日志行一并删,零引用有钉:
|
|
@@ -244,7 +233,7 @@
|
|
|
244
233
|
* · **M28 停驻行里的明文凭据原地封好**(7.134.0)—— 7.134.0 起提交体里请求面凭据位上的每一个值(闭集 `CHECKPOINT_CTX_CREDENTIAL_SLOTS` 与规则的属主
|
|
245
234
|
* `http/checkpoint-ctx.ts` 末段「凭据位密封」;本处不重列)在 `checkpoint_ctx` 里只以封签存在,续跑上下文读口对凭据位上的明文答 409 `conflict.checkpoint_ctx_unsealable`(`reason:"plaintext"`)。升级之前写下的
|
|
246
235
|
* 行是明文 ⇒ **起服扫一遍、原地封好**:不在本文件的迁移段里(封要保管店的封签器,而本段跑在建店的 web-admin 运行时能交给它之前的店层 ——
|
|
247
|
-
* 与
|
|
236
|
+
* 与 M19 / M25 同为在本段之外跑的条目),编排在 `checkpoint-ctx-seal-m28.ts`(起服第 6 段,checkpoint 店建成之后、任何路由装配之前调一次),
|
|
248
237
|
* 店腿是两孪生共有的 ctx 行改写腿 `rewriteCtxRows`(`checkpoint-store-face.ts` `CheckpointCtxRowsRewriter`;M30 用同一只;SQL:键集分页 + 按原文 CAS、`updated_at_ms` 不动;local:逐档原子重写、信封的 `updatedAt` 不动),
|
|
249
238
|
* 行改写是读写两侧同一只封口(`sealStoredCheckpointCtxM28`),封的是「读口会答 `plaintext` 的每一个值」(与开口同一只判词)—— 7.135.0 闭集加了一位
|
|
250
239
|
* (command 条目的 `plugin.options`)之后,7.134.0 写下的带记号行在那一位上的明文也落在这一条里、同窗补封(本条没有新窗);7.136.0 再加四位(子进程的命令行:MCP stdio 传输与
|
|
@@ -260,7 +249,7 @@
|
|
|
260
249
|
* 只扫 `status = 'pending'` ∧ `approval_card IS NULL` ∧ 审批门型(`APPROVAL_GATE_KINDS`,core 登记表派生;只有审批门上卡列可能非 NULL)的行,按 `token` 键集分页,
|
|
261
250
|
* 每行单独读整只文档(一页里不同时持有两份停驻快照)、问那一只派生,答出词才写(`WHERE … AND approval_card IS NULL` CAS,第二跑零写);文档读不出 / 不是一只
|
|
262
251
|
* 引擎读得了的检查点 ⇒ 计数、不写(这样的行续不了,`get()` 对同一格拒);答出的卡词放不进列(MySQL 协议 `TEXT` 按 UTF-8 字节 65,535;PG 无上限)⇒ 同一个态度:
|
|
263
|
-
* 计数 + 一行 warn 点名(会话 id + 字节数)、不写、起服不挡 —— 引擎铸的卡词是闭集短词,超长只会是手改 / 外来写者写下的行,列留 NULL、读面按缺列读(与「无卡」同读;到期 facet 不变 —— 超长的词不可能是 core `CARD_FACET_OVERRIDES` 的键;文档一个字节没动)。排在 M21 之后:M21 给存量问答行补上的卡词由本条落列。**列不在 ⇒ 延后**(与
|
|
252
|
+
* 计数 + 一行 warn 点名(会话 id + 字节数)、不写、起服不挡 —— 引擎铸的卡词是闭集短词,超长只会是手改 / 外来写者写下的行,列留 NULL、读面按缺列读(与「无卡」同读;到期 facet 不变 —— 超长的词不可能是 core `CARD_FACET_OVERRIDES` 的键;文档一个字节没动)。排在 M21 之后:M21 给存量问答行补上的卡词由本条落列。**列不在 ⇒ 延后**(与 M36 同一条前置:
|
|
264
253
|
* 迁移段先于起服列册对账,缺列表上的扫描会抛裸的「未知列」、盖住随后的拒启句)。到期 facet 的生成谓词与运维队列行的卡读这一列 —— 本条跑完之前它们不运行
|
|
265
254
|
* (迁移段先于任何路由与收割器装配)。**够不到的一格(如实登记)**:已决 / 已作废的行不扫(没有读者读它们的卡);local 车道没有这一列(停驻行在引擎自己的 File 店,
|
|
266
255
|
* 卡从文档读)。窗 = 发布日 + 30 天(与 M21 同一条论证:窗关时缺省部署上升级前停驻的行已被终局兜底收走)。
|
|
@@ -337,7 +326,7 @@
|
|
|
337
326
|
* 项目根读 `/x`,用户层在它自己的配置目录读,同一串字落店之后放行的是另一个地方。引擎不迁、不在读侧丢,只给一句判据(INTEGRATION-CORE §5.14):行是 allow ∧ add 的出处是
|
|
338
327
|
* `imported-cc` ∧ scope 是 global ∧ `ruleBasesNeeded` 点名 `root` ⇒ 这只 add 退役;按 add、不按行(每只选中的行一只 observed-remove 墓碑,`removedDots` 恰是选中的 add,
|
|
339
328
|
* 人亲手同意过的 `user` add 留着);deny / ask 不退役。判据、读哪些桶、写在哪里与失败方向的唯一属主是 `imported-layer-root-retirement.ts`(头注逐条)—— 两腿同调一只函数:
|
|
340
|
-
* SQL 在本段握锁的那一条连接上(`SqlDurableRulePartitionProvider` 收这条连接,墓碑经桶的写面 = 店内唯一写法 `writeBucket` 落)
|
|
329
|
+
* SQL 在本段握锁的那一条连接上(`SqlDurableRulePartitionProvider` 收这条连接,墓碑经桶的写面 = 店内唯一写法 `writeBucket` 落);local 在
|
|
341
330
|
* `LocalBackend.runOneTimeMigrations` 里经引擎 File 分区的写面落(规则目录不在 ⇒ 没有行、零读,不为它建目录)。读的桶:SQL = 规则表里的每一只;File = 导入记录点名过的属主(引擎的 File 分区后端没有列桶口;缺口见那份头注)。
|
|
342
331
|
* 每次起服都跑(窗内;更早的引擎回滚上来会重新铸出这种 add),第二跑起零选零写。读数两键:退役了的行(一行一条 warn,不带规则正文)与没能读 / 写的桶(一桶一条 warn,
|
|
343
332
|
* 每次起服都报)。删码另有一个前提:不再支持回滚到引擎 7.61.0 之前(登记表 M36 的 removal)。
|
|
@@ -380,6 +369,77 @@
|
|
|
380
369
|
* 或部署格已在旁表(本条之后 / 新库)。旁表形里 M32 的加列 / 回填 / 收尾标记(② ④ ④b ⑥)都不跑(切换早已收尾;回填前提的拒随之不判),剩 ⓪(旧版副本建回的空退役表删掉)、围栏,
|
|
381
370
|
* 与围栏拒句「采旧」造出的中途表 ③ ⑤ —— ③ 写执行格当下的家(旁表:先补行、再覆盖,`migrateDeviceBindingsOntoSideTableStatements`)。删码不改语义:本条删码时 M32 若还在,改成恒旁表形(见登记行)。
|
|
382
371
|
* 读数 `sessionExtRowsMoved` / `sessionMetaColumnsDropped`。幂等:第二次起服零命中零写。local 车道没有这两张表(会话格一直在会话元数据边档里)⇒ 恒零。
|
|
372
|
+
* · **M42 场景前缀的切换检查**(7.148.0)—— 本版起以 `_scn:` 开头的身份读作「某个人的某个场景」(恢复管线 `owner-brands.ts` 的 `partsOf`);更早的版本不保留这一前缀,
|
|
373
|
+
* 自称 `_scn:<x>:<y>` 的调用方写下的行在本版会被读成另一个人的场景。**持久数据「响亮拒」那一半,不改写**:库里没有本条的标记 ⇒ 只读扫存量身份(本树建表句里名字以
|
|
374
|
+
* owner / scope / principal / subject 结尾、且库里在的每一列;local = run / 会话 / 问 / 附件四处 File 店的属主),一处命中 ⇒ 拒启 `config.scenario_prefix_switch_refused`(点名来源与行数,
|
|
375
|
+
* 一字节没写);零命中 ⇒ 写标记;有标记 ⇒ 不扫(本版自己写下的合法 `_scn:` 行不让第二次起服拒启)。**停-迁-起(SQL)**:零命中而判活窗内仍有 run 在心跳(与 M40 / M41 同一条
|
|
376
|
+
* 判活谓词)⇒ 同码拒启(`live_runs`),标记不写 —— 更早版本的副本不保留前缀,扫描之后它还会收下这类身份。标记随库(SQL:本条自己建的标记表一行;local:数据根里一只文件),
|
|
377
|
+
* 不随进程。**第一步**:先于任何写(拒了就是一字节没动)。律、扫描面、拒句的唯一属主 = `scenario-prefix-switch-m42.ts`。读数 `scenarioPrefixSourcesScanned`(0 = 标记在场)。
|
|
378
|
+
* · **M43 撤回出口的启用标记**(7.148.0)—— 不改任何存量行。提交出口撤回一只「受理之前就被拒」的提交铸下的会话之前,读旁表的客户端写计数 `client_writes`
|
|
379
|
+
* (四个客户端写者在锁住根行之后同一事务 +1,`plugins/session-ext-table.ts`);更早版本的副本的写者不计数 ⇒ 混跑窗里它刚给这只会话改了标题,撤回却读到 0,会把人写过的会话删掉。
|
|
380
|
+
* ⇒ 撤回出口只在本库的**标记行**落下之后启用(标记表与 M42 同一张,属主 `one-time-migration-marker.ts`;读者 = 撤回事务里的部署判据 `plugins/session-withdraw-sql.ts`,标记未落 ⇒ 答 `upgrade_pending` = 留,
|
|
381
|
+
* 幽灵会话照旧)。标记由本步落:标记不在 ∧ 判活窗内没有 `running` run 更新过(与 M40 同一条谓词)⇒ 落;有 ⇒ 不落、**不拒启**,下一次起服再判(M42 的停-迁-起守卫在同一版里先拒过一次)。
|
|
382
|
+
* 读数 `withdrawMarkWritten`。local 车道:数据根独占、没有混跑窗,版本位在会话元数据格上(`clientWrites`,本版铸的格都带),恒零。
|
|
383
|
+
* · **M51 会话在删态的切换**(7.148.0)—— 不改任何存量行。本版起删会话按会话三态走(活 → 在删 → 没了,律在 `src/session-deletion.ts`):围栏写旁表 `session_ext.deleting_token`,
|
|
384
|
+
* 认领点(规则 L)读它、删除路只在围栏判一次认领。更早版本的副本不读在删态 ⇒ 混跑时它会在一只在删的会话上收下提交、建 run,而本版删除路的账本腿已不再判认领 ——
|
|
385
|
+
* 比修前更坏。⇒ **停-迁-起**,没有运行期开关:标记表(与 M42 同一张)无 `M51` 行 ∧ 判活窗内有 `running` run 心跳(与 M40 / M41 / M42 同一条谓词 {@link readLiveRunHeartbeat})
|
|
386
|
+
* ⇒ 拒启 `config.session_deleting_switch_refused`(`live_runs`,一字节不写,拒句给可再起的时刻);无心跳 ⇒ 落标记(之后本版副本自己的 run 不再挡起服)。
|
|
387
|
+
* 看不见的边与 M43 同:空闲的旧副本(零 `running` run)没有心跳 —— MIGRATION 本版节写「全部旧副本停下再起」。读数 `sessionDeletingSwitchMarked`(0 或 1)。
|
|
388
|
+
* local 车道:数据根独占、没有混跑窗 ⇒ 恒零。
|
|
389
|
+
* · **M44 run 的 `errorCode` 只读列**(7.148.0)—— 码的唯一读法是 `task_run.error_code` 列;写 `result` 的三个写口同写这一列(停驻两口此前不写)。**改写半场**:
|
|
390
|
+
* 按 `task_id` 键集分批扫 `result IS NOT NULL` 的行,目标 = 「这条行在稳定、非到期时修前 `GET` 会答的码」= 结果投影的码(`persistedPlaneOf`,读盘面认两代形并折码)?? 列原值;
|
|
391
|
+
* 不等才写,**按行版本 CAS**(`status` + `updated_at` + 列,三者都在条件里 —— 停驻 / 续跑 / 终局都换 `result` 而不动列,只比列会把 `review.pending` 写到一条已续跑完成的行上);
|
|
392
|
+
* 打空 ⇒ 跳过(下一次起服再判)。另一句:`running` 行列置空(混跑窗里旧副本续跑认领不清列)。结果读不出的行跳过(店的读腿对它照旧拒)。**读侧半场**(窗内,
|
|
393
|
+
* `run-store-sql.ts` 的 `m44ErrorCodeReadSide`):只对停驻行 —— 列空 ⇒ 读结果投影的码;`running` 行只答空 —— 旧副本在最后一次起服之后写下的不带列的停驻也读得对。
|
|
394
|
+
* local 腿 = `FileRunStore.migrateRunErrorCodeColumnM44`(数据根独占,没有读侧半场)。读数 `runErrorCodeColumnRewritten`。
|
|
395
|
+
* · **M45 run 行预览列的旧形**(7.148.0)—— 会话列表的预览改读 run 行预览列(两后端同读一列、一条谓词)之后,7.124.0 之前写下的预览(那时只「脱敏 → 截」、不剥注入块,
|
|
396
|
+
* 引擎前置的块原样落在预览**开头**)会在 local 会话列表上开始露出(SQL 读这一列的各面今天就露)。**改写**:选行判据只认起头 —— 列值以闭集标签的开标签起头
|
|
397
|
+
* (SQL 先按闭集标签各一个 `LIKE '<tag%'` 粗筛,进程内再精判;按 `task_id` 键集分批);新值 = 对列值反复取今天的 run 行预览(剥 → 脱敏 → 截)到不动点,
|
|
398
|
+
* 不动点仍以开标签起头(开标签被截在属性中间)⇒ `""`;不等才写,**按列值 CAS**(建行之后非空预览没有别的写者:交付补写只填 NULL)。判据与新值的唯一属主 =
|
|
399
|
+
* `run-preview-m45.ts`(两条腿同调)。多数旧值被剥成 `""`(块占满了 120 字)⇒ 会话列表回落到更早一句或无预览;7.124.0 之后用户自己在提示开头写了闭集开标签字面的行也被剥。
|
|
400
|
+
* local 腿 = `FileRunStore.migrateRunObjectivePreviewM45`(数据根独占)。读数 `runObjectivePreviewRewritten`。
|
|
401
|
+
* · **M46 存量的引擎家 `Skill` 会话豁免行**(7.148.0)—— 会话豁免店的一行只记一件事:某人对这个 wire 工具名放过行、且那一问的应答不授予这次调用之外的东西。7.116.0 之前耐久腿曾为带摘要的 `Skill` 卡
|
|
402
|
+
* (批准 = 激活某技能 + 它清单上的工具免问)与名单点名 `Skill` 的名单问落过 `(会话, "Skill")`;今天读者对「不绑授予」的同名调用读这一行 —— 而引擎说无技能时不挂 `Skill`、同名调用是另一只工具 ⇒ 存量行代答它是**扩权**。
|
|
403
|
+
* **删,不加列、不加读侧的未知臂**:谓词 = `tool_name = <core 导出的引擎 Skill 工具名> ∧ created_at < T0`;**T0 = 本库第一次跑本步的时刻,先于删除落进标记**(SQL:标记表 `M46` 行;local:数据根里的标记文件),
|
|
404
|
+
* 不按日历截(各部署升级日不同,日历截点会漏掉跳版直升的库里升级前几天写下的行)。第一次删升级前就在的全部 `Skill` 行(含 7.138.0–7.147.x 写下的合法行;方向 = 那些会话的人下一次 `Skill` 调用被重问一次),
|
|
405
|
+
* 之后各跑零命中、不碰本版自己写下的新行。SQL:`session_id` 键集分批,一页一句 `DELETE … IN`;被打断 ⇒ 下一次起服读同一个 T0 接着删。local 腿 = `FileApprovalExemptionStore.dropToolRowsCreatedBeforeM46`
|
|
406
|
+
* (对命中行逐会话追加墓碑,与按名撤销同形;日志已判坏的会话不碰),T0 在数据根的标记文件(M42 local 腿同形)。无停-迁-起守卫:更早版本的副本窗内写下的 `Skill` 行是它们当时合法的行,`created_at ≥ T0` 不被碰、`< T0` 被删,两个方向都是重问。
|
|
407
|
+
* 读数 `legacySkillExemptionsDropped`(非零 ⇒ 一行 warn `legacy_skill_exemptions_dropped`)。存量规模上限 = 会话数 × 1。
|
|
408
|
+
* · **M47 local 无格存档收进行,化身沿用存档头令牌**(7.148.0;local 独有 —— SQL 孪生没有存档头,住客只在 `session_meta.incarnation` 一格)—— 本版起一个数据根只有一只会话行店:
|
|
409
|
+
* run-local 与 HTTP 服务的 local 臂经同一只 `openLocalBackend` 打开数据根、读同一格住客(`local-session-store.ts` 的 `occupiedBy` 注)。更早的 run-local 经引擎的文件仓直接建档、续跑,
|
|
410
|
+
* 从不写会话元数据格,它的记忆引擎按**存档头**上引擎另铸的令牌落记录(采集 opt-out、污染标记)。这种「存档在而格缺」的会话,第一次读会补铸一只新令牌 —— 那些记录从此不绑。
|
|
411
|
+
* ⇒ **一次性**:起服对账段(`LocalBackend.ensureSchema`,快照消化之后、先于整段一次性迁移 —— 也就先于 M33)给列表面里每只存档头读得出、格缺的会话建一格,化身 = 存档头令牌(头没有令牌 ⇒ 新铸),
|
|
412
|
+
* 建档时刻 / 谱系 = 存档头的(与 M33 同一读法),属主键不写;格在的一个字节不动;一次边档提交(`LocalSessionStore.adoptArchiveTokensM47`)。第二跑起零命中。
|
|
413
|
+
* · **M48 cli 哨兵属主改写成无主**(7.148.0)—— cli ≤ 1.0.70 本地单用户自发的主体头 `anon:shell-live` 记成了那段时间会话行 / run 行 / leader run 行的属主;
|
|
414
|
+
* 属主面表为它留的按字面量互认的那一格本版退役,存量行改写成无主(`null`),之后与任何无主行同读(字面量、改写面与改写的部署形的唯一属主 `shell-sentinel-owner-m48.ts`)。
|
|
415
|
+
* **只在没有身份边界的部署形改写**(部署形表 `identityBoundary` 那一行的读数,只读配置;SQL 腿经输入 {@link ShellSentinelOwnerInput},local 腿由 `LocalBackend` 构造时读同一行):
|
|
416
|
+
* 「哨兵 ≡ 不报主体的本地单用户」只在那里成立(dev-open:主体头是谁都能自报的标签)—— 有身份边界的部署(声明了 `REQUIRE_PRINCIPAL`、配了 service 凭据 / 鉴权桥 / 直连门 / 只读 trace 凭据)上
|
|
417
|
+
* 哨兵是一位普通的具名属主(只对字面相等的主体可见),改成无主 = 过了凭据门的任何主体都够得着;那里零改写、读数 0,行原样,本条照样记完成。
|
|
418
|
+
* SQL:三张表各一句 `UPDATE … SET owner = NULL WHERE owner = <哨兵>`(逐字节比:MySQL 协议两边 `CAST(… AS BINARY)`,只差尾空格的另一位属主不动;表不在 ⇒ 跳过);local 腿 = `LocalSessionStore.clearShellSentinelOwnersM48`(会话元数据边档一次提交)
|
|
419
|
+
* + `FileRunStore.clearShellSentinelOwnersM48`。读数 `shellSentinelOwnersCleared`(三处行数之和)。幂等:写后不再有哨兵值 ⇒ 第二跑零命中。
|
|
420
|
+
* 不改规则行(哨兵键下的规则此前也不对无主体任务生效,改键 = 放宽)、收件箱条目 / 问账行 / 检查点 scope(这些读面从没放过那一格)。
|
|
421
|
+
* · **M49 检查点的归属会话回填**(7.148.0)—— `checkpoint.host_session_id`(一张卡归在哪只会话上 = 兑现它的那条 run 的会话;读法 `checkpoint-index-columns.ts` 的
|
|
422
|
+
* `hostSessionOf`,写口 `put` 求值)本版新加;按 run 找卡的读口(取消、steer 停放、两条停驻收割、续跑输入回收、运维队列行的 run)此后只读它。存量行一律自 `session_id`
|
|
423
|
+
* 回填 —— 本版之前停下的卡都是按卡自己的会话连 run 的(cascade 的级上卡那时连不上 run,它们的 run 早已按「级上停驻 ⇒ 失败」终局;回填成级的会话,与它们停下时的读法同答)。
|
|
424
|
+
* SQL:`SELECT token … WHERE host_session_id IS NULL` 按 token 键集分页(每页 {@link HOST_SESSION_BACKFILL_PAGE} 行),一页一句 `UPDATE … SET host_session_id = session_id
|
|
425
|
+
* WHERE host_session_id IS NULL AND token IN (…)`(再判一次 NULL:并发写口落下的新行不被改);列不在 ⇒ 跳过(列册探针在本段之前已拒启)。
|
|
426
|
+
* local 腿 = `LocalCheckpointStore.backfillHostSessionsM49`(会话索引 + 此刻的待决行 → 归属索引,一次落盘)。读数 `checkpointHostSessionsBackfilled`。
|
|
427
|
+
* 幂等:写后不再有空归属 ⇒ 第二跑零命中;窗内每次起服都跑 —— 滚动升级窗里旧副本写下的空归属行由下一次起服补上。
|
|
428
|
+
* 已有格的会话不动(行令牌胜:本仓每一个按住客的读已在答它):升级前 run-local 在头令牌下给它们落过的记录升级后不再绑(MIGRATION 披露)。
|
|
429
|
+
* 窗内「已在盘的旧存档长第一格」只有这一条规则(`local-session-store.ts` 的 `firstCellIncarnationOf`):本条的起服扫是它的急切版,按 id 打开 / 读时的补铸、登记、执行位回填、
|
|
430
|
+
* M33 的行回填与快照恢复同经它 —— 不调起服对账的嵌入方同一次起服里按 id 打开旧会话,住客也不变。
|
|
431
|
+
* **收令牌欠账**:高水位按律判过即抬、先于本条 —— 「谁可能写过这只根」与「这只根还欠不欠本条」是两件事。带本条的构建打开数据根时(高水位判过、**抬之前**),
|
|
432
|
+
* 打开之前的高水位早于 7.148.0 或缺席 ∧ 存档目录里有存档 ⇒ 原子写数据根顶层的欠账标记 `archive-token-adoption.pending`(`required`;本服务内部、不是公开契约);
|
|
433
|
+
* 本条在欠账起服里以 `required` 提交、再用常驻臂那一只读法证明收齐(剔除 placed 与存档头读不出两类 = 本条的收取范围)之后才删它 —— 任何一步失败标记留着、起服拒,下一次窗内起服重来。
|
|
434
|
+
* **跳版拒启臂(常设,不随本条删)**:不带本条的构建打开数据根时,(打开之前的引擎高水位早于 7.148.0 或缺席 ∨ 欠账标记在)∧ 根里有存档在而格缺的会话
|
|
435
|
+
* ⇒ `local-session-store.ts` 的 `holdArchiveTokenAdoptionDuty` 拒启(`config.schema_mismatch`,读数种别 `skipped-required-migration`;标记在而无格存档为零 ⇒ 无事可收,销账放行)—— 它在数据根打开的同步段里、引擎高水位**抬之前**判
|
|
436
|
+
* (拒 ⇒ 不抬,出路那一版仍开得了这只根:不比已记高水位旧、仍带本条);本条在树里时那一判换成记账(登记表里有本行 ⇒ 记、不判)。读数 `localArchiveTokensAdopted` / `localArchiveTokensMinted`;只 local(SQL 恒零)。
|
|
437
|
+
* · **M50 local 问账日志里退役动词 `deleteByTask` 的记录**(7.148.0)—— 店接口的按 run 删除动词本版退役(删会话的审批腿 `deleteBySession` 取代它),File 账本的动词闭集随之少一个词。
|
|
438
|
+
* 本服务已发版本没有任何生产路径调过它;嵌入方经导出的店型调过、且进程停在那一次压实之前,账本里才会留一条它的记录。持久面不翻红:与 M38 同形的**窗内才生效的行为臂**
|
|
439
|
+
* (运行期读本表 M50 行的 `removableAfter`,`approval-ask-retired-delete-by-task-m50.ts`)—— 窗开着时 `FileApprovalAskStore` 的重放按写下它的那一版的读法重放
|
|
440
|
+
* (删 `taskId` 名下的问与批 —— 今天删会话级联的一个子集,语义不丢,`InMemoryApprovalAskStore.deleteByTaskM50`)并算删行记录,构造器末段的起服压实把整本重写成存活行的快照、记录离盘
|
|
441
|
+
* (压实失败 ⇒ 位留着,下一次写或下一次窗内起服再压;重放幂等),恰一行 stderr 点名条数与账本;窗关之后 ⇒ 同一条记录拒启(`StoreBootRefusalError`,拒因点名本条、
|
|
442
|
+
* 窗的最后一天与出路:用早于本条的版本起服一次 —— 它认得这只词,起服即压实删行记录),删码因此是零行为变化。没有起服读数键(它不经迁移段跑,读数是那一行 stderr)。只 local(SQL 两方言从来没有这只词)。
|
|
383
443
|
*
|
|
384
444
|
* ## 收据账(一次起服一只,每一条迁移同一只)
|
|
385
445
|
* 每一步把它**已提交**的改写 / 删除与点名读数当场记进同一只收据账({@link MigrationReceipts}):计数随每次提交累加、行随每次提交追加、形读数在那一步落定时写。走完 ⇒
|
|
@@ -398,20 +458,13 @@ import type { Pool as PgPool } from "pg";
|
|
|
398
458
|
import { type AllowEntryInertReason, type GateKind } from "@sema-agent/core";
|
|
399
459
|
import { type SqlDialect } from "./sql-driver.js";
|
|
400
460
|
import { StoreBootRefusalError } from "./store-contracts.js";
|
|
401
|
-
import { listRuleBucketOwners
|
|
461
|
+
import { listRuleBucketOwners } from "./permission-rule-store-sql.js";
|
|
402
462
|
import type { SchemaProbeRead } from "./schema-live-columns.js";
|
|
403
463
|
import type { ExecutionLane } from "../execution-lane-caps.js";
|
|
404
464
|
import { type ImportedLayerRootAllowRetired, type ImportedLayerRootBucketSkipped, type ImportedLayerRootRetirementSource } from "./imported-layer-root-retirement.js";
|
|
405
465
|
import { type LocalPlacementBackfillSeat, type UnusableArchiveWord } from "../execution-placement.js";
|
|
406
466
|
/** 迁移读数(启动日志一行写全;测试按它断言,不靠日志文本)。 */
|
|
407
467
|
export interface OneTimeMigrationReport {
|
|
408
|
-
/** M11:本次从持久规则桶里删掉的、scope 不被引擎 durable 谓词收的行(一行一条,启动日志逐行 warn;local 车道恒空,见头注 M11 段)。 */
|
|
409
|
-
readonly undurableScopeRuleRows: readonly UndurableScopeRuleRow[];
|
|
410
|
-
/** M11:连续争不过在线写者、留到下一次起服的桶数(那期间坏行照旧由引擎读侧丢并告知;非零 ⇒ warn)。 */
|
|
411
|
-
readonly undurableScopeRuleBucketsDeferred: number;
|
|
412
|
-
/** M11:读腿整桶拒的桶(唯一判官判不过:形 / 指纹 / behavior 闭集 / 墓碑规范文本 / 单一验证器)—— 一个字节没动,一桶一条拒因
|
|
413
|
-
* (不带行内容),启动日志逐桶 warn;local 车道恒空(见头注 M11 段)。 */
|
|
414
|
-
readonly undurableScopeRuleBucketsUnreadable: readonly UnreadableRuleBucket[];
|
|
415
468
|
/** M17:`session_policy` 装规则的那一列 —— `renamed` = 本次把 `rules` 改名成 `rule_entries`;`current` = 早已是新名(新库 / 第二跑);
|
|
416
469
|
* `no-table` = 这只库上没有 `session_policy`(中央 DDL 之后不可达,只为不编一个读数);`file-store` = local 文件车道(规则在引擎自己的文件店里)。 */
|
|
417
470
|
readonly sessionRuleColumn: "renamed" | "current" | "no-table" | "file-store";
|
|
@@ -480,6 +533,22 @@ export interface OneTimeMigrationReport {
|
|
|
480
533
|
readonly sessionExtRowsMoved: number;
|
|
481
534
|
/** M41:本次从 `session_meta` 删掉的部署格列数(一句 ALTER 一起删;0 或在场的那几列)。SQL 独有;local 恒 0。非零 = 真改了表形。 */
|
|
482
535
|
readonly sessionMetaColumnsDropped: number;
|
|
536
|
+
/** M42:本次切换检查扫了几处来源(SQL:身份列数;local:File 店数);0 = 标记早已在场、没扫(第二次起服起恒 0)。SQL 与 local 都有。扫描只读,命中即拒启(不进读数)。 */
|
|
537
|
+
readonly scenarioPrefixSourcesScanned: number;
|
|
538
|
+
/** M43:本次落下撤回出口启用标记的行数(0 或 1;已落 / 别的副本还在心跳 ⇒ 0)。SQL 独有;local 恒 0(数据根独占,没有混跑窗)。非零 = 真写了标记。 */
|
|
539
|
+
readonly withdrawMarkWritten: number;
|
|
540
|
+
/** M51:本次落下会话在删态切换标记的行数(0 或 1;已落 ⇒ 0;别的副本还在心跳 ⇒ 拒启,不进读数)。SQL 独有;local 恒 0(数据根独占,没有混跑窗)。非零 = 真写了标记。 */
|
|
541
|
+
readonly sessionDeletingSwitchMarked: number;
|
|
542
|
+
/** M44:本次改写了 `errorCode` 码列的 run 行数(SQL `task_run` / local `run.json`;结果投影的码 ≠ 列,或 `running` 行带码)。非零 = 真写了存量行。 */
|
|
543
|
+
readonly runErrorCodeColumnRewritten: number;
|
|
544
|
+
/** M45:本次改写了预览列的 run 行数(SQL `task_run` / local `run.json`;以闭集注入块开标签起头的旧形剥到不动点)。非零 = 真写了存量行。 */
|
|
545
|
+
readonly runObjectivePreviewRewritten: number;
|
|
546
|
+
/** M48:本次把 cli 哨兵属主改写成无主的行数(SQL `session_meta` + `task_run` + `leader_run`;local 会话元数据格 + `run.json`)。SQL 与 local 都有。非零 = 真写了存量行;有身份边界的部署恒 0(那里不改写)。 */
|
|
547
|
+
readonly shellSentinelOwnersCleared: number;
|
|
548
|
+
/** M49:本次自 `session_id` 回填了归属会话的检查点行数(SQL `checkpoint.host_session_id` / local 归属索引)。SQL 与 local 都有。非零 = 真写了存量行。 */
|
|
549
|
+
readonly checkpointHostSessionsBackfilled: number;
|
|
550
|
+
/** M46:本次删掉的存量引擎家 `Skill` 会话豁免行数(SQL `approval_exemption` / local 豁免日志墓碑;首次放行早于本库第一次跑本步的时刻 T0)。非零 = 真删了存量行 —— 那些会话的人下一次 `Skill` 调用被重问一次。 */
|
|
551
|
+
readonly legacySkillExemptionsDropped: number;
|
|
483
552
|
/** M32 local 腿:该回填放置、却读不出的会话 —— 有 run、存档读不出(会话头读不出 / 结构走不通 / 读存档文件时抛了别的故障:权限 / 磁盘 I/O / 超大)。一个字节没写,起服不挡:
|
|
484
553
|
* 该会话的请求照旧答存档的故障;存档修好(从留存副本恢复,或权限 / 磁盘修好)后的下一次起服照常补放置。点名行数组(会话 id + 故障词,`storage` 再带 errno),一行一条 warn,每次起服都报直到处置。SQL 独有的反面:SQL 没有这一形(行就是会话);SQL 恒空。 */
|
|
485
554
|
readonly executionPlacementSessionsUnreadable: readonly ExecutionPlacementSessionUnreadable[];
|
|
@@ -493,6 +562,10 @@ export interface OneTimeMigrationReport {
|
|
|
493
562
|
readonly localArchivesUnreadable: readonly LocalArchiveUnreadable[];
|
|
494
563
|
/** M33:本次起服消化掉的快照记录数(上一次被打断的改写留下的;补回 / 丢弃)。local 独有;SQL 恒 0。 */
|
|
495
564
|
readonly localArchiveSnapshotsRecovered: number;
|
|
565
|
+
/** M47:本次给「存档在而会话元数据格缺」的会话建格、化身沿用存档头令牌的会话数。local 独有;SQL 恒 0。非零 = 真写了存量行。 */
|
|
566
|
+
readonly localArchiveTokensAdopted: number;
|
|
567
|
+
/** M47:同上,存档头没有令牌(7.49.0 之前的存档)而新铸的会话数。local 独有;SQL 恒 0。非零 = 真写了存量行。 */
|
|
568
|
+
readonly localArchiveTokensMinted: number;
|
|
496
569
|
/** M34:本次对 `approval_ask` 成因列做的表形改动数(改名 `denied_reason → ending_cause`、加 `park_trigger`;0–2)。非零 = 这次真改了表形。SQL 独有;local 恒 0。 */
|
|
497
570
|
readonly askCauseColumnsChanged: number;
|
|
498
571
|
/** M34:本次把那一格从 `ending_cause` 搬进 `park_trigger` 的 PARKING / PARKED 行数。非零 = 真写了存量行。SQL 独有;local 恒 0。 */
|
|
@@ -610,7 +683,7 @@ export declare class OneTimeMigrationInterruptedError extends Error {
|
|
|
610
683
|
* 规则(窗长 30 天、窗关后的第一个 minor 删码、门怎么判)在本文件头注「窗」一节,只写那一次。
|
|
611
684
|
*/
|
|
612
685
|
export interface OneTimeMigrationWindow {
|
|
613
|
-
/** 本文件里的条目名(头注「窗内的迁移」的
|
|
686
|
+
/** 本文件里的条目名(头注「窗内的迁移」的 M12…)。 */
|
|
614
687
|
readonly id: string;
|
|
615
688
|
/** 引入这条迁移的版本 = 第一只含其代码的发布 tag(取证:`git log -S '<该条的常量名>' -- src/plugins/one-time-migrations.ts`
|
|
616
689
|
* 找引入提交 → `git tag --contains <提交> --sort=creatordate` 取最早)。 */
|
|
@@ -627,6 +700,12 @@ export interface OneTimeMigrationWindow {
|
|
|
627
700
|
readonly afterRemoval: string;
|
|
628
701
|
/** 本条在 {@link OneTimeMigrationReport} 里的读数键 —— 报告的每个键恰属一条(到期门核:新迁移不登记 ⇒ 红)。 */
|
|
629
702
|
readonly reportKeys: readonly (keyof OneTimeMigrationReport)[];
|
|
703
|
+
/**
|
|
704
|
+
* 本条起服时从存量表上**删掉**的列(表名 → 列名)。只有会发 `DROP COLUMN` 的迁移写它;列名取自删列句读的那一份常量(不手抄)。读者 = 发车门 1.10 第三档
|
|
705
|
+
* ({@link columnsRemovedByPendingMigrations} → `scripts/schema-reconcile.mjs`):共享测试库还是升级前的旧形、带着这些列时,读成「待跑迁移要删的旧列」,不读成「库比本树新」。
|
|
706
|
+
* 删码时随本行一起走 —— 行没了,这些列重新读作多余列(= 本条 `afterRemoval` 写的起服拒启)。
|
|
707
|
+
*/
|
|
708
|
+
readonly dropsColumns?: Readonly<Record<string, readonly string[]>>;
|
|
630
709
|
}
|
|
631
710
|
/**
|
|
632
711
|
* 🔴 [ref] —— 一次性迁移登记表,本文件各条的窗的**唯一属主**。别处(接口 JSDoc、调用点、DDL 注、部署文档)只写「窗口见
|
|
@@ -636,7 +715,7 @@ export declare const ONE_TIME_MIGRATIONS: readonly OneTimeMigrationWindow[];
|
|
|
636
715
|
/**
|
|
637
716
|
* 一条登记行的窗**此刻**开着没有(`today` = UTC 日历日 YYYY-MM-DD):未发布形(`removableAfter: null`)⇒ 开;否则今天不晚于 `removableAfter` ⇒ 开
|
|
638
717
|
* (窗关当天仍开,与到期门「今天严格晚于才红」同一条边界)。
|
|
639
|
-
* 给**窗内才生效的行为臂**(
|
|
718
|
+
* 给**窗内才生效的行为臂**(M19 / M20 的续跑重读、M38 的续跑剥键)与本文件迁移段之外的起服扫描(M28 / M30)用:过了窗就停,不等删码车 —— 删码因此是零行为变化,而窗只写在本表这一处。
|
|
640
719
|
*/
|
|
641
720
|
export declare function migrationWindowOpen(window: Pick<OneTimeMigrationWindow, "removableAfter">, today: string): boolean;
|
|
642
721
|
/**
|
|
@@ -645,8 +724,16 @@ export declare function migrationWindowOpen(window: Pick<OneTimeMigrationWindow,
|
|
|
645
724
|
* 还没有日期可写)⇒ 响亮抛,不铸一句带空日期的句子。
|
|
646
725
|
*/
|
|
647
726
|
export declare function migrationWindowEnd(id: string): string;
|
|
648
|
-
/**
|
|
649
|
-
export
|
|
727
|
+
/** 待删列:表 → 列 → 认领它的迁移 id。 */
|
|
728
|
+
export type PendingColumnRemovals = ReadonlyMap<string, ReadonlyMap<string, string>>;
|
|
729
|
+
/**
|
|
730
|
+
* 登记表里**待跑的**一次性迁移要删的存量列(表 → 列 → 迁移 id)—— 发车门 1.10 第三档读它,把共享测试库上「本树没有的列」分成两类:这里点名的 = 待跑迁移起服时要删的升级前旧形(不是库太新);
|
|
731
|
+
* 别的 = 库比本树新(起服同样拒)。登记行在 ⇔ 这条迁移的代码还在、起服会跑它 ⇒ 「待跑」的判据就是行在场,不另设标记;行随删码一起没了,集合随之变空。「待跑」只说起服会**去跑**它,不说一定跑得成(迁移自己的前提 —— 如 M41 的判活窗内无 run 在心跳 —— 是起服时的动态条件,读者不据此判)。
|
|
732
|
+
* 同一(表 × 列)被两行认领 ⇒ 响亮抛(一件事一个属主,不挑一个)。`registry` 是测试缝,生产只用登记表本身。
|
|
733
|
+
*/
|
|
734
|
+
export declare function columnsRemovedByPendingMigrations(registry?: readonly Pick<OneTimeMigrationWindow, "id" | "dropsColumns">[]): PendingColumnRemovals;
|
|
735
|
+
/** local 车道上 SQL 独有的几条(M17 / M18 / M21 / M23 / M24 / M26 / M27 / M29)的读数(M32 的回填两车道都有、M33 只在 local,local 腿的读数由 `LocalBackend.runOneTimeMigrations` 现算):那几张表 / 列在文件底座上从来不存在 ⇒ 如实答 absent / 0。 */
|
|
736
|
+
export declare const NO_SQL_MIGRATIONS: Omit<OneTimeMigrationReport, "runErrorCodeColumnRewritten" | "runObjectivePreviewRewritten" | "shellSentinelOwnersCleared" | "checkpointHostSessionsBackfilled" | "legacySkillExemptionsDropped" | "executionPlacementsBackfilled" | "askExecutionLanesBackfilled" | "executionLaneWordsRenamed" | "scenarioPrefixSourcesScanned" | "executionPlacementSessionsUnreadable" | "localArchiveRowFactsBackfilled" | "localArchivesAnonymized" | "localArchivesKeptStamped" | "localArchivesUnreadable" | "localArchiveSnapshotsRecovered" | "localArchiveTokensAdopted" | "localArchiveTokensMinted" | "askJournalRecordsUpgraded" | "importedLayerRootAllowsRetired" | "importedLayerRootBucketsSkipped" | "importedLayerRootBucketsUnnamed">;
|
|
650
737
|
/** 启动期的日志口(logger 的子集)。两级各有其用,见 {@link logOneTimeMigrations}。 */
|
|
651
738
|
export interface MigrationLogSink {
|
|
652
739
|
warn(msg: string, meta?: Record<string, unknown>): void;
|
|
@@ -673,8 +760,8 @@ export interface MigrationDb {
|
|
|
673
760
|
* 每条改表 DDL 的成功判据仍是它的**后置条件**({@link execUntil}),「另一个副本抢先把同一张表换了形」不会把滚动升级变成启动失败循环。
|
|
674
761
|
*
|
|
675
762
|
* ## 次序(codex r1 [medium] 同轮)
|
|
676
|
-
* 非破坏改写(M18:改值不丢信息)在前,破坏性步骤(
|
|
677
|
-
*
|
|
763
|
+
* 非破坏改写(M18:改值不丢信息)在前,破坏性步骤(M24 丢下跨 scope 行的换名等)排在最后;
|
|
764
|
+
* 破坏性步骤半途失败时,拒因自带已提交的收据(收据账随拒因交出)—— 否则重试看不见已删的行,证据永久消失;M24 的丢行计数在换名提交之后进收据账。
|
|
678
765
|
*
|
|
679
766
|
* 本函数**不问**退役 schema:带着它的库在更早处就被 `ensureSchema()` 自身拒掉了(起服对账一族 `schema-consistency.ts` 的探针口,先于建表);走公开序列
|
|
680
767
|
* `createStoreBackend()` → `ensureSchema()` → `runOneTimeMigrations()` 的嵌入方与本服务的起服序列一样,有这一问、零动作。
|
|
@@ -685,6 +772,46 @@ export interface MigrationDb {
|
|
|
685
772
|
*/
|
|
686
773
|
export declare function createSqlImportedLayerRootSource(exec: Parameters<typeof listRuleBucketOwners>[0]): ImportedLayerRootRetirementSource;
|
|
687
774
|
export declare function runSqlOneTimeMigrations(dialect: SqlDialect, pool: MysqlPool | PgPool, input: SqlOneTimeMigrationInput): Promise<OneTimeMigrationReport>;
|
|
775
|
+
/** M48 的那一步(见头注 M48 段):只在输入显式说「没有身份边界」时改写 —— 有身份边界的部署上零改写(哨兵在那里是一位普通的具名属主);改写面里的每张表一句按值的 `UPDATE`(表不在 ⇒ 跳过);写后不再有哨兵值 ⇒ 第二跑零命中。
|
|
776
|
+
* 值**逐字节**比:MySQL 协议的 `utf8mb4_bin` 是 PAD SPACE(`'a' = 'a '`),普通等值会把只差尾空格的另一位属主(合法主体名)也改成无主 ——
|
|
777
|
+
* 与 M17 / M18 的 CAS 同一写法 `CAST(… AS BINARY)`;PG `text` 等值本就逐字节。 */
|
|
778
|
+
export declare function clearShellSentinelOwnersM48(db: MigrationDb, dialect: SqlDialect, receipts: {
|
|
779
|
+
shellSentinelOwnersCleared: number;
|
|
780
|
+
}, input: ShellSentinelOwnerInput): Promise<void>;
|
|
781
|
+
/**
|
|
782
|
+
* M46 的 SQL 腿(判据与形见头注 M46 段):标记表不在才建(与 M42 / M43 同一张);**T0 先落**(标记行 `M46`:不在 ⇒ 写下此刻、再读回来用;并发起服收敛到先落的那一只);
|
|
783
|
+
* 然后按 `session_id` 键集分批:一页读「`tool_name` = 引擎 Skill 工具名 ∧ `created_at` < T0」的会话,一句 `DELETE … IN` 删掉那一页。被打断 ⇒ 下一次起服读同一个 T0 接着删;
|
|
784
|
+
* 幂等:第二跑零命中(本版自己写下的行 `created_at ≥ T0`,不在谓词里)。表不在 ⇒ 零动作(中央 DDL 先于本段,不可达,只为不编读数)。
|
|
785
|
+
*/
|
|
786
|
+
export declare function dropLegacySkillExemptionsM46(db: MigrationDb, dialect: SqlDialect, receipts: {
|
|
787
|
+
legacySkillExemptionsDropped: number;
|
|
788
|
+
}): Promise<void>;
|
|
789
|
+
/** M51 在标记表(`plugins/one-time-migration-marker.ts`)里的键。 */
|
|
790
|
+
export declare const SESSION_DELETING_MARK_ID = "M51";
|
|
791
|
+
/** M51 起服拒的机读码(确定的拒启表态:全停之后再起才有另一个答案)。 */
|
|
792
|
+
export declare const SESSION_DELETING_SWITCH_REFUSED_CODE = "config.session_deleting_switch_refused";
|
|
793
|
+
/** M51 起服拒:标记还没落,而判活窗内仍有 run 在心跳(拒因闭集只有 `live_runs`)。 */
|
|
794
|
+
export declare class SessionDeletingSwitchRefusedError extends StoreBootRefusalError {
|
|
795
|
+
readonly code = "config.session_deleting_switch_refused";
|
|
796
|
+
readonly reason: "live_runs";
|
|
797
|
+
constructor(live: LiveRunHeartbeat);
|
|
798
|
+
}
|
|
799
|
+
/**
|
|
800
|
+
* M42 的扫描面:本树建表句(两方言各自的录制,与起服列册对账同一份)里名字合 {@link IDENTITY_COLUMN_NAME}、类型是字符 / 字节串的列,与库里实际在的列取交(条件建的表不在库里 ⇒ 不扫)。
|
|
801
|
+
* 按 `表.列` 排序(拒句与读数逐跑同序)。
|
|
802
|
+
*/
|
|
803
|
+
export declare function scannedIdentityColumnsM42(db: Pick<MigrationDb, "rows">, dialect: SqlDialect): Promise<{
|
|
804
|
+
readonly table: string;
|
|
805
|
+
readonly column: string;
|
|
806
|
+
}[]>;
|
|
807
|
+
/**
|
|
808
|
+
* 🔴 M42 的 SQL 腿:标记在场 ⇒ 返回(零扫描);否则逐列只读计数 `LIKE '<前缀>%'`,一处命中 ⇒ {@link ScenarioPrefixSwitchRefusedError}(`stored_prefix`;一字节没写,标记不写);
|
|
809
|
+
* 零命中而判活窗内仍有 run 在心跳 ⇒ 同一只拒(`live_runs`,停-迁-起;标记不写);否则写标记。
|
|
810
|
+
* 握着迁移段的那一把锁、在那一条连接上:两只副本同时起服时第二只读到第一只写下的标记(写标记用 `INSERT IGNORE` / `ON CONFLICT DO NOTHING`,收敛)。
|
|
811
|
+
*/
|
|
812
|
+
export declare function switchScenarioPrefixM42(db: MigrationDb, dialect: SqlDialect, receipts: {
|
|
813
|
+
scenarioPrefixSourcesScanned: number;
|
|
814
|
+
}, input: ExecutionLaneRenameInput): Promise<void>;
|
|
688
815
|
/** M40 的拒启码(停-迁-起守卫)。 */
|
|
689
816
|
export declare const EXECUTION_LANE_RENAME_REFUSED_CODE = "config.execution_lane_rename_refused";
|
|
690
817
|
/**
|
|
@@ -726,8 +853,13 @@ export declare class ExecutionLaneRenameWriteRefusedError extends StoreBootRefus
|
|
|
726
853
|
export interface ExecutionLaneRenameInput {
|
|
727
854
|
readonly liveRunWindowMs: number;
|
|
728
855
|
}
|
|
856
|
+
/** M48 的输入:本部署有没有身份边界 = 部署形表 `DEPLOYMENT_SHAPE_PREDICATES.identityBoundary` 那一行的读数(只读配置;调用方读表交来,迁移步不另读配置)。
|
|
857
|
+
* SQL 腿 `clearShellSentinelOwnersM48` 读它;local 腿(`LocalBackend.runOneTimeMigrations` 里 M48 那一格)读同一行,由后端构造时读一次;dev-open 判据(`devOpenDeployment`)读同一行。 */
|
|
858
|
+
export interface ShellSentinelOwnerInput {
|
|
859
|
+
readonly identityBoundary: boolean;
|
|
860
|
+
}
|
|
729
861
|
/** SQL 一次性迁移段的输入(各条目自己的那一半;删码车删掉它那一半)。 */
|
|
730
|
-
export type SqlOneTimeMigrationInput = ExecutionPlacementSwitchInput & ExecutionLaneRenameInput;
|
|
862
|
+
export type SqlOneTimeMigrationInput = ExecutionPlacementSwitchInput & ExecutionLaneRenameInput & ShellSentinelOwnerInput;
|
|
731
863
|
/**
|
|
732
864
|
* M40 ⓪ —— 带 `execution_lane` 列的表上的旧词改成新名(问行表 + 会话的那一列所在的表:M41 搬之前在 `session_meta`、之后在 `session_ext`;一句 UPDATE 一张表;幂等:第二跑零命中)。列不在的表零动作(跳版升上来的库:M32 稍后加列、按声明车道回填,不会再铸旧词)。
|
|
733
865
|
* 还有旧词行 ⇒ 先过停-迁-起守卫({@link refuseWhileRunsHeartbeat});没有 ⇒ 不读 run 表、零写(没跑过无车道部署的库可滚动升级)。
|
|
@@ -735,6 +867,15 @@ export type SqlOneTimeMigrationInput = ExecutionPlacementSwitchInput & Execution
|
|
|
735
867
|
export declare function renameRetiredExecutionLaneWordsM40(db: MigrationDb, dialect: SqlDialect, receipts: {
|
|
736
868
|
executionLaneWordsRenamed: number;
|
|
737
869
|
}, input: ExecutionLaneRenameInput): Promise<void>;
|
|
870
|
+
/** 判活窗内的 `running` run 心跳(停-迁-起守卫的读数;M40 / M41 同读):没有 ⇒ `undefined`。 */
|
|
871
|
+
interface LiveRunHeartbeat {
|
|
872
|
+
readonly liveRuns: number;
|
|
873
|
+
readonly windowSec: number;
|
|
874
|
+
/** 全停之后可以再起的最早时刻(ISO;= 最新心跳 + 判活窗;读不出最新心跳 ⇒ 现在 + 窗,上界)。 */
|
|
875
|
+
readonly restartAfter: string;
|
|
876
|
+
/** 同一时刻的人读形(带「离现在还有几秒」)。 */
|
|
877
|
+
readonly after: string;
|
|
878
|
+
}
|
|
738
879
|
/** M41 的拒启码(确定的拒启表态;与 `config.schema_mismatch` 同一族)。 */
|
|
739
880
|
export declare const SESSION_EXT_MOVE_REFUSED_CODE = "config.session_ext_move_refused";
|
|
740
881
|
/** 拒因闭集:`live_runs` = 还有列要搬而本库上仍有 run 在心跳(停-迁-起);`copy_mismatch` = 搬完核对有一行不等(一列没删)。 */
|
|
@@ -801,11 +942,11 @@ export interface LocalPlacementBackfill {
|
|
|
801
942
|
}
|
|
802
943
|
/**
|
|
803
944
|
* M32 的 **local 腿**(local 车道没有绑定表、没有 `session_meta`,只有 ④ 与回填前提):本地 run 店里有 run 的会话(`FileRunStore.sessionIdsWithRuns`),
|
|
804
|
-
*
|
|
945
|
+
* 逐只交回填席的 `backfill`(在那只会话的写锁里观察一次、absent ⇒ 一笔写成 writer = 表唯一项;forking / mirror / writer / placed 与行不在的一律不碰)。
|
|
805
946
|
* 席读出「存档读不出」({@link LocalPlacementBackfillSeat}:会话头读不出 / 结构走不通 / 读的时候抛了别的故障 —— I/O 级的权限、磁盘、超大)⇒ **跳过并点名**
|
|
806
947
|
* (`unreadable`:会话 id + 故障词〔闭集 {@link UnusableArchiveWord}〕,`storage` 再带 errno;一个字节没写,不拒启):
|
|
807
948
|
* 回填不动存档、只补一格放置,读不出的存档不归它判;该会话的请求照旧答存档的故障,存档修好后的下一次起服照常补。读不出的会话不计入「还有要回填的」。
|
|
808
|
-
* 车道表不是一元而还有 absent 的 ⇒
|
|
949
|
+
* 车道表不是一元而还有 absent 的 ⇒ 席逐只答 `ambiguous`、一个字节不写,循环完与 SQL 同一只拒(`backfill_ambiguous`)。起服时调(`LocalBackend.runOneTimeMigrations`,任何读者之前;数据根独占)。
|
|
809
950
|
*/
|
|
810
951
|
export declare function backfillLocalExecutionPlacements(sessionIds: Iterable<string>, seat: LocalPlacementBackfillSeat, input: ExecutionPlacementSwitchInput): Promise<LocalPlacementBackfill>;
|
|
811
952
|
/** M32 ④b local 腿的两种拒(`FileApprovalAskStore.backfillExecutionLanes` 交给调用方铸句):缺车道的问在多元车道表下没有唯一答案 / 记下的词不是车道词。 */
|