@sema-agent/server 7.148.0 → 7.149.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 +429 -0
- package/README.md +16 -1
- package/README.zh-CN.md +4 -0
- package/USAGE.md +89 -55
- package/dist/adoption/wire.d.ts +3 -3
- package/dist/approval-card.d.ts +32 -32
- package/dist/approval-leg-origin.d.ts +33 -0
- package/dist/approval-leg-origin.js +4 -0
- package/dist/auth-bridge.d.ts +9 -1
- package/dist/auth-bridge.js +4 -4
- package/dist/auth-keys.d.ts +10 -1
- package/dist/auth-keys.js +8 -0
- package/dist/boot/execution-env.js +10 -11
- package/dist/boot/execution-lane.d.ts +6 -4
- package/dist/boot/execution-lane.js +3 -1
- package/dist/boot/org-delivery.d.ts +3 -2
- package/dist/boot/resolve-spec.js +6 -4
- package/dist/boot/runner-deps.js +3 -1
- package/dist/boot/stage-01-config.d.ts +1 -0
- package/dist/boot/stage-01-config.js +4 -3
- package/dist/boot/stage-02-web-admin-pull.d.ts +1 -0
- package/dist/boot/stage-02-web-admin-pull.js +10 -2
- package/dist/boot/stage-03-store-backend.d.ts +1 -0
- package/dist/boot/stage-03-store-backend.js +2 -2
- package/dist/boot/stage-04-stores.d.ts +1 -0
- package/dist/boot/stage-05-execution-env.d.ts +1 -0
- package/dist/boot/stage-06-runners.d.ts +2 -1
- package/dist/boot/stage-07-capability-layer.d.ts +2 -1
- package/dist/boot/stage-08-reapers.d.ts +2 -1
- package/dist/boot/stage-09-leader.d.ts +2 -1
- package/dist/boot/stage-10-http-server.d.ts +2 -1
- package/dist/boot/stores.d.ts +3 -0
- package/dist/boot/stores.js +22 -19
- package/dist/capabilities/tool-defer.d.ts +1 -1
- package/dist/capability-facts.d.ts +5 -4
- package/dist/capability-facts.js +3 -14
- package/dist/card-settle-stored-scope.d.ts +56 -0
- package/dist/card-settle-stored-scope.js +27 -0
- package/dist/card-void.d.ts +7 -12
- package/dist/card-void.js +2 -7
- package/dist/config-catalog.d.ts +12 -0
- package/dist/config-catalog.js +36 -32
- package/dist/config-invariants.d.ts +5 -4
- package/dist/config-invariants.js +4 -4
- package/dist/config-types.d.ts +37 -5
- package/dist/config.d.ts +6 -5
- package/dist/config.js +35 -24
- package/dist/context-window-notice.d.ts +31 -0
- package/dist/context-window-notice.js +28 -0
- package/dist/deployment-shape.d.ts +20 -11
- package/dist/deployment-shape.js +1 -0
- package/dist/env-name-allowlist-knobs.d.ts +6 -5
- package/dist/env-name-allowlist-knobs.js +5 -0
- package/dist/execution-lane-caps.d.ts +20 -5
- package/dist/execution-lane-caps.js +18 -4
- package/dist/hooks/command-spawn.d.ts +7 -2
- package/dist/hooks/command-spawn.js +13 -6
- package/dist/hooks/hook-runner.d.ts +5 -0
- package/dist/hooks/hook-runner.js +11 -7
- package/dist/http/admission.js +3 -3
- package/dist/http/approval-sweeps.js +3 -2
- package/dist/http/claim-heartbeat.d.ts +3 -3
- package/dist/http/claim-heartbeat.js +3 -3
- package/dist/http/claimed-run.d.ts +16 -9
- package/dist/http/claimed-run.js +8 -0
- package/dist/http/dispatch.js +5 -3
- package/dist/http/durable-run-leg.d.ts +8 -1
- package/dist/http/durable-run-leg.js +30 -11
- package/dist/http/execution-context.d.ts +115 -14
- package/dist/http/execution-context.js +130 -40
- package/dist/http/owner-access.d.ts +3 -2
- package/dist/http/owner-access.js +2 -3
- package/dist/http/principal-gate.d.ts +18 -11
- package/dist/http/principal-gate.js +3 -1
- package/dist/http/resume-ctx-read.d.ts +14 -3
- package/dist/http/resume-ctx-read.js +8 -2
- package/dist/http/resume-legs.d.ts +35 -3
- package/dist/http/resume-legs.js +244 -92
- package/dist/http/route-ctx.d.ts +6 -0
- package/dist/http/routes/a2a-serve.js +2 -0
- package/dist/http/routes/approvals-assistant.js +3 -2
- package/dist/http/routes/capabilities.js +1 -1
- package/dist/http/routes/diagnostics.d.ts +3 -1
- package/dist/http/routes/diagnostics.js +30 -5
- package/dist/http/routes/principal-inbox.d.ts +3 -1
- package/dist/http/routes/principal-inbox.js +3 -2
- package/dist/http/routes/runs.js +10 -7
- package/dist/http/routes/session-sync.d.ts +24 -5
- package/dist/http/routes/session-sync.js +46 -34
- package/dist/http/routes/sessions-list.d.ts +1 -1
- package/dist/http/routes/tasks.js +127 -93
- package/dist/http/server.d.ts +4 -5
- package/dist/http/server.js +30 -5
- package/dist/http/submit-ctx.d.ts +1 -0
- package/dist/http/submit-ctx.js +2 -3
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -0
- package/dist/leg-facts.d.ts +7 -2
- package/dist/leg-facts.js +1 -0
- package/dist/local-store-declaration.d.ts +54 -0
- package/dist/local-store-declaration.js +59 -0
- package/dist/mcp-assertion-header.d.ts +1 -1
- package/dist/mcp-assertion-header.js +1 -1
- package/dist/memory-project-layer.js +1 -1
- package/dist/memory-scope.d.ts +4 -4
- package/dist/memory-scope.js +4 -4
- package/dist/memory-sync-client.js +2 -2
- package/dist/model-context-window.d.ts +50 -11
- package/dist/model-context-window.js +20 -1
- package/dist/model-entry-refusal.d.ts +5 -4
- package/dist/model-entry-refusal.js +17 -3
- package/dist/model-reach-scope.d.ts +2 -1
- package/dist/observability/fail-open.d.ts +14 -2
- package/dist/observability/fail-open.js +14 -2
- package/dist/observability/metrics.js +1 -1
- package/dist/observability/run-terminal.js +1 -0
- package/dist/observability/secret-env-scrub.d.ts +1 -1
- package/dist/observability/secret-env-scrub.js +1 -1
- package/dist/org-delivery-gate.d.ts +31 -6
- package/dist/org-delivery-gate.js +7 -4
- package/dist/owner-faces.d.ts +3 -2
- package/dist/park-row-commit.d.ts +67 -0
- package/dist/park-row-commit.js +76 -0
- package/dist/parked-decide.d.ts +9 -7
- package/dist/parked-decide.js +25 -6
- package/dist/peer-directory.d.ts +1 -1
- package/dist/plugins/adoption-log-sql.d.ts +3 -3
- package/dist/plugins/adoption-log-sql.js +19 -19
- package/dist/plugins/approval-ask-store-sql.d.ts +1 -1
- package/dist/plugins/approval-ask-store-sql.js +3 -5
- package/dist/plugins/approval-exemption-skill-cutoff.d.ts +64 -0
- package/dist/plugins/approval-exemption-skill-cutoff.js +122 -0
- package/dist/plugins/approval-exemption-skill-m46.d.ts +0 -6
- package/dist/plugins/approval-exemption-skill-m46.js +6 -10
- package/dist/plugins/approval-exemption-store.d.ts +26 -1
- package/dist/plugins/approval-exemption-store.js +28 -19
- package/dist/plugins/ensure-schema-lock-policy.d.ts +36 -3
- package/dist/plugins/ensure-schema-lock-policy.js +75 -9
- package/dist/plugins/file-run-store.d.ts +22 -9
- package/dist/plugins/file-run-store.js +50 -22
- package/dist/plugins/local-checkpoint-store.d.ts +4 -0
- package/dist/plugins/local-checkpoint-store.js +2 -1
- package/dist/plugins/local-data-root-admission.d.ts +52 -0
- package/dist/plugins/local-data-root-admission.js +100 -0
- package/dist/plugins/local-engine-high-water.d.ts +28 -7
- package/dist/plugins/local-engine-high-water.js +27 -22
- package/dist/plugins/local-session-store.d.ts +134 -49
- package/dist/plugins/local-session-store.js +149 -108
- package/dist/plugins/memory-run-store.d.ts +14 -9
- package/dist/plugins/memory-run-store.js +47 -21
- package/dist/plugins/one-time-migration-marker.d.ts +19 -3
- package/dist/plugins/one-time-migration-marker.js +7 -1
- package/dist/plugins/one-time-migrations.d.ts +46 -20
- package/dist/plugins/one-time-migrations.js +102 -79
- package/dist/plugins/org-delivery-quota-store.d.ts +34 -11
- package/dist/plugins/org-delivery-quota-store.js +29 -14
- package/dist/plugins/permission-rule-store-sql.d.ts +1 -1
- package/dist/plugins/permission-rule-store-sql.js +5 -9
- package/dist/plugins/pg-pool.d.ts +1 -1
- package/dist/plugins/pg-pool.js +10 -12
- package/dist/plugins/remote-env-device.d.ts +3 -2
- package/dist/plugins/remote-env-e2b.d.ts +1 -7
- package/dist/plugins/remote-env-e2b.js +10 -7
- package/dist/plugins/remote-env-host.d.ts +50 -9
- package/dist/plugins/remote-env-host.js +77 -20
- package/dist/plugins/remote-env-k8s.js +4 -2
- package/dist/plugins/remote-env-local-docker.d.ts +6 -3
- package/dist/plugins/remote-env-local-docker.js +8 -23
- package/dist/plugins/run-store-sql.d.ts +26 -7
- package/dist/plugins/run-store-sql.js +44 -16
- package/dist/plugins/scenario-prefix-switch-m42.d.ts +3 -1
- package/dist/plugins/scenario-prefix-switch-m42.js +4 -3
- package/dist/plugins/schema-consistency.d.ts +89 -5
- package/dist/plugins/schema-consistency.js +176 -7
- package/dist/plugins/schema-drift-sentence.d.ts +6 -5
- package/dist/plugins/schema-drift-sentence.js +13 -5
- package/dist/plugins/session-placement.d.ts +5 -4
- package/dist/plugins/shell-sentinel-owner-m48.d.ts +22 -0
- package/dist/plugins/shell-sentinel-owner-m48.js +6 -0
- package/dist/plugins/stop-then-start-sentence.d.ts +16 -0
- package/dist/plugins/stop-then-start-sentence.js +7 -0
- package/dist/plugins/store-backend.d.ts +22 -8
- package/dist/plugins/store-backend.js +58 -24
- package/dist/plugins/store-contracts.d.ts +33 -3
- package/dist/plugins/store-contracts.js +16 -0
- package/dist/plugins/tidb-pool.d.ts +11 -6
- package/dist/plugins/tidb-pool.js +18 -12
- package/dist/plugins/workspace-custody.d.ts +44 -0
- package/dist/plugins/workspace-custody.js +47 -0
- package/dist/project-identity.d.ts +8 -7
- package/dist/project-identity.js +40 -17
- package/dist/project-layer-key.d.ts +13 -2
- package/dist/project-layer-key.js +9 -1
- package/dist/read-deny-floor-notice.d.ts +36 -0
- package/dist/read-deny-floor-notice.js +40 -0
- package/dist/{plain-string-record.d.ts → request-declaration-disposition.d.ts} +9 -23
- package/dist/request-declaration-disposition.js +39 -0
- package/dist/run-cancel-card.d.ts +28 -0
- package/dist/run-cancel-card.js +19 -0
- package/dist/run-cancel-context.d.ts +10 -0
- package/dist/run-cancel-context.js +1 -0
- package/dist/run-local.js +28 -13
- package/dist/runs.d.ts +31 -7
- package/dist/runs.js +34 -16
- package/dist/security.d.ts +2 -2
- package/dist/server-secret-env.d.ts +34 -20
- package/dist/server-secret-env.js +61 -18
- package/dist/session-agent.d.ts +3 -2
- package/dist/session-children-retire.d.ts +6 -3
- package/dist/session-children-retire.js +2 -5
- package/dist/session-workspace.d.ts +3 -3
- package/dist/store-admission.d.ts +33 -0
- package/dist/store-admission.js +49 -0
- package/dist/store-posture.d.ts +5 -0
- package/dist/store-posture.js +18 -1
- package/dist/stores-sql/checkpoint-store-sql.d.ts +1 -1
- package/dist/stores-sql/checkpoint-store-sql.js +3 -5
- package/dist/stores-sql/file-history-store-sql.d.ts +1 -1
- package/dist/stores-sql/file-history-store-sql.js +3 -5
- package/dist/stores-sql/tool-result-store-sql.d.ts +1 -1
- package/dist/stores-sql/tool-result-store-sql.js +4 -6
- package/dist/task-a2a.d.ts +3 -8
- package/dist/task-a2a.js +25 -27
- package/dist/task-cwd.d.ts +23 -7
- package/dist/task-cwd.js +3 -0
- package/dist/task-mcp.d.ts +3 -3
- package/dist/task-mcp.js +1 -1
- package/dist/task-settings.js +1 -0
- package/dist/terminal.d.ts +2 -0
- package/dist/terminal.js +21 -6
- package/dist/tool-approval.d.ts +44 -36
- package/dist/tool-approval.js +66 -47
- package/dist/trace/engine-notice-wire.d.ts +24 -21
- package/dist/trace/engine-notice-wire.js +7 -3
- package/dist/trace/ledger-sink.d.ts +3 -1
- package/dist/trace/project.d.ts +4 -2
- package/dist/trace/project.js +8 -7
- package/dist/trace/redact.d.ts +12 -0
- package/dist/trace/redact.js +5 -1
- package/dist/trace/self-minted-wire.d.ts +131 -52
- package/dist/trace/self-minted-wire.js +71 -39
- package/dist/web-admin-client/apply-effective.js +22 -9
- package/docs/error-text-lexicon.json +317 -0
- package/package.json +3 -1
- package/scripts/embed-minimal.mjs +183 -0
- package/wire-changes/server@7.149.0.json +372 -0
- package/dist/plain-string-record.js +0 -70
|
@@ -10,11 +10,69 @@ import { type Logger } from "../observability/logger.js";
|
|
|
10
10
|
import type { SessionOccupant } from "../session-erase.js";
|
|
11
11
|
import { type RegisterReceipt, type SessionBirth, type SessionFace, type WithdrawOutcome } from "../session-incarnation.js";
|
|
12
12
|
import type { SessionDeletionFace } from "../session-deletion.js";
|
|
13
|
+
import { type ExecutionLane } from "../execution-lane-caps.js";
|
|
13
14
|
import { type ExecutionPlacementSeat, type LocalPlacementBackfillSeat } from "../execution-placement.js";
|
|
14
15
|
import { type ForkPlacement, type ForkTarget, type ForkToOutcome } from "./session-fork.js";
|
|
15
16
|
import { type InstructionSourceBaseline } from "../instruction-source-notice.js";
|
|
16
17
|
import type { SessionWorkspace } from "../session-workspace.js";
|
|
17
18
|
import { type StagedCommitOptions, type StagingHandle, type SyncRelation } from "../session-sync-kernel.js";
|
|
19
|
+
/**
|
|
20
|
+
* 本店执行格的形(会话元数据那一格的 `execution` 位;规则在 `src/execution-placement.ts`):`writer(L)` | `mirror`;缺 = absent。
|
|
21
|
+
* local 车道没有 device 表 ⇒ 不设任何设备位(writer 只带车道)。`forking` 不是存下的值,是「fork 创建的格({@link isForkCreatedCell})而存档不在」的读法。
|
|
22
|
+
*/
|
|
23
|
+
type LocalExecutionCell = {
|
|
24
|
+
readonly role: "writer";
|
|
25
|
+
readonly lane: ExecutionLane;
|
|
26
|
+
} | {
|
|
27
|
+
readonly role: "mirror";
|
|
28
|
+
};
|
|
29
|
+
/** 对象形一格(六位;`owner` 键缺 = 属主从没被记下,与 `owner: null` = 记下无主不同义)。 */
|
|
30
|
+
interface SessionMetaCellObject {
|
|
31
|
+
readonly incarnation: string;
|
|
32
|
+
readonly owner?: string | null;
|
|
33
|
+
readonly execution?: LocalExecutionCell;
|
|
34
|
+
readonly forkKey?: string;
|
|
35
|
+
/** 行的建档时刻(ISO;SQL `session_meta.created_at` 的对位)。每个铸行点同一笔写下;缺 = 补铸的格(没有事实可写),或一次性迁移 M33 之前写下、还没回填的格。 */
|
|
36
|
+
readonly createdAt?: string;
|
|
37
|
+
/** fork 谱系:建这一行的那次 fork 的源会话 id(只由 fork 创建点写)。缺 = 这一行不是 fork 建的。 */
|
|
38
|
+
readonly forkedFrom?: string;
|
|
39
|
+
/**
|
|
40
|
+
* fork 谱系的住客那一半:源行在 fork 那一刻的住客令牌(这只边档那一格的令牌体系 —— 与 SQL 孪生 `session_meta.forked_from_incarnation` 同义),与 `forkedFrom` 同一笔、
|
|
41
|
+
* 只由 fork 创建点写(core `forkRowCells` 铸)。缺 = 不是 fork 建的,或这一位落地之前建的 fork / 源那一刻没有格(来源住客未知,不回填)。
|
|
42
|
+
*/
|
|
43
|
+
readonly forkedFromIncarnation?: string;
|
|
44
|
+
/**
|
|
45
|
+
* 「删除中」(删一行的唯一删序的第一笔,{@link LocalSessionStore.dropRowHeld} 的 s0):在 = 删除已经开始、还没收完 —— 这一行对每个读者都不在(读者律),每一节会话写锁先把它收完(写者律),
|
|
46
|
+
* 起服扫一遍逐只收尾。只有删序写它、只有删序的收尾删它;别的写者撞上带它的格 = 不变量破,响亮抛。缺 = 活行。
|
|
47
|
+
*/
|
|
48
|
+
readonly dropping?: true;
|
|
49
|
+
/**
|
|
50
|
+
* 「在删」(会话三态 活 → 在删 → 没了 的中间一态,律在 `src/session-deletion.ts`):值 = 立了围栏的那一次删除的**令牌**。在 = 一次删除已经在这只会话的写锁里判过
|
|
51
|
+
* 「没有认领、属主是调用方」,还没删完 —— 删除门之外的一切读者与写者读作「行不在」(读者律同 `dropping`),写者撞上它不写(登记 = 已存在;其余写者响亮抛);
|
|
52
|
+
* 只有删除面写它:围栏写、接管换写,终刀的删序随这一格一起删。与 `dropping` 两件事:`dropping` = 这一行的字节正在删(店内删序 s0),`deleting` = 这只会话正被一次删除独占。
|
|
53
|
+
* 缺 = 不在删。
|
|
54
|
+
*/
|
|
55
|
+
readonly deleting?: string;
|
|
56
|
+
/**
|
|
57
|
+
* 客户端写计数(提交出口的撤回判据,`session-birth.ts`;SQL 孪生 `session_ext.client_writes`):客户端可见会话态的四个写者(行格写 / 导入 / 会话规则 / 附件绑定)
|
|
58
|
+
* 在这只会话的写锁里、自己的写之前 +1。**在场即版本位** —— 本版的登记新行臂铸格时写 `0`(「生在计数协议之下」);缺 = 本版之前铸的格(或不经登记铸的格),
|
|
59
|
+
* 撤回对它一律答「留」(`upgrade_pending`)。不需要一次性升级:撤回的候选只可能是本版登记新铸的格(化身比对,`session-birth.ts`),缺这一位的格永远不是候选。
|
|
60
|
+
*/
|
|
61
|
+
readonly clientWrites?: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* 会话元数据边档(`session-incarnations.json`)的一格 —— SQL 孪生 `session_meta` 行在本店的对位(同一行 ⇒ 同一格、同一次落盘):属主 / 化身 / 执行放置 / `fork_key` /
|
|
65
|
+
* 建档时刻 / fork 谱系。**本店读的每一样行事实只住在这里**(规则一,见 {@link LocalSessionStore} 的 `rowMetadataOf` 注):引擎仓里的存档是匿名内容仓,存档头上的属主、
|
|
66
|
+
* 建档时刻、谱系本店都不读。两形:
|
|
67
|
+
* · 对象 `{ incarnation, owner?, execution?, forkKey?, createdAt?, forkedFrom?, forkedFromIncarnation? }` —— `owner` 键在 = 属主**记下了**(`owner: null` = 登记为无主的会话,与 SQL 列上的 NULL 同义);
|
|
68
|
+
* `owner` 键缺 = 属主**从没被记下**(与裸串同义);`execution` 缺 = absent;`forkKey` = 建这一格的那次 fork 请求的键(只由 fork 创建点写);`createdAt` / `forkedFrom` / `forkedFromIncarnation` 见上。
|
|
69
|
+
* · 裸串(只有化身)—— **只读旧形,不再新写**:7.118.x 及更早只往这只边档里写化身(属主那时只活在进程内存里),那些格原样留在盘上;读作「属主从没被记下」、
|
|
70
|
+
* 登记不认领它({@link LocalSessionStore.register} 只补化身;7.119.0–7.147.x 的升级窗内曾由一次性迁移 M10 让带 principal 的登记认领,窗关、认领臂删)。本店补铸 / 只补化身时写对象形 `{ incarnation }`(同义)。
|
|
71
|
+
* **每个写者只改自己那一位**、其余照 `before` 带过({@link cellWith} / {@link cellObjectOf}):执行位的写永不写 `owner` 键 ⇒ 遗留格回填执行位后仍是「未记」(读作无主);
|
|
72
|
+
* 推送 / 换装改属主与执行位,建档时刻与谱系照带。
|
|
73
|
+
* 文件名是 7.104.0 起就在盘上的那一只(当时只装化身)—— 它是持久面,换名要一次搬家迁移,而里面装的仍是同一张「会话元数据」表。
|
|
74
|
+
*/
|
|
75
|
+
type SessionMetaCell = string | SessionMetaCellObject;
|
|
18
76
|
/**
|
|
19
77
|
* 对象形一格的形(本店是它唯一的写者,形属主就在这里):不收别的键 —— 一只不认得某一位的读者(回滚到的上一版)对带着那一位的格整只严格拒,
|
|
20
78
|
* 而不是把它读丢(边档是严格读,见 `SidecarMap.strict`)。
|
|
@@ -38,7 +96,7 @@ export declare const SESSION_META_CELL_OBJECT: z.ZodObject<{
|
|
|
38
96
|
}, z.core.$strict>;
|
|
39
97
|
/**
|
|
40
98
|
* 数据根对账里一只文件的读数(拒句的逐文件一段;{@link LocalDataRootSchemaMismatchError.findings}):严格边档清册里的一只边档,或引擎版本高水位 marker
|
|
41
|
-
* (`local-engine-high-water.ts`),或跳过了必经一次性迁移的会话存档目录({@link
|
|
99
|
+
* (`local-engine-high-water.ts`),或跳过了必经一次性迁移的会话存档目录({@link judgeArchiveTokenAdoptionDuty})。**判别联合**,判别位 `problem`:
|
|
42
100
|
* `"newer-engine"` ⇒ {@link LocalDataRootNewerEngine}(必带 `engineHighWater`);`"skipped-required-migration"` ⇒ {@link LocalDataRootSkippedMigration}(必带 `skippedMigration`);
|
|
43
101
|
* 别的每一个词 ⇒ {@link LocalDataRootUnreadable}(两样都没有)—— 载荷跟着判别位走,由类型保证,不靠运行时约定。
|
|
44
102
|
*/
|
|
@@ -73,34 +131,44 @@ export interface LocalDataRootNewerEngine {
|
|
|
73
131
|
};
|
|
74
132
|
}
|
|
75
133
|
/**
|
|
76
|
-
* 数据根跳过了一条**必经**的一次性迁移(本构建已不带它),而根里还留着那条迁移要处理的形
|
|
77
|
-
* {@link
|
|
78
|
-
*
|
|
134
|
+
* 数据根跳过了一条**必经**的一次性迁移(本构建已不带它),而根里还留着那条迁移要处理的形 —— 哪一形由 `skippedMigration.residue` 说(判别联合,闭集):
|
|
135
|
+
* · `archives-without-cell` —— 会话存档在、会话元数据格缺:存档头上的住客令牌没被收进行({@link judgeArchiveTokenAdoptionDuty})。两种来历由两格推出(不另带位):
|
|
136
|
+
* `highWater` 为 `null` 或早于 `requiredSince` ⇒ 带那条迁移的版本从没打开过这只根;不早于 ⇒ 带它的版本打开过、没收完(收令牌欠账标记还在);
|
|
137
|
+
* · `pre-cutoff-skill-exemptions` —— 会话豁免日志里有首次放行早于 `Skill` 豁免截点(或截点缺席)的 `Skill` 行(`approval-exemption-skill-cutoff.ts`,数据根准入判);
|
|
138
|
+
* `cutoff` = 截点(`null` = 根里没有截点文件:落截点的版本从没完整打开过这只根)。
|
|
139
|
+
* 出路一律要一个**不低于 `requiredSince` 与 `highWater` 两者**、仍带那条迁移的版本完整起一次(更低的会被高水位拒在门外)。
|
|
79
140
|
*/
|
|
80
141
|
export interface LocalDataRootSkippedMigration {
|
|
81
|
-
/** 那一形住的目录(会话存档目录)的绝对路径。 */
|
|
142
|
+
/** 那一形住的目录(会话存档目录 / 会话豁免日志目录)的绝对路径。 */
|
|
82
143
|
readonly path: string;
|
|
83
|
-
/** 角色(`sessions (the local session archives)`)。 */
|
|
144
|
+
/** 角色(`sessions (the local session archives)` / `approval-exemptions (the local session approval exemptions)`)。 */
|
|
84
145
|
readonly label: string;
|
|
85
146
|
readonly problem: "skipped-required-migration";
|
|
86
147
|
readonly unknownFields: readonly [];
|
|
87
148
|
/**
|
|
88
149
|
* `highWater` = 这只根记的引擎高水位(纯 `x.y.z`;`null` = 没有 marker:只被不记高水位的引擎打开过 —— 7.148.0 之前的 run-local、7.144.0 之前的服务);
|
|
89
150
|
* `requiredSince` = 那条迁移的引入版本(根必须被它或更新、且仍带它的版本完整起过一次);`sessions` = 那一形的会话数。
|
|
90
|
-
* `highWater` 不早于 `requiredSince` ⇒ 「打开过、没收完」那一支(见类型头注;出路版本不低于 `highWater`)。
|
|
91
151
|
*/
|
|
92
152
|
readonly skippedMigration: {
|
|
153
|
+
readonly residue: "archives-without-cell";
|
|
93
154
|
readonly highWater: string | null;
|
|
94
155
|
readonly requiredSince: string;
|
|
95
156
|
readonly sessions: number;
|
|
157
|
+
} | {
|
|
158
|
+
readonly residue: "pre-cutoff-skill-exemptions";
|
|
159
|
+
readonly highWater: string | null;
|
|
160
|
+
readonly requiredSince: string;
|
|
161
|
+
readonly sessions: number;
|
|
162
|
+
readonly cutoff: string | null;
|
|
96
163
|
};
|
|
97
164
|
}
|
|
98
165
|
/**
|
|
99
166
|
* **local 数据根的「本构建读不出」拒**(起服对账一族的 local 腿;机读码与 SQL 列册对账同一个 `config.schema_mismatch`,拒句同形)。
|
|
100
167
|
* 一只严格边档用它那一只严格读者读不出 ⇒ 这一只拒,文件原地不动、一个字节不改。两处触发、一只类:
|
|
101
|
-
* · `boot` ——
|
|
102
|
-
* (`local-engine-high-water.ts`,读数种别 `newer-engine` 或读不出的那几种;同一判词「数据根比代码新」的第二种证据
|
|
103
|
-
*
|
|
168
|
+
* · `boot` —— **只由数据根准入铸**(`local-data-root-admission.ts` 的 `admitLocalDataRoot`:只读,本进程对这只根第一笔写之前 ⇒ 拒句说「数据根一个字节没动」处处成立):
|
|
169
|
+
* 引擎版本高水位 marker 读不出 / 高于本构建(`local-engine-high-water.ts`,读数种别 `newer-engine` 或读不出的那几种;同一判词「数据根比代码新」的第二种证据)、
|
|
170
|
+
* 严格边档清册读不出的每一只合成一只({@link judgeStrictSidecars})、跳版拒启臂({@link judgeArchiveTokenAdoptionDuty},读数种别 `skipped-required-migration`);
|
|
171
|
+
* 公开序列上由 `ensureSchema()` 交出(`createStoreBackend()` 的 local 腿当场取准入,拒 ⇒ 交回一只没取锁的拒后端);
|
|
104
172
|
* · `serving` —— 起服之后这只边档第一次被碰时才读不出(嵌入方跳过了 `ensureSchema()`;或起服后别的写者把它写成本构建读不出的形,在替换之前那一读里看见):
|
|
105
173
|
* 读不出的是**形**(`not-json` / `malformed`,确定的判词)⇒ 这只边档在本进程里从此每一读每一写都交这一只(重启才重判);碰它的请求失败(把它交给 HTTP 全局兜底的路由:
|
|
106
174
|
* 500 `internal.error` + 一行 error 级 `request_error` 带本码;自己接住故障的路由按各自的 500 臂答)。I/O 故障(非确定)不粘。
|
|
@@ -118,33 +186,56 @@ export declare class LocalDataRootSchemaMismatchError extends StoreBootRefusalEr
|
|
|
118
186
|
* 登记表 M47 行的 `introducedIn` 与它逐字相同(`test/local-root-one-row-store.test.ts` 钉);M47 删码之后行不在了,臂照读这里。
|
|
119
187
|
*/
|
|
120
188
|
export declare const ARCHIVE_TOKEN_ADOPTION_SINCE = "7.148.0";
|
|
121
|
-
/** 本构建带不带那条迁移:登记表里有没有 M47 行(行随码同删 —— 删码那一版起臂恒判、窗内补铸只新铸)。 */
|
|
122
|
-
export declare function archiveTokenAdoptionCarried(): boolean;
|
|
123
189
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* 存档 = 存档目录 `<root>/sessions/` 里的 `<id>.jsonl`(引擎文件仓的命名 —— 本店的存档目录屏障 `syncArchiveDirectory` 读同一个目录名);格 = 会话元数据边档的键(活格与标记格都算有格)。
|
|
127
|
-
* **只会多、不会少**:委派分区的 placed 存档、会话头读不出的存档也算(它们不在列表面上,一次性迁移 M47 不收它们)—— 臂因此在少数根上多拒一次,出路相同、零写;证明按迁移的范围把这两类剔掉。
|
|
128
|
-
* 边档读不出 ⇒ {@link LocalDataRootSchemaMismatchError}(`boot`;与起服严格对账同一判、同一拒);存档目录不在 ⇒ 空;目录读故障原样抛(判不了 ⇒ 不放行)。
|
|
190
|
+
* 欠账标记在不在(`lstat`:目录里有这一项就算在 —— 悬空符号链接也是在;`ENOENT` = 不在;别的故障原样抛 = 判不了 ⇒ 调用方不放行)。只读在场,不读内容。
|
|
191
|
+
* 读者两位:常驻臂({@link judgeArchiveTokenAdoptionDuty},不带迁移的构建)与迁移的尾部(`LocalSessionStore.adoptArchiveTokensM47`:在 ⇒ 这一次起服是欠账起服)。
|
|
129
192
|
*/
|
|
130
|
-
export declare function
|
|
193
|
+
export declare function archiveTokenAdoptionPendingPresent(root: string): boolean;
|
|
194
|
+
/** 数据根存档目录里的会话 id(同步一读,只读目录项、不读存档):存档目录不在 ⇒ 空;目录读故障原样抛(判不了 ⇒ 不放行)。三位读者读同一只布局:记账、常驻臂与收令牌的证明。 */
|
|
195
|
+
export declare function archiveIdsInSync(root: string): string[];
|
|
196
|
+
/** 严格边档的同步一读的读数(数据根准入与 M47 收尾证明共用;读不出 ⇒ 一段读数,由调用方决定拒形)。 */
|
|
197
|
+
type StrictSidecarReading<V> = {
|
|
198
|
+
readonly state: "absent";
|
|
199
|
+
} | {
|
|
200
|
+
readonly state: "read";
|
|
201
|
+
readonly entries: Record<string, V>;
|
|
202
|
+
} | {
|
|
203
|
+
readonly state: "unreadable";
|
|
204
|
+
readonly finding: LocalDataRootMismatch;
|
|
205
|
+
};
|
|
206
|
+
/** 严格边档清册的字节(按清册次序;同步一读,零写)—— 数据根准入的观察读它,锁内的「没动」核对读同一只。 */
|
|
207
|
+
export declare function readStrictSidecarTextsSync(root: string): readonly DataRootFileText[];
|
|
208
|
+
/** 会话元数据边档的严格同步一读(清册里那一只;在窗的 M40 改名在内存里先套)—— M47 收尾的证明读盘上此刻那一份。 */
|
|
209
|
+
export declare function readSessionMetaCellsSync(root: string): StrictSidecarReading<SessionMetaCell>;
|
|
131
210
|
/**
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
211
|
+
* **数据根准入的严格边档一格**(纯;唯一调用点 = `local-data-root-admission.ts` 的 `admitLocalDataRoot`,判的是准入那一次观察里的字节 `texts`,按清册次序):
|
|
212
|
+
* 读不出的合成**一只** {@link LocalDataRootSchemaMismatchError}(`boot` 形,逐文件一段)⇒ 拒。缺席 = 还没有,不是读不出(交空表)。
|
|
213
|
+
* 7.148.0 及以前这一问在 `LocalBackend.ensureSchema()` 里(店构造、抬高水位、M40 写之后);搬到准入里,被拒的起服才真的零写。
|
|
214
|
+
* 交回会话元数据的格(准入的跳版臂按它数「存档在而格缺」)。
|
|
215
|
+
*/
|
|
216
|
+
export declare function judgeStrictSidecars(root: string, texts: readonly DataRootFileText[]): Readonly<Record<string, SessionMetaCell>>;
|
|
217
|
+
/** 跳版臂的动作(准入算、锁内做):`record` = 带 M47 的构建要在抬之前记欠账;`discharge` = 欠账标记在而无事可收,抬之前销账;`none` = 不写。 */
|
|
218
|
+
export type ArchiveTokenAdoptionDutyAction = "none" | "record" | "discharge";
|
|
219
|
+
/**
|
|
220
|
+
* **判收令牌欠账**(纯,无窗;唯一调用点 = 数据根准入 `admitLocalDataRoot`,判的是准入那一次观察里的存档 id、欠账标记在不在与会话元数据的格)。
|
|
221
|
+
* 两件事、两只事实:「谁可能写过这只根」归引擎高水位(本函数只读它的读数);「这只根还欠不欠那条迁移」归欠账标记({@link ARCHIVE_TOKEN_ADOPTION_PENDING_FILE})。
|
|
222
|
+
* 「欠账开着吗」只在这一处判 —— 带迁移的构建算出要记、不带迁移的构建拒:
|
|
223
|
+
* · **带迁移**(`adoptionCarried` = 登记表 `migrationCarried("M47")`:行随码同删 —— 删码那一版起臂恒判)⇒ 打开之前的高水位早于 {@link ARCHIVE_TOKEN_ADOPTION_SINCE} 或缺席(带那条迁移的版本从没打开过这只根)
|
|
224
|
+
* ∧ 存档目录里至少一只存档 ⇒ `record`(锁内、抬之前由 {@link settleArchiveTokenAdoptionDuty} 原子写欠账标记)。只读目录、不读会话元数据边档(那一读归准入的严格边档一格)。
|
|
225
|
+
* 销账在迁移的尾部:`required` 提交 → 用常驻臂的同一只读法证明收齐 → 删标记(任何一步失败标记留着)。
|
|
226
|
+
* · **不带迁移** ⇒ **常驻臂**:(① 打开之前的高水位早于引入版本或缺席 ∨ ② 欠账标记在)∧ 根里有存档在而格缺的会话(`cells` = 准入那一读的会话元数据格)⇒
|
|
140
227
|
* {@link LocalDataRootSchemaMismatchError}(`boot`,读数种别 `skipped-required-migration`;② 那一支的拒句点名「打开过它的那一版带这条迁移但没收完」与「不低于已记高水位」的出路)。
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
* 而出路要的「不低于已记高水位、仍带那条迁移」的版本不存在。
|
|
145
|
-
* 判拒零写(本仓):记账在本模块的判(高水位读不出 / 高于本构建)之后;不带迁移的构建拒时一个字节不写,放行时只可能删一只已清的欠账标记。
|
|
228
|
+
* 拒在准入里 ⇒ 数据根零写、高水位不抬 ⇒ 拒句点名的那一版(带那条迁移、不比已记高水位旧)仍开得了这只根。① ② 都假 ⇒ 带那条迁移的版本收齐过这只根,此后的无格存档只可能是
|
|
229
|
+
* 建档与写格之间的崩溃留下的(头令牌从没交出过,补铸无害)。标记在而无格存档为零(收齐之后、销账之前停了)⇒ `discharge`(锁内、抬之前删):留着它,高水位抬过窗内版本之后
|
|
230
|
+
* 一只崩溃生的无格存档就让这只根被拒,而出路要的「不低于已记高水位、仍带那条迁移」的版本不存在。
|
|
146
231
|
*/
|
|
147
|
-
export declare function
|
|
232
|
+
export declare function judgeArchiveTokenAdoptionDuty(root: string, priorHighWater: ReleaseTriple | undefined, adoptionCarried: boolean, observed: {
|
|
233
|
+
readonly cells: Readonly<Record<string, unknown>>;
|
|
234
|
+
readonly archiveIds: readonly string[];
|
|
235
|
+
readonly adoptionPending: boolean;
|
|
236
|
+
}): ArchiveTokenAdoptionDutyAction;
|
|
237
|
+
/** **做收令牌欠账的动作**(锁内;准入的读数核过之后、抬高水位之前;唯一调用点 = 数据根准入的锁内一步)。`record` 写不进 ⇒ 抛(抬之前拒)。 */
|
|
238
|
+
export declare function settleArchiveTokenAdoptionDuty(physicalRoot: string, priorHighWater: ReleaseTriple | undefined, action: ArchiveTokenAdoptionDutyAction): void;
|
|
148
239
|
/** 数据根对账文件的一读的读数(两个出口同形)。 */
|
|
149
240
|
export type DataRootFileText = {
|
|
150
241
|
readonly state: "absent";
|
|
@@ -316,11 +407,6 @@ export declare class LocalSessionStore implements SessionStore, SessionRootRows
|
|
|
316
407
|
* 盘上有会话而边档里没有它那一格 ⇒ 第一次读补铸一格只有化身的(属主没有事实可写)并落盘。严格读(读不出 ⇒ 整只拒,见 `SidecarMap.strict`)。
|
|
317
408
|
*/
|
|
318
409
|
private readonly meta;
|
|
319
|
-
/**
|
|
320
|
-
* [ref] —— 本店的**严格边档清册**(今天一只:会话元数据)。唯一来源 = 构造里 `sidecar(…, strict)` 那一参:工厂造出严格读的边档时同一手登进来,
|
|
321
|
-
* 没有第二张手写名单。读者只有起服对账 {@link assertStrictSidecarsReadable}。
|
|
322
|
-
*/
|
|
323
|
-
private readonly strictSidecars;
|
|
324
410
|
/** 本店运维日志行(存档收尾未完成 `session_drop_unfinished`、令牌收养跳过 `archive_token_adoption_skipped`)的出口。 */
|
|
325
411
|
private readonly log;
|
|
326
412
|
/**
|
|
@@ -364,7 +450,7 @@ export declare class LocalSessionStore implements SessionStore, SessionRootRows
|
|
|
364
450
|
} & LocalSessionStoreDeclaration & LocalSessionWithdrawDeclaration);
|
|
365
451
|
/**
|
|
366
452
|
* 🔴 一次性迁移 **M40 的 local 会话腿**(窗口见 `plugins/one-time-migrations.ts` 登记表 M40 行;唯一调用点 `LocalBackend.ensureSchema()` 的**第一步**,
|
|
367
|
-
*
|
|
453
|
+
* 先于任何读会话元数据的店步骤 —— 严格读的执行位只认本版车道词;数据根准入的那一读在内存里先套同一只内核 {@link renameRetiredExecutionLaneWordsInCellsM40},零写):会话元数据边档里 `execution` 位记成退役词的
|
|
368
454
|
* writer 格改记新名,整只原子重写一次。只改那一个词,别的字节按 JSON 原样写回。字节经边档的唯一一读({@link readDataRootFileText})。
|
|
369
455
|
* 缺文件 / 读不出(I/O 故障如 EACCES / EISDIR、坏 JSON、不是对象)⇒ 不抛、不改,交给其后的严格对账判 —— 它读同一只文件、以 `config.schema_mismatch`
|
|
370
456
|
* 拒(那是这只拒码在本店的唯一铸点);这里抛了,拒码与具名拒都会丢。读得出而写不进 ⇒ {@link ExecutionLaneRenameWriteRefusedError}(拒启,降级臂不吞)。
|
|
@@ -373,12 +459,6 @@ export declare class LocalSessionStore implements SessionStore, SessionRootRows
|
|
|
373
459
|
/** 一次性迁移 **M42 的 local 腿**(场景前缀的切换检查;窗口见 `plugins/one-time-migrations.ts` 登记表):会话元数据格里属主以保留前缀开头的会话数(严格边档那一读,零写)。 */
|
|
374
460
|
scenarioPrefixOwnerRowsM42(): Promise<number>;
|
|
375
461
|
renameRetiredExecutionLaneWordM40(): Promise<number>;
|
|
376
|
-
/**
|
|
377
|
-
* [ref] —— **起服对账的 local 腿**(SQL 列册对账的对位;唯一调用点 `LocalBackend.ensureSchema()`,排在 M33 快照消化之前 —— 消化会写会话元数据格):
|
|
378
|
-
* 严格边档清册里的每一只读一次盘(`SidecarMap.reconcile`:冷 ⇒ 载入那一读;已载入 ⇒ 重读只判);读不出的合成**一只** {@link LocalDataRootSchemaMismatchError}
|
|
379
|
-
* (`boot` 形,逐文件一段)⇒ 拒启,开始服务之前。每一只只会以那一只拒失败(严格读的拒臂把读不出的每一形都收成它);别的故障原样上抛(响亮,不归并)。内存部署(没有数据根)⇒ 零读。
|
|
380
|
-
*/
|
|
381
|
-
assertStrictSidecarsReadable(): Promise<void>;
|
|
382
462
|
/**
|
|
383
463
|
* 这一格此刻是不是 `forking`(fork 创建的格 {@link isForkCreatedCell} ∧ 存档不在)。存档在不在只问 repo 的唯一探针 {@link probeArchive} 的「不在」—— **只问有没有**:存档在而用不了(会话头读不出 / 截断)
|
|
384
464
|
* 是「在」,内容读不读得出归真正读内容的那一读(门之后、体之前读一次叶子,读不出 ⇒ `corrupt_session`)。所以带键的会话与不带键的会话在执行席上同形,坏档照样能被换装修好
|
|
@@ -531,7 +611,7 @@ export declare class LocalSessionStore implements SessionStore, SessionRootRows
|
|
|
531
611
|
*/
|
|
532
612
|
headOf(sessionId: string): Promise<SessionHead | undefined>;
|
|
533
613
|
/**
|
|
534
|
-
*
|
|
614
|
+
* **「被占着」的头读**(`OwnerAwareSessionStore.deletionHeadOf`;读者:`DELETE /v1/sessions/:id` 的属主门 · 认领面 · 同步推送三口的门 —— 都问「这个 id 被占着吗」,经 `session-incarnation.ts` 的 `deletionHeadReadOf` 一只取法):活行 ⇒ 与 {@link headOf} 同答;
|
|
535
615
|
* 在删格(一次删除独占着它)与标记格(删序停在 s0 之后)⇒ 那一格上的属主与住客(叶子 `null`:内容已在删)—— 开始删它的那位属主重发删除(= 接管)就收得完。
|
|
536
616
|
* 别的读者一律读作不在(读者律);门对别的属主答「不在」的同一句,所以不可探测。SQL 孪生同交这一口(座的原始头读)。
|
|
537
617
|
*/
|
|
@@ -1064,9 +1144,14 @@ export declare class LocalSessionStore implements SessionStore, SessionRootRows
|
|
|
1064
1144
|
/**
|
|
1065
1145
|
* 一次性迁移 **M48 的 local 腿**(会话行半场;窗、删法与删后谁接住:窗口见 `plugins/one-time-migrations.ts` 登记表):属主恰为 cli 哨兵(`shell-sentinel-owner-m48.ts`)的
|
|
1066
1146
|
* 会话元数据格改写成无主(`owner: null`),一次边档提交(落不了盘 ⇒ 响亮抛,不当已改)。带「删除中」位的格不碰(删序正在收它)。起服时调(`LocalBackend.runOneTimeMigrations`,
|
|
1067
|
-
* 任何读者之前);数据根独占 ⇒ 没有混跑窗。幂等:写后不再有哨兵值 ⇒
|
|
1147
|
+
* 任何读者之前);数据根独占 ⇒ 没有混跑窗。幂等:写后不再有哨兵值 ⇒ 第二跑零命中、不落盘。命中的格由 {@link shellSentinelCellIdsM48} 说(与 {@link countShellSentinelOwnersM48} 同一只)。
|
|
1068
1148
|
*/
|
|
1069
1149
|
clearShellSentinelOwnersM48(): Promise<number>;
|
|
1150
|
+
/**
|
|
1151
|
+
* 一次性迁移 **M48 的 local 腿**(有身份边界的部署:只数不写;窗、删法与删后谁接住:窗口见 `plugins/one-time-migrations.ts` 登记表):属主恰为 cli 哨兵的会话元数据格数 ——
|
|
1152
|
+
* 命中判据与 {@link clearShellSentinelOwnersM48} 是同一只函数({@link shellSentinelCellIdsM48}),在写链上读同一份草稿(`change` 答 `false` ⇒ 不写、不重证)。
|
|
1153
|
+
*/
|
|
1154
|
+
countShellSentinelOwnersM48(): Promise<number>;
|
|
1070
1155
|
/**
|
|
1071
1156
|
* 一次性迁移 M47 的 local 腿(`LocalBackend.ensureSchema` 调,紧随快照消化、先于整段 `runOneTimeMigrations` —— 迁移段里任何一步拒启也不再挡在它前面;起服、先于任何请求;窗内每次起服都跑,第二次起零命中):
|
|
1072
1157
|
* 列表面行集({@link rowHeaders})里每一只**存档头读得出、会话元数据格缺**的会话 —— 主要来源是 7.148.0 之前的 run-local(它经引擎的文件仓直接建档、续跑,从不写格),
|
|
@@ -1075,9 +1160,9 @@ export declare class LocalSessionStore implements SessionStore, SessionRootRows
|
|
|
1075
1160
|
* 为什么取头令牌:格缺 ⇒ 没有竞争的令牌;存档头那只是唯一交给过消费者的值 —— 7.148.0 之前 run-local 的记忆引擎按它落记录(采集 opt-out、污染标记),收进行之后两条入口照样绑;
|
|
1076
1161
|
* 崩溃生的无格存档,头令牌从没交出过(交出在写格之后,{@link handOut}),取它也无害。本条是那条规则的急切版(窗内按 id 打开 / 登记 / 回填走同一只函数)。
|
|
1077
1162
|
*
|
|
1078
|
-
* **欠账起服**(数据根里有收令牌欠账标记 ——
|
|
1163
|
+
* **欠账起服**(数据根里有收令牌欠账标记 —— 带本条的构建打开这只根时它还欠,数据根准入算出、锁内在抬高水位之前由 `settleArchiveTokenAdoptionDuty` 记下的)多两步,收齐才**销账**:
|
|
1079
1164
|
* 1. 边档提交用 `required`(有改动 ⇒ 写并证目录项;零改动 ⇒ 重证盘上那一份 —— 上一次可能正停在「落了、没证」;证不了 ⇒ 拒);
|
|
1080
|
-
* 2. **证明收齐**({@link assertArchiveTokensAdoptedM47}):用常驻臂自己那一只读法(
|
|
1165
|
+
* 2. **证明收齐**({@link assertArchiveTokensAdoptedM47}):用常驻臂自己那一只读法(失败即抛的目录读 + 盘上的严格边档读 {@link readSessionMetaCellsSync})再读一遍,
|
|
1081
1166
|
* 剩下的无格存档必须都在本条的收取范围之外(placed、存档头读不出)—— 引擎的列表在目录读失败时降级为空列表(列表面的成文降级),本条读到空列表会「什么都没收」,
|
|
1082
1167
|
* 证明把它变成拒,在 M33 与任何请求之前;
|
|
1083
1168
|
* 3. 删标记(落盘)。任何一步失败 ⇒ 拒启、标记留着,下一次窗内起服重来;窗关之后的构建见标记 ∧ 无格存档 ⇒ 拒(出路 = 不低于已记高水位、仍带本条的版本起一次)。
|
|
@@ -1085,7 +1170,7 @@ export declare class LocalSessionStore implements SessionStore, SessionRootRows
|
|
|
1085
1170
|
*/
|
|
1086
1171
|
adoptArchiveTokensM47(): Promise<LocalArchiveTokenAdoption>;
|
|
1087
1172
|
/**
|
|
1088
|
-
* M47 欠账起服的**证明**(销账之前;拒 ⇒ 标记留着):盘上「存档在而格缺」的每一只(常驻臂的同一只读法 {@link
|
|
1173
|
+
* M47 欠账起服的**证明**(销账之前;拒 ⇒ 标记留着):盘上「存档在而格缺」的每一只(常驻臂的同一只读法 {@link readSessionMetaCellsSync} + 存档目录读:目录读失败即抛)都必须在本条的收取范围之外
|
|
1089
1174
|
* ({@link adoptionScopeOf});范围之内还剩 ⇒ `SessionError("storage")`(只点名只数)。
|
|
1090
1175
|
*/
|
|
1091
1176
|
private assertArchiveTokensAdoptedM47;
|