From 460d1b675b5c8151bbd43597265cfaed1600cf9d Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Sun, 4 Oct 2026 19:28:55 +0800 Subject: [PATCH 1/4] feat(goals): opt in to canonical creation with frozen execution policy Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- .../capability-localization.ts | 12 +- .../machine-configuration-settings.tsx | 8 +- loopx/bootstrap.py | 35 ++++-- loopx/capabilities/configuration_ui.py | 9 +- .../machine_configuration/goal_storage.py | 44 +++++-- loopx/chat_actions.py | 2 +- .../coordination_state_contract.generated.ts | 2 + .../coordination_state_contract_generated.py | 2 + .../coordination_state_contract_v0.json | 1 + .../coordination/legacy_writer_fence.ts | 37 ++++++ .../coordination/local_authority_defaults.ts | 23 +++- .../coordination/new_goal_initialization.ts | 100 ++++++++++++++++ .../project_registry_io_manifest_v1.json | 4 +- .../generate_coordination_state_contract.py | 2 + .../test_new_goal_storage_defaults.py | 67 +++++++++-- .../new_goal_initialization.test.ts | 111 ++++++++++++++++++ 16 files changed, 419 insertions(+), 40 deletions(-) create mode 100644 loopx/control_plane/coordination/new_goal_initialization.ts create mode 100644 tests/control_plane_ts/new_goal_initialization.test.ts diff --git a/apps/presentation/dashboard/src/features/personal-workspace/capability-localization.ts b/apps/presentation/dashboard/src/features/personal-workspace/capability-localization.ts index 0756239373..005a9afcad 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/capability-localization.ts +++ b/apps/presentation/dashboard/src/features/personal-workspace/capability-localization.ts @@ -12,7 +12,7 @@ type FieldCopy = Record> = { en: { - goal_storage: { displayName: "New Goal storage target", description: "Fixed at creation and used after reviewed promotion. Existing Goals require a separate backed-up migration." }, + goal_storage: { displayName: "New Goal authority", description: "Opt in to canonical creation and choose the storage and execution policy for future Goals. Existing Goals require a separate backed-up migration." }, manager_runtime: { displayName: "Runtime", description: "Selects the persistent host-tool profile used by owner manager conversations.", @@ -78,7 +78,7 @@ const capabilityCopy: Record> = { }, }, "zh-CN": { - goal_storage: { displayName: "新 Goal 的目标存储", description: "创建时固定,审核晋升后生效。已有 Goal 需要单独备份、迁移;更改这里不会迁移数据。" }, + goal_storage: { displayName: "新 Goal 的权威存储", description: "可启用 canonical 创建,选择之后新 Goal 的存储与执行策略。已有 Goal 仍需单独备份、迁移。" }, manager_runtime: { displayName: "运行环境", description: "选择管家会话持续生效的宿主工具模式。", @@ -147,7 +147,9 @@ const capabilityCopy: Record> = { const fieldCopy: Record = { en: { - new_goal_provider: { label: "New Goal storage target (after promotion)", description: "File or SQLite; this setting does not perform promotion or migration." }, + new_goal_provider: { label: "New Goal storage provider", description: "File or SQLite; frozen at creation, independently of execution policy." }, + canonical_creation: { label: "Create canonical authority", description: "Future Goals only. Disabled retains the post-promotion target; failures require the original creation retry." }, + new_goal_handoff_mode: { label: "New Goal execution policy", description: "soft_claim or hard_lease, used with canonical creation. Agents inherit the Goal policy; tool authority is unchanged." }, runtime_profile: { label: "Runtime profile", description: "Restricted keeps scoped LoopX reads only. Trusted owner enables normal host tools while protected operations retain separate checks." }, selection_policy: { label: "Selection policy", description: "Preferred allows an explicit user choice; pinned rejects another executor; flexible permits fallback only inside the eligible pool." }, executor_endpoint: { label: "Primary steward executor", description: "The preferred or pinned executor for this machine. In a flexible pool it is tried first when available." }, @@ -174,7 +176,9 @@ const fieldCopy: Record = { enabled_agents: { label: "Enabled Goal Agents", description: "Enter one registered Goal-local Agent id per line. A private binding currently accepts exactly one Agent." }, }, "zh-CN": { - new_goal_provider: { label: "新 Goal 的目标存储(晋升后生效)", description: "选择 File 或 SQLite;保存设置不会自动晋升,也不会迁移已有 Goal。" }, + new_goal_provider: { label: "新 Goal 的存储 provider", description: "选择 File 或 SQLite;创建时固定,与执行策略分别选择。" }, + canonical_creation: { label: "建立 canonical 权威存储", description: "仅影响此后新建的 Goal。关闭时仅固定晋升后的目标;失败须重试原创建操作。" }, + new_goal_handoff_mode: { label: "新 Goal 的执行策略", description: "canonical 创建使用 soft_claim 或 hard_lease。Agent 继承 Goal 策略;不授予工具权限。" }, runtime_profile: { label: "运行模式", description: "restricted 仅使用受限 LoopX 读取;trusted_owner 开放常规宿主工具,但受保护操作仍单独校验。" }, selection_policy: { label: "选择策略", description: "preferred 允许用户显式改选;pinned 拒绝其他执行器;flexible 只在已授权资源池内回退。" }, executor_endpoint: { label: "首选管家执行器", description: "本机首选或锁定的执行器;灵活池模式下优先尝试它。" }, diff --git a/apps/presentation/dashboard/src/features/personal-workspace/machine-configuration-settings.tsx b/apps/presentation/dashboard/src/features/personal-workspace/machine-configuration-settings.tsx index 7a2f06b44b..a42c44b650 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/machine-configuration-settings.tsx +++ b/apps/presentation/dashboard/src/features/personal-workspace/machine-configuration-settings.tsx @@ -54,8 +54,8 @@ function completeMachineConfiguration( // The guided steward editor owns the v1 selection-policy fields. Opening an // installed v0 preference in that form is an explicit migration preview; // JSON mode can still submit the legacy shape unchanged when needed. - if (capability.capability_id === "steward_executor" - && (Object.hasOwn(draft, "selection_policy") || Object.hasOwn(draft, "eligible_endpoints"))) { + if (capability.capability_id === "goal_storage" || (capability.capability_id === "steward_executor" + && (Object.hasOwn(draft, "selection_policy") || Object.hasOwn(draft, "eligible_endpoints")))) { complete.schema_version = configurationObject(capability.default).schema_version; } return complete; @@ -373,8 +373,8 @@ export function MachineConfigurationSettings({ section, onChanged }: { section:
{locale === "zh-CN" ? "仅影响此后创建的 Goal" : "Future Goals only"}

{locale === "zh-CN" - ? "创建时固定选择,审核晋升后生效。已有 Goal 不变;迁移需单独备份、停止写入并结算租约。" - : "Fixed at creation and used after reviewed promotion. Existing Goals are unchanged; migration requires a separate backup, stopped writers and settled leases."}

+ ? "启用 canonical 创建后,新 Goal 直接建立权威存储,并采用所选执行策略;失败时须重试原创建操作。关闭时仅固定晋升后的目标存储。已有 Goal 的升级仍需备份、停止写入和结算租约;这里不授予工具权限。" + : "With canonical creation enabled, new Goals establish authority with the selected execution policy; retry the original operation after failure. Disabled only freezes the post-promotion target. Existing Goals still require backup, stopped writers and settled leases for upgrade; this setting grants no tool permissions."}

) : null} diff --git a/loopx/bootstrap.py b/loopx/bootstrap.py index 628fea0a52..9b154dcca1 100644 --- a/loopx/bootstrap.py +++ b/loopx/bootstrap.py @@ -1,11 +1,13 @@ from __future__ import annotations import re +from uuid import uuid4 from pathlib import Path from .capabilities.machine_configuration.goal_storage import new_goal_storage_target, initialize_goal_storage_target from .registry import find_registry_goal from .control_plane.coordination.legacy_writer_fence import legacy_todo_write_transaction, require_legacy_state_replacement_allowed +from .control_plane.coordination.legacy_writer_fence import require_registry_source_write_allowed from .control_plane.coordination.runtime_shadow_writer_adapter import require_runtime_shadow_capture_prepared, begin_todo_runtime_shadow_capture, settle_todo_runtime_shadow_capture from .control_plane.projects.registry_codec import ( load_project_registry, @@ -395,6 +397,9 @@ def bootstrap_project( storage_target = new_goal_storage_target(runtime_root) if storage_target is not None: goal_entry.setdefault("coordination", {})["storage_target"] = storage_target + canonical_creation = (storage_target or {}).get("schema_version") == "loopx_new_goal_storage_target_v1" + if canonical_creation: + goal_entry["creation_operation_id"] = creation_operation_id or (previous_goal or {}).get("creation_operation_id") or f"goal-create:{uuid4().hex}" registry, registry_goal_action = merge_goal(registry, goal_entry, force=force) state_exists = state_file.exists() @@ -524,12 +529,13 @@ def bootstrap_project( shadow_capture = None shadow_evidence: dict[str, Any] = {} if not dry_run: + canonical_bootstrap_transport = canonical_creation with project_registry_transaction( registry_path, operation="bootstrap_registry", create=dict, ) as registry_transaction, legacy_todo_write_transaction( - registry_path, goal_id, state_file, None, "bootstrap_state", False, + registry_path, goal_id, state_file, None, "bootstrap_state", canonical_creation, runtime_root=runtime_root, ): current_registry = registry_transaction.payload_copy() @@ -544,6 +550,10 @@ def bootstrap_project( goal_entry.setdefault("coordination", {}).pop("storage_target", None) if frozen is not None: goal_entry["coordination"]["storage_target"] = frozen + frozen_target = goal_entry.get("coordination", {}).get("storage_target") or {} + canonical_creation = frozen_target.get("schema_version") == "loopx_new_goal_storage_target_v1" + if canonical_creation and force and state_file.exists(): + raise ValueError("Canonical creation cannot rebuild existing state; restore or migrate through its owning operation") # A first explicit bootstrap has no previous Goal authority to fence. # Existing Goals still resolve and authorize their original route. @@ -561,7 +571,7 @@ def bootstrap_project( state_action = ("kept-existing-preserve-todos" if force and preserve_todos else "kept-existing") if state_file.exists() and (not force or preserve_todos) else "replaced" if state_file.exists() else "created" planned = original if state_action in {"created", "replaced"}: - declared_handoff_mode = goal_handoff_mode(original) if original and force else HANDOFF_MODE_LEGACY + declared_handoff_mode = goal_handoff_mode(original) if original and force else frozen_target.get("handoff_mode", HANDOFF_MODE_LEGACY) planned = render_state_markdown( project=project, goal_id=goal_id, @@ -572,16 +582,21 @@ def bootstrap_project( execution_profile=execution_profile, handoff_mode=declared_handoff_mode, ) - else: + elif not canonical_creation: planned, repaired_todo_source_roles = repair_missing_todo_source_sections(original) if planned != original: - shadow_capture = begin_todo_runtime_shadow_capture(registry_path=registry_path, - runtime_root=runtime_root, goal_id=goal_id, state_path=state_file, - write_class="bootstrap_state", original_text=original) - shadow_capture.prepare(planned) - require_runtime_shadow_capture_prepared(shadow_capture, runtime_root=runtime_root, goal_id=goal_id) + if canonical_bootstrap_transport: + require_registry_source_write_allowed(registry_path=registry_path, runtime_root=runtime_root, + goal_id=goal_id, state_file=state_file) + if not canonical_creation: + shadow_capture = begin_todo_runtime_shadow_capture(registry_path=registry_path, + runtime_root=runtime_root, goal_id=goal_id, state_path=state_file, + write_class="bootstrap_state", original_text=original) + shadow_capture.prepare(planned) + require_runtime_shadow_capture_prepared(shadow_capture, runtime_root=runtime_root, goal_id=goal_id) atomic_write_state_text(state_file, planned) - shadow_capture.committed() + if shadow_capture is not None: + shadow_capture.committed() if todo_source_migration is not None: todo_source_migration["applied"] = True current_registry.setdefault("schema_version", "0.1") @@ -592,7 +607,7 @@ def bootstrap_project( # Registry intent survives an interrupted initialization. Reconnect retries # it outside the legacy/registry locks; changing machine defaults cannot # retarget that Goal. The TS owner refuses replacing an existing provider. - storage_selection = initialize_goal_storage_target(runtime_root, find_registry_goal(registry, goal_id) or {}) + storage_selection = initialize_goal_storage_target(runtime_root, find_registry_goal(registry, goal_id) or {}, registry_path=registry_path) if shadow_capture is not None: shadow_evidence = settle_todo_runtime_shadow_capture({}, registry_path=registry_path, runtime_root=runtime_root, goal_id=goal_id, capture=shadow_capture, emit_disabled=False) diff --git a/loopx/capabilities/configuration_ui.py b/loopx/capabilities/configuration_ui.py index da94e8e318..0d697d5f32 100644 --- a/loopx/capabilities/configuration_ui.py +++ b/loopx/capabilities/configuration_ui.py @@ -94,9 +94,14 @@ def capability_configuration_editor( }, "goal_storage": { "supported_scopes": ["machine"], "writable_scopes": ["machine"], - "fields": [_field("new_goal_provider", "New Goal storage target (after promotion)", "select", + "fields": [_field("new_goal_provider", "New Goal storage provider", "select", options=["file", "sqlite"], required=True, - description="Fixed at creation. Existing Goals need a separate backed-up migration; this setting does not promote them.")], + description="Fixed at creation. Existing Goals need a separate backed-up migration."), + _field("canonical_creation", "Create canonical authority", "boolean", required=True, + description="Explicit opt-in for future Goals. Disabled retains the post-promotion target behavior."), + _field("new_goal_handoff_mode", "New Goal execution policy", "select", + options=["soft_claim", "hard_lease"], required=True, + description="Used only with canonical creation. Agents inherit the Goal policy; this grants no tool permissions.")], }, "todo_replan_cadence": { "supported_scopes": ["machine", "goal"], diff --git a/loopx/capabilities/machine_configuration/goal_storage.py b/loopx/capabilities/machine_configuration/goal_storage.py index 8d3629fba5..28ca5a7ad3 100644 --- a/loopx/capabilities/machine_configuration/goal_storage.py +++ b/loopx/capabilities/machine_configuration/goal_storage.py @@ -9,27 +9,33 @@ from ...control_plane.effect_runtime import effect_runtime_result GOAL_STORAGE_DEFAULTS_SCHEMA = "loopx_goal_storage_defaults_v0" +CANONICAL_GOAL_STORAGE_DEFAULTS_SCHEMA = "loopx_goal_storage_defaults_v1" NEW_GOAL_STORAGE_METHOD = "coordination.local_authority.new_goal_storage" def normalize_goal_storage_defaults(raw: Mapping[str, Any]) -> dict[str, Any]: # Configuration-envelope validation only; target resolution/admission is TS-owned. - if set(raw) != {"schema_version", "new_goal_provider"} or raw.get("schema_version") != GOAL_STORAGE_DEFAULTS_SCHEMA: + canonical = raw.get("schema_version") == CANONICAL_GOAL_STORAGE_DEFAULTS_SCHEMA + fields = {"schema_version", "new_goal_provider", "canonical_creation", "new_goal_handoff_mode"} if canonical else {"schema_version", "new_goal_provider"} + if set(raw) != fields or (not canonical and raw.get("schema_version") != GOAL_STORAGE_DEFAULTS_SCHEMA): raise ValueError("goal_storage requires schema_version and new_goal_provider") if raw.get("new_goal_provider") not in ("file", "sqlite"): raise ValueError("new_goal_provider must be file or sqlite") + if canonical and (type(raw["canonical_creation"]) is not bool or raw["new_goal_handoff_mode"] not in ("soft_claim", "hard_lease")): + raise ValueError("canonical_creation must be boolean; new_goal_handoff_mode must be soft_claim or hard_lease") return dict(raw) def goal_storage_machine_configuration_namespace() -> MachineConfigurationNamespace: return MachineConfigurationNamespace( - namespace="goal_storage", schema_versions=frozenset({GOAL_STORAGE_DEFAULTS_SCHEMA}), + namespace="goal_storage", schema_versions=frozenset({GOAL_STORAGE_DEFAULTS_SCHEMA, CANONICAL_GOAL_STORAGE_DEFAULTS_SCHEMA}), normalize=normalize_goal_storage_defaults, project_public=dict, apply_public_update=lambda _current, update: dict(update), - title="New Goal storage target", - description=("Fixed when a new Goal is created; used after reviewed promotion. " - "Does not promote Goals or migrate existing data. Existing Goals keep their selection."), - default_configuration={"schema_version": GOAL_STORAGE_DEFAULTS_SCHEMA, "new_goal_provider": "file"}, + title="New Goal authority", + description=("Opt in to canonical creation and choose its execution policy. " + "Fixed for future Goals only; existing data requires a separate reviewed migration."), + default_configuration={"schema_version": CANONICAL_GOAL_STORAGE_DEFAULTS_SCHEMA, "new_goal_provider": "file", + "canonical_creation": False, "new_goal_handoff_mode": "hard_lease"}, documentation={"path": "docs/reference/local-authority-provider-selection.md", "url": "https://github.com/loopx-project/loopx/blob/main/docs/reference/local-authority-provider-selection.md"}, ) @@ -45,9 +51,29 @@ def new_goal_storage_target(runtime_root: Path) -> dict[str, Any] | None: return effect_runtime_result(NEW_GOAL_STORAGE_METHOD, {"action": "resolve", "configuration": raw}) -def initialize_goal_storage_target(runtime_root: Path, goal: Mapping[str, Any]) -> dict[str, Any] | None: +def initialize_goal_storage_target(runtime_root: Path, goal: Mapping[str, Any], *, registry_path: Path | None = None) -> dict[str, Any] | None: target = (goal.get("coordination") or {}).get("storage_target") if target is None: return None - return effect_runtime_result(NEW_GOAL_STORAGE_METHOD, {"action": "initialize", "runtime_root": str(runtime_root), - "goal_id": goal["id"], "target": target}) + request = {"action": "initialize", "runtime_root": str(runtime_root), "goal_id": goal["id"], "target": target} + if target.get("schema_version") == "loopx_new_goal_storage_target_v1": + from ...registry import resolve_state_file + from ...control_plane.coordination.authority_source_capture import authority_registry_source + from ...agent_registry import registered_agent_ids_for_goal + if registry_path is None: + raise ValueError("Canonical creation requires its registered source") + state_path = resolve_state_file(Path(goal["repo"]), goal["state_file"]) + with authority_registry_source(registry_path) as witness: + request.update(creation_operation_id=goal.get("creation_operation_id"), source_snapshot={ + "state_path": str(state_path.resolve()), + "registry_source": {**witness, "registered_agents": registered_agent_ids_for_goal(dict(goal))}}) + result = effect_runtime_result(NEW_GOAL_STORAGE_METHOD, request) + # Native receipt readback needs no Markdown parsing. Only the typed + # owner can request a complete source capture for unfinished creation. + if result.get("source_capture_required") is not True: + return result + from ...control_plane.coordination.runtime_shadow import build_runtime_shadow_source_snapshot + projection, snapshot = build_runtime_shadow_source_snapshot(goal=goal, runtime_root=runtime_root, + state_path=state_path, registry_path=registry_path) + request.update(creation_operation_id=goal.get("creation_operation_id"), projection=projection, source_snapshot=snapshot) + return effect_runtime_result(NEW_GOAL_STORAGE_METHOD, request) diff --git a/loopx/chat_actions.py b/loopx/chat_actions.py index 1e85e8cdd2..caa02ad3c9 100644 --- a/loopx/chat_actions.py +++ b/loopx/chat_actions.py @@ -602,7 +602,7 @@ def _apply_goal_create( # Registry publication precedes storage initialization. Resume the # frozen target through its TS owner before any downstream effects; # re-running Markdown bootstrap could overwrite a promoted Goal. - initialize_goal_storage_target(runtime_root, existing_goal) + initialize_goal_storage_target(runtime_root, existing_goal, registry_path=self.registry_path) result = {"ok": True} else: try: diff --git a/loopx/control_plane/coordination/coordination_state_contract.generated.ts b/loopx/control_plane/coordination/coordination_state_contract.generated.ts index 8a927e3d64..ea3ca6b2c7 100644 --- a/loopx/control_plane/coordination/coordination_state_contract.generated.ts +++ b/loopx/control_plane/coordination/coordination_state_contract.generated.ts @@ -66,6 +66,7 @@ export const SHADOW_OUTBOX_MANIFEST_SCHEMA = "loopx_shadow_outbox_manifest_v1"; export const SHADOW_EXACT_OUTBOX_MANIFEST_SCHEMA = "loopx_shadow_outbox_manifest_v2"; export const LEGACY_COORDINATION_WRITER_FENCE_SCHEMA = "loopx_legacy_coordination_writer_fence_v0"; +export const NEW_GOAL_WRITER_FENCE_SCHEMA = "loopx_new_goal_writer_fence_v0"; export const LEGACY_COORDINATION_WRITER_FENCE_ENGAGE_REQUEST_SCHEMA = "loopx_legacy_coordination_writer_fence_engage_request_v0"; export const LEGACY_COORDINATION_WRITER_FENCE_RESULT_SCHEMA = "loopx_legacy_coordination_writer_fence_result_v0"; export const LEGACY_COORDINATION_WRITE_CHECK_REQUEST_SCHEMA = "loopx_legacy_coordination_write_check_request_v0"; @@ -304,6 +305,7 @@ export const COORDINATION_STATE_CONTRACT = deepFreeze({ }, "legacy_writer_fence_protocol": { "fence_schema": LEGACY_COORDINATION_WRITER_FENCE_SCHEMA, + "creation_fence_schema": NEW_GOAL_WRITER_FENCE_SCHEMA, "engage_request_schema": LEGACY_COORDINATION_WRITER_FENCE_ENGAGE_REQUEST_SCHEMA, "result_schema": LEGACY_COORDINATION_WRITER_FENCE_RESULT_SCHEMA, "write_check_request_schema": LEGACY_COORDINATION_WRITE_CHECK_REQUEST_SCHEMA, diff --git a/loopx/control_plane/coordination/coordination_state_contract_generated.py b/loopx/control_plane/coordination/coordination_state_contract_generated.py index 2f3d69ed90..03e33da800 100644 --- a/loopx/control_plane/coordination/coordination_state_contract_generated.py +++ b/loopx/control_plane/coordination/coordination_state_contract_generated.py @@ -160,6 +160,7 @@ def _freeze(value: Any) -> Any: 'outbox_manifest_schema': 'loopx_shadow_outbox_manifest_v1', 'exact_outbox_manifest_schema': 'loopx_shadow_outbox_manifest_v2'}, 'legacy_writer_fence_protocol': {'fence_schema': 'loopx_legacy_coordination_writer_fence_v0', + 'creation_fence_schema': 'loopx_new_goal_writer_fence_v0', 'engage_request_schema': 'loopx_legacy_coordination_writer_fence_engage_request_v0', 'result_schema': 'loopx_legacy_coordination_writer_fence_result_v0', 'write_check_request_schema': 'loopx_legacy_coordination_write_check_request_v0', @@ -270,6 +271,7 @@ def _freeze(value: Any) -> Any: SHADOW_EXACT_OUTBOX_MANIFEST_SCHEMA: Final[str] = 'loopx_shadow_outbox_manifest_v2' LEGACY_COORDINATION_WRITER_FENCE_SCHEMA: Final[str] = 'loopx_legacy_coordination_writer_fence_v0' +NEW_GOAL_WRITER_FENCE_SCHEMA: Final[str] = 'loopx_new_goal_writer_fence_v0' LEGACY_COORDINATION_WRITER_FENCE_ENGAGE_REQUEST_SCHEMA: Final[str] = 'loopx_legacy_coordination_writer_fence_engage_request_v0' LEGACY_COORDINATION_WRITER_FENCE_RESULT_SCHEMA: Final[str] = 'loopx_legacy_coordination_writer_fence_result_v0' LEGACY_COORDINATION_WRITE_CHECK_REQUEST_SCHEMA: Final[str] = 'loopx_legacy_coordination_write_check_request_v0' diff --git a/loopx/control_plane/coordination/coordination_state_contract_v0.json b/loopx/control_plane/coordination/coordination_state_contract_v0.json index 190ca5723f..a9e70233f7 100644 --- a/loopx/control_plane/coordination/coordination_state_contract_v0.json +++ b/loopx/control_plane/coordination/coordination_state_contract_v0.json @@ -170,6 +170,7 @@ }, "legacy_writer_fence_protocol": { "fence_schema": "loopx_legacy_coordination_writer_fence_v0", + "creation_fence_schema": "loopx_new_goal_writer_fence_v0", "engage_request_schema": "loopx_legacy_coordination_writer_fence_engage_request_v0", "result_schema": "loopx_legacy_coordination_writer_fence_result_v0", "write_check_request_schema": "loopx_legacy_coordination_write_check_request_v0", diff --git a/loopx/control_plane/coordination/legacy_writer_fence.ts b/loopx/control_plane/coordination/legacy_writer_fence.ts index 124fc74f30..2f9558a2b8 100644 --- a/loopx/control_plane/coordination/legacy_writer_fence.ts +++ b/loopx/control_plane/coordination/legacy_writer_fence.ts @@ -5,6 +5,7 @@ import { isAbsolute, join } from "node:path"; import type { JsonObject } from "../effect_program.ts"; import { atomicWriteJson, withFileMutationLock } from "../effect_runtime_io.ts"; import { requireJsonObject } from "../runtime_decode.ts"; +import {BARE_SHA256_PATTERN} from "../content_digest.ts"; import { readShadowBootstrapSourcePath, requireShadowPrimaryWriteAllowed, ShadowManagementError, shadowMaintenanceLockPath } from "./shadow_management.ts"; import { legacyCoordinationTodoLockPath, legacyCoordinationLeaseLockPath, taskLeaseLockPath } from "./legacy_writer_lock_paths.ts"; export { legacyCoordinationTodoLockPath, legacyCoordinationLeaseLockPath, @@ -13,12 +14,14 @@ export { legacyCoordinationTodoLockPath, legacyCoordinationLeaseLockPath, import { canonicalAuthorityBytes, canonicalAuthorityObject, + hasExactAuthorityKeys, requireAuthorityStoreId, } from "./authority_store_codec.ts"; import { LEGACY_COORDINATION_WRITER_FENCE_ENGAGE_REQUEST_SCHEMA, LEGACY_COORDINATION_WRITER_FENCE_RESULT_SCHEMA, LEGACY_COORDINATION_WRITER_FENCE_SCHEMA, + NEW_GOAL_WRITER_FENCE_SCHEMA, LEGACY_COORDINATION_WRITE_CHECK_REQUEST_SCHEMA, LEGACY_COORDINATION_WRITE_CHECK_RESULT_SCHEMA, } from "./coordination_state_contract.generated.ts"; @@ -27,6 +30,7 @@ export { LEGACY_COORDINATION_WRITER_FENCE_ENGAGE_REQUEST_SCHEMA, LEGACY_COORDINATION_WRITER_FENCE_RESULT_SCHEMA, LEGACY_COORDINATION_WRITER_FENCE_SCHEMA, + NEW_GOAL_WRITER_FENCE_SCHEMA, LEGACY_COORDINATION_WRITE_CHECK_REQUEST_SCHEMA, LEGACY_COORDINATION_WRITE_CHECK_RESULT_SCHEMA, }; @@ -103,6 +107,18 @@ export function legacyCoordinationWriterFencePath(root: string, goalId: string): export function decodeLegacyCoordinationWriterFence(value: unknown): JsonObject { const fence = canonicalAuthorityObject(value, "legacy coordination writer fence"); + if (fence.schema_version === NEW_GOAL_WRITER_FENCE_SCHEMA) { + if (fence.state !== "engaged" || !hasExactAuthorityKeys(fence, + ["schema_version", "state", "goal_id", "fence_id", "creation_operation_id", "creation_identity_sha256", "creation_completed"]) || + typeof fence.creation_completed !== "boolean") { + throw new Error("Invalid new Goal writer fence"); + } + for (const key of ["goal_id", "fence_id", "creation_operation_id", "creation_identity_sha256"]) { + requireAuthorityStoreId(fence[key], `new Goal writer fence ${key}`); + } + if (!BARE_SHA256_PATTERN.test(String(fence.creation_identity_sha256))) throw new Error("Invalid new Goal creation identity digest"); + return fence; + } if ( fence.schema_version !== LEGACY_COORDINATION_WRITER_FENCE_SCHEMA || fence.state !== "engaged" @@ -136,6 +152,27 @@ export function decodeLegacyCoordinationWriterFence(value: unknown): JsonObject }, "legacy coordination writer fence"); } +/** Record verified creation completion without reopening the legacy writer. + * Caller holds the same maintenance/source locks through receipt readback. + */ +export async function completeNewGoalWriterFenceUnderLocks(root: string, goalId: string, pending: JsonObject): Promise { + const path = legacyCoordinationWriterFencePath(root, goalId); + await withFileMutationLock(path, async () => { + const current = await loadLegacyCoordinationWriterFence(root, goalId); + if (current.status !== "loaded" || current.fence.schema_version !== NEW_GOAL_WRITER_FENCE_SCHEMA || + !canonicalAuthorityBytes({...current.fence, creation_completed: false}).equals(canonicalAuthorityBytes(pending))) { + throw new Error("New Goal creation fence changed before completion"); + } + if (current.fence.creation_completed === true) return; + const completed = {...pending, creation_completed: true}; + await atomicWriteJson(path, completed); + const checked = await loadLegacyCoordinationWriterFence(root, goalId); + if (checked.status !== "loaded" || !canonicalAuthorityBytes(checked.fence).equals(canonicalAuthorityBytes(completed))) { + throw new Error("New Goal creation completion fence readback failed"); + } + }); +} + export async function loadLegacyCoordinationWriterFence( root: string, goalId: string, diff --git a/loopx/control_plane/coordination/local_authority_defaults.ts b/loopx/control_plane/coordination/local_authority_defaults.ts index 0e11528360..2e9d76c48e 100644 --- a/loopx/control_plane/coordination/local_authority_defaults.ts +++ b/loopx/control_plane/coordination/local_authority_defaults.ts @@ -3,9 +3,13 @@ import type {JsonObject} from "../effect_program.ts"; import {requireJsonObject} from "../runtime_decode.ts"; import {requireAuthorityStoreId} from "./authority_store_codec.ts"; import {requireLocalAuthorityRuntimeRoot, selectLocalAuthorityTarget} from "./local_authority_provider.ts"; +import {EXECUTION_HANDOFF_MODES} from "./handoff_mode_vocabulary.ts"; +import {initializeNewGoalAuthority} from "./new_goal_initialization.ts"; const GOAL_STORAGE_DEFAULTS_SCHEMA = "loopx_goal_storage_defaults_v0"; const NEW_GOAL_STORAGE_TARGET_SCHEMA = "loopx_new_goal_storage_target_v0"; +export const CANONICAL_GOAL_STORAGE_DEFAULTS_SCHEMA = "loopx_goal_storage_defaults_v1"; +export const CANONICAL_NEW_GOAL_STORAGE_TARGET_SCHEMA = "loopx_new_goal_storage_target_v1"; function provider(value: unknown): "file" | "sqlite" { if (value !== "file" && value !== "sqlite") throw new Error("New Goal storage must be file or sqlite"); return value; @@ -13,13 +17,30 @@ function provider(value: unknown): "file" | "sqlite" { export async function manageNewGoalStorage(request: JsonObject): Promise { if (request.action === "resolve") { const config = requireJsonObject(request.configuration, "Goal storage defaults"); - if (config.schema_version !== GOAL_STORAGE_DEFAULTS_SCHEMA || Object.keys(config).some(key => !["schema_version", "new_goal_provider"].includes(key))) { + const canonical = config.schema_version === CANONICAL_GOAL_STORAGE_DEFAULTS_SCHEMA; + const keys = canonical ? ["schema_version", "new_goal_provider", "canonical_creation", "new_goal_handoff_mode"] : ["schema_version", "new_goal_provider"]; + if ((!canonical && config.schema_version !== GOAL_STORAGE_DEFAULTS_SCHEMA) || + Object.keys(config).some(key => !keys.includes(key)) || keys.some(key => !(key in config))) { throw new Error("Invalid Goal storage defaults"); } + if (canonical && (typeof config.canonical_creation !== "boolean" || + !EXECUTION_HANDOFF_MODES.some(mode => mode === config.new_goal_handoff_mode))) { + throw new Error("Canonical creation requires a boolean opt-in and soft_claim or hard_lease policy"); + } + if (canonical && config.canonical_creation === true) return { + schema_version: CANONICAL_NEW_GOAL_STORAGE_TARGET_SCHEMA, provider: provider(config.new_goal_provider), + handoff_mode: config.new_goal_handoff_mode, + }; return {schema_version: NEW_GOAL_STORAGE_TARGET_SCHEMA, provider: provider(config.new_goal_provider)}; } if (request.action !== "initialize") throw new Error("Unknown new Goal storage action"); const target = requireJsonObject(request.target, "New Goal storage target"); + if (target.schema_version === CANONICAL_NEW_GOAL_STORAGE_TARGET_SCHEMA) { + if (Object.keys(target).some(key => !["schema_version", "provider", "handoff_mode"].includes(key)) || + !EXECUTION_HANDOFF_MODES.some(mode => mode === target.handoff_mode)) throw new Error("Invalid canonical creation target"); + provider(target.provider); + return await initializeNewGoalAuthority(request); + } if (target.schema_version !== NEW_GOAL_STORAGE_TARGET_SCHEMA || Object.keys(target).some(key => !["schema_version", "provider"].includes(key))) { throw new Error("Invalid new Goal storage target"); } diff --git a/loopx/control_plane/coordination/new_goal_initialization.ts b/loopx/control_plane/coordination/new_goal_initialization.ts new file mode 100644 index 0000000000..e9b8687137 --- /dev/null +++ b/loopx/control_plane/coordination/new_goal_initialization.ts @@ -0,0 +1,100 @@ +/** Fresh local authority creation; existing Goals use reviewed migration. + * The original creation receipt remains valid after later Todo writes. + */ +import {readFile} from "node:fs/promises"; +import {resolve} from "node:path"; +import type {JsonObject} from "../effect_program.ts"; +import {canonicalAuthorityBytes, canonicalAuthoritySha256, requireAuthorityStoreId} from "./authority_store_codec.ts"; +import {openLocalAuthorityStoreHandle, requireLocalAuthorityRuntimeRoot, selectLocalAuthorityTarget} from "./local_authority_provider.ts"; +import {engageLegacyCoordinationWriterFenceUnderLocks, completeNewGoalWriterFenceUnderLocks, loadLegacyCoordinationWriterFence, NEW_GOAL_WRITER_FENCE_SCHEMA} from "./legacy_writer_fence.ts"; +import {readShadowManagementState, withShadowMaintenanceLock} from "./shadow_management.ts"; +import {verifyShadowSourceSnapshot, withShadowSourceLocks, type ShadowRequest} from "./runtime_shadow.ts"; +import {projectCoordinationSource, SOURCE_PROJECTION_REQUEST_SCHEMA} from "./source_projection.ts"; +import {TODO_DOMAIN_READ_RECORD_SCHEMA} from "./coordination_state_contract.ts"; +import {commitPromotionAndReadBack, readPromotionReceipt} from "./promotion_receipt.ts"; +import {requireJsonObject} from "../runtime_decode.ts"; + +export async function initializeNewGoalAuthority(raw: JsonObject): Promise { + const root = requireLocalAuthorityRuntimeRoot(raw.runtime_root); + const goalId = requireAuthorityStoreId(raw.goal_id, "goal id"); + const operationId = requireAuthorityStoreId(raw.creation_operation_id, "creation operation id"); + const target = requireJsonObject(raw.target, "creation target"); + const snapshot = requireJsonObject(raw.source_snapshot, "creation source snapshot"); + const projection = projectCoordinationSource({schema_version: SOURCE_PROJECTION_REQUEST_SCHEMA, + kind: "snapshot", goal_id: goalId, handoff_mode: target.handoff_mode, todos: [], leases: [], + read_model_schema: TODO_DOMAIN_READ_RECORD_SCHEMA}).projection as JsonObject; + const capturedSource = raw.projection !== undefined; + const request: ShadowRequest = {runtime_root: root, goal_id: goalId, + projection: capturedSource ? requireJsonObject(raw.projection, "creation source") : projection, source_snapshot: snapshot}; + const identitySha = canonicalAuthoritySha256({goal_id: goalId, creation_operation_id: operationId, + target, state_path: snapshot.state_path, registry_path: (snapshot.registry_source as JsonObject)?.path}); + const identity = {operation_id: operationId, projection_sha256: canonicalAuthoritySha256(projection), + receipt: {schema_version: "loopx_new_goal_authority_creation_receipt_v0", operation_id: operationId, + goal_id: goalId, creation_identity_sha256: identitySha}}; + const fence = {schema_version: NEW_GOAL_WRITER_FENCE_SCHEMA, state: "engaged", goal_id: goalId, + fence_id: `new-goal:${operationId}`, creation_operation_id: operationId, creation_identity_sha256: identitySha, + creation_completed: false}; + const validateRegistration = async () => { + const registry = JSON.parse(await readFile(String((snapshot.registry_source as JsonObject).path), "utf8")); + const registered = registry.goals?.find((goal: JsonObject) => goal.id === goalId); + if (!registered || registered.creation_operation_id !== operationId || + !canonicalAuthorityBytes(registered.coordination?.storage_target).equals(canonicalAuthorityBytes(target)) || + typeof registered.repo !== "string" || typeof registered.state_file !== "string" || + resolve(registered.repo, registered.state_file) !== resolve(String(snapshot.state_path))) { + throw new Error("Canonical creation is not bound to the registered original operation, source and target"); + } + }; + await validateRegistration(); + const priorFence = await loadLegacyCoordinationWriterFence(root, goalId); + if (priorFence.status === "failed") throw new Error(priorFence.reason); + if (capturedSource && priorFence.status === "missing" && ((request.projection.todos as unknown[])?.length !== 0 || + (request.projection.leases as unknown[])?.length !== 0 || (snapshot.lease_inventory as unknown[])?.length !== 0)) { + throw new Error("Canonical creation requires an empty source without lease history; use reviewed migration"); + } + + // Selection retains the established provider/lineage checks. It cannot replace + // a selected store, and later reviewed migration wins over creation defaults. + if (capturedSource) await selectLocalAuthorityTarget(root, goalId, target.provider as "file" | "sqlite", true, "creation_retry"); + return await withShadowMaintenanceLock(root, goalId, () => withShadowSourceLocks(request, async () => { + await validateRegistration(); + const managed = await readShadowManagementState(root, goalId); + if (managed?.status === "active") throw new Error("Existing shadow capture requires reviewed migration"); + const opened = await openLocalAuthorityStoreHandle(root, goalId); + const head = await opened.store.loadAuthority(); + const persisted = await loadLegacyCoordinationWriterFence(root, goalId); + if (persisted.status === "failed") throw new Error(persisted.reason); + if (persisted.status === "loaded" && !canonicalAuthorityBytes({...persisted.fence, creation_completed: false}).equals(canonicalAuthorityBytes(fence))) { + throw new Error("Canonical creation writer fence belongs to a different operation"); + } + let readback = await readPromotionReceipt(opened.store, identity); + if (!readback.matched) { + if (persisted.status === "loaded" && persisted.fence.creation_completed === true) { + throw new Error("Completed canonical creation authority is unavailable; restore its complete backup, never recreate it"); + } + if (head.status !== "missing") throw new Error(`Canonical creation cannot replace authority: ${readback.reason_code}`); + if (!capturedSource) return {source_capture_required: true}; + // A creation intent is never a migration waiver. Validate the complete + // real source and inventory under its locks; nonempty sources fail closed. + await verifyShadowSourceSnapshot(request); + if ((request.projection.todos as unknown[])?.length !== 0 || + (request.projection.leases as unknown[])?.length !== 0 || + (snapshot.lease_inventory as unknown[])?.length !== 0) { + throw new Error("Canonical creation requires an empty source without lease history; use reviewed migration"); + } + const fenced = await engageLegacyCoordinationWriterFenceUnderLocks(root, goalId, String(snapshot.state_path), fence); + if (fenced.status !== "applied" && fenced.status !== "replayed") throw new Error("Canonical creation writer fence could not be verified"); + const committed = await commitPromotionAndReadBack(opened.store, identity, projection, + {...identity.receipt, schema_version: "loopx_new_goal_authority_creation_event_v0"}); + readback = committed.readback; + if (!readback.matched) throw new Error(`Canonical creation interrupted; retry its original operation: ${readback.reason_code}`); + } + if (persisted.status === "missing" && head.status === "loaded") { + throw new Error("Canonical creation receipt exists but its writer fence is missing; restore the complete authority backup"); + } + await completeNewGoalWriterFenceUnderLocks(root, goalId, fence); + return {ok: true, provider: opened.provider, status: head.status === "missing" ? "created" : "replayed", + authority_initialized: true, handoff_mode: target.handoff_mode, applies_to: "canonical_authority", + promotion_performed: false, legacy_writer_fenced: true, legacy_fallback_used: false, + provider_revision: readback.provider_revision, cursor: readback.cursor, creation_operation_id: operationId}; + })); +} diff --git a/loopx/semantics/project_registry_io_manifest_v1.json b/loopx/semantics/project_registry_io_manifest_v1.json index 0cee37f45d..218c811bc4 100644 --- a/loopx/semantics/project_registry_io_manifest_v1.json +++ b/loopx/semantics/project_registry_io_manifest_v1.json @@ -111,7 +111,7 @@ }, { "site": "loopx/bootstrap.py::.bootstrap_project::codec_transaction:project_registry_transaction#1", - "line": 527, + "line": 533, "column": 14, "kind": "codec_transaction", "api": "project_registry_transaction", @@ -119,7 +119,7 @@ }, { "site": "loopx/bootstrap.py::.read_json_if_exists::codec_read:load_project_registry#1", - "line": 84, + "line": 86, "column": 15, "kind": "codec_read", "api": "load_project_registry", diff --git a/scripts/generate_coordination_state_contract.py b/scripts/generate_coordination_state_contract.py index 66a503c8af..ec494cbde8 100644 --- a/scripts/generate_coordination_state_contract.py +++ b/scripts/generate_coordination_state_contract.py @@ -85,6 +85,7 @@ ) LEGACY_WRITER_FENCE_PROTOCOL_KEYS = ( "fence_schema", + "creation_fence_schema", "engage_request_schema", "result_schema", "write_check_request_schema", @@ -150,6 +151,7 @@ ) LEGACY_WRITER_FENCE_CONSTANT_NAMES = { "fence_schema": "LEGACY_COORDINATION_WRITER_FENCE_SCHEMA", + "creation_fence_schema": "NEW_GOAL_WRITER_FENCE_SCHEMA", "engage_request_schema": "LEGACY_COORDINATION_WRITER_FENCE_ENGAGE_REQUEST_SCHEMA", "result_schema": "LEGACY_COORDINATION_WRITER_FENCE_RESULT_SCHEMA", "write_check_request_schema": "LEGACY_COORDINATION_WRITE_CHECK_REQUEST_SCHEMA", diff --git a/tests/control_plane/test_new_goal_storage_defaults.py b/tests/control_plane/test_new_goal_storage_defaults.py index c77aec63f2..35a0b0ed3e 100644 --- a/tests/control_plane/test_new_goal_storage_defaults.py +++ b/tests/control_plane/test_new_goal_storage_defaults.py @@ -5,6 +5,7 @@ import subprocess import sys import threading +from pathlib import Path from unittest.mock import patch import pytest @@ -24,14 +25,17 @@ def environment(tmp_path, monkeypatch): project.mkdir() config = runtime / "machine/configuration.json" config.parent.mkdir(parents=True) - def configure(provider): + def configure(provider, *, mode=None): + defaults = {"schema_version": "loopx_goal_storage_defaults_v0", "new_goal_provider": provider} + if mode is not None: + defaults.update(schema_version="loopx_goal_storage_defaults_v1", canonical_creation=True, new_goal_handoff_mode=mode) config.write_text(json.dumps({"schema_version": "loopx_machine_configuration_v0", "namespaces": { - "goal_storage": {"schema_version": "loopx_goal_storage_defaults_v0", "new_goal_provider": provider}}})) - def bootstrap(goal="first", *extra): + "goal_storage": defaults}})) + def bootstrap(goal="first", *extra, expected_code=0): result = subprocess.run([sys.executable, "-m", "loopx.entrypoint", "--registry", str(project / ".loopx/registry.json"), "--runtime-root", str(runtime), "--format", "json", "bootstrap", "--project", str(project), "--goal-id", goal, "--objective", "Validate a new project", "--no-global-sync", *extra], capture_output=True, text=True, timeout=60) - assert result.returncode == 0, result.stdout + result.stderr + assert result.returncode == expected_code, result.stdout + result.stderr return json.loads(result.stdout) def marker(goal="first"): return runtime / "authority" / f"provider-{hashlib.sha256(goal.encode()).hexdigest()}.json" @@ -62,6 +66,33 @@ def test_existing_implicit_file_goal_is_not_retargeted(environment): assert not marker().exists() +@pytest.mark.parametrize("provider", ["file", "sqlite"]) +@pytest.mark.parametrize("mode", ["soft_claim", "hard_lease"]) +def test_opted_in_creation_has_complete_canonical_authority_and_frozen_policy(environment, provider, mode): + from loopx.control_plane.coordination.local_authority import read_canonical_todos_if_promoted + + configure, bootstrap, _, _, runtime = environment + configuration = runtime / "machine/configuration.json" + configuration.write_text(json.dumps({"schema_version": "loopx_machine_configuration_v0", "namespaces": { + "goal_storage": {"schema_version": "loopx_goal_storage_defaults_v1", "new_goal_provider": provider, + "canonical_creation": True, "new_goal_handoff_mode": mode}}})) + preview = bootstrap("native", "--dry-run") + assert not (runtime / "authority-transition").exists() + actual = bootstrap("native") + source = read_canonical_todos_if_promoted(runtime_root=runtime, goal_id="native", include_leases=True) + assert source is not None + assert source["source_authority"] == f"{provider}_v0" + assert source["handoff_mode"] == mode + assert source["todos"] == [] + assert actual["storage_selection"]["authority_initialized"] is True + assert actual["storage_target"] == preview["storage_target"] + configure("file" if provider == "sqlite" else "sqlite") + restart_effect_runtime() + reconnect = bootstrap("native") + assert reconnect["storage_selection"]["authority_initialized"] is True + assert reconnect["storage_selection"]["handoff_mode"] == mode + + def test_pending_creation_uses_frozen_intent_after_machine_default_changes(environment): configure, bootstrap, marker, project, _ = environment # Independently model the durable boundary: registry/state published, selector absent. @@ -113,13 +144,14 @@ def request(path, body): @pytest.mark.parametrize("provider", ["file", "sqlite"]) @pytest.mark.parametrize("relative_runtime", [False, True]) -def test_app_creation_retries_storage_before_reporting_success(environment, app, monkeypatch, provider, relative_runtime): +@pytest.mark.parametrize("mode", [None, "soft_claim", "hard_lease"]) +def test_app_creation_retries_storage_before_reporting_success(environment, app, monkeypatch, provider, relative_runtime, mode): from loopx.capabilities.machine_configuration import goal_storage from loopx.todos import add_goal_todo configure, _, marker, project, _ = environment store, request = app - configure(provider) + configure(provider, mode=mode) registry = project / ".loopx/registry.json" # Registry-relative runtime routing must agree with CLI bootstrap, regardless # of the HTTP server process's working directory. @@ -177,6 +209,14 @@ def storage_effect(method, payload): assert recovered["proposal"]["receipt"]["outcome"] == "goal_created" assert selections[-1]["provider"] == provider assert selections[-1]["promotion_performed"] is False + if mode is not None: + from loopx.control_plane.coordination.local_authority import read_canonical_todos_if_promoted + source = read_canonical_todos_if_promoted(runtime_root=project.parent / "runtime", goal_id="recovery", include_leases=True) + assert source["handoff_mode"] == mode + assert len(source["todos"]) == 1 + assert source["todos"][0]["text"] == "Verify recovery" + assert source["source_authority"] == f"{provider}_v0" + assert selections[-1]["authority_initialized"] is True if provider == "sqlite": assert json.loads(marker("recovery").read_text())["provider"] == provider else: @@ -184,7 +224,20 @@ def storage_effect(method, payload): assert add.call_count == 1 assert request(apply_path, {})[1]["proposal"]["receipt"] == recovered["proposal"]["receipt"] assert add.call_count == 1 - assert len(selections) == 1 + assert len(selections) == (1 if mode is None else 2) + + +@pytest.mark.parametrize("provider", ["file", "sqlite"]) +def test_canonical_creation_force_rebuild_is_rejected_without_changing_todos(environment, provider): + configure, bootstrap, _, project, runtime = environment + configure(provider, mode="hard_lease") + created = bootstrap() + state = Path(created["state_file"]) + before = state.read_bytes() + rejected = bootstrap("first", "--force", expected_code=1) + assert "cannot rebuild" in rejected["error"] + assert state.read_bytes() == before + assert created["storage_selection"]["legacy_writer_fenced"] is True @pytest.mark.parametrize("provider", ["file", "sqlite"]) diff --git a/tests/control_plane_ts/new_goal_initialization.test.ts b/tests/control_plane_ts/new_goal_initialization.test.ts new file mode 100644 index 0000000000..8cd1d1ff56 --- /dev/null +++ b/tests/control_plane_ts/new_goal_initialization.test.ts @@ -0,0 +1,111 @@ +import assert from "node:assert/strict"; +import {test} from "node:test"; +import {createHash} from "node:crypto"; +import {mkdtemp, writeFile, readFile, rm} from "node:fs/promises"; +import {tmpdir} from "node:os"; +import {join} from "node:path"; +import type {JsonObject} from "../../loopx/control_plane/effect_program.ts"; +import {manageNewGoalStorage} from "../../loopx/control_plane/coordination/local_authority_defaults.ts"; +import {FileAuthorityStore} from "../../loopx/control_plane/coordination/file_authority_store.ts"; +import {SqliteAuthorityStore} from "../../loopx/control_plane/coordination/sqlite_authority_store.ts"; +import {openLocalAuthorityStore, localAuthorityProviderPaths} from "../../loopx/control_plane/coordination/local_authority_provider.ts"; +import {loadLegacyCoordinationWriterFence, checkLegacyCoordinationWriteAllowed, LEGACY_COORDINATION_WRITE_CHECK_REQUEST_SCHEMA} from "../../loopx/control_plane/coordination/legacy_writer_fence.ts"; +import {projectCoordinationSource, SOURCE_PROJECTION_REQUEST_SCHEMA} from "../../loopx/control_plane/coordination/source_projection.ts"; +import {TODO_DOMAIN_READ_RECORD_SCHEMA} from "../../loopx/control_plane/coordination/coordination_state_contract.ts"; +import {canonicalAuthoritySha256} from "../../loopx/control_plane/coordination/authority_store_codec.ts"; + +async function fixture(provider: "file" | "sqlite") { + const root = await mkdtemp(join(tmpdir(), "loopx-new-authority-")); + const state = join(root, "state.md"), registryPath = join(root, "registry.json"); + const bytes = "---\ngoal_id: new-goal\nhandoff_mode: hard_lease\n---\n# Goal\n\n## Agent Todo\n"; + const target = {schema_version: "loopx_new_goal_storage_target_v1", provider, handoff_mode: "hard_lease"}; + const registry = {common_runtime_root: root, goals: [{id: "new-goal", repo: root, state_file: "state.md", + creation_operation_id: "create-native", coordination: {storage_target: target}}]}; + const registryBytes = JSON.stringify(registry); + await writeFile(state, bytes); await writeFile(registryPath, registryBytes); + const projection = projectCoordinationSource({schema_version: SOURCE_PROJECTION_REQUEST_SCHEMA, kind: "snapshot", + goal_id: "new-goal", handoff_mode: "hard_lease", todos: [], leases: [], read_model_schema: TODO_DOMAIN_READ_RECORD_SCHEMA}).projection as JsonObject; + const sha = (value: string) => createHash("sha256").update(value).digest("hex"); + const request: JsonObject = {action: "initialize", runtime_root: root, goal_id: "new-goal", target, + creation_operation_id: "create-native", projection, source_snapshot: {state_path: state, registered_state_path: state, + registered_runtime_root: root, state_bytes_sha256: `sha256:${sha(bytes)}`, lease_inventory: [], + projection_sha256: canonicalAuthoritySha256(projection), evidence_files: [], + registry_source: {path: registryPath, sha256: sha(registryBytes), registered_agents: []}}}; + return {root, state, registryPath, request}; +} + +for (const provider of ["file", "sqlite"] as const) { + test(`${provider}: interrupted creation fences old writers and retries the original native receipt`, async () => { + const f = await fixture(provider), Store = provider === "file" ? FileAuthorityStore : SqliteAuthorityStore; + const commit = Store.prototype.commitAuthority; + try { + Store.prototype.commitAuthority = async () => {throw new Error("lost before commit");}; + await assert.rejects(manageNewGoalStorage(f.request), /interrupted/); + const blocked = await checkLegacyCoordinationWriteAllowed({schema_version: LEGACY_COORDINATION_WRITE_CHECK_REQUEST_SCHEMA, + runtime_root: f.root, goal_id: "new-goal"}); + assert.equal(blocked.status, "blocked"); + Store.prototype.commitAuthority = commit; + const recovered = await manageNewGoalStorage(f.request); + assert.equal(recovered.authority_initialized, true); + const fence = await loadLegacyCoordinationWriterFence(f.root, "new-goal"); + assert.equal(fence.status, "loaded"); if (fence.status === "loaded") assert.equal(fence.fence.creation_completed, true); + const store = await openLocalAuthorityStore(f.root, "new-goal"), loaded = await store.loadAuthority(); + assert.equal(loaded.status, "loaded"); if (loaded.status !== "loaded") return; + await store.commitAuthority({expected_provider_revision: loaded.provider_revision, operation_id: "later-write", + next_projection: {...loaded.head, progress: "later native write"}, events: [], receipts: []}); + const replay = await manageNewGoalStorage(f.request); + assert.equal(replay.cursor, "1", "read the original creation receipt after later commits"); + const after = await store.loadAuthority(); + assert.equal(after.status, "loaded"); if (after.status === "loaded") assert.equal(after.head.progress, "later native write"); + const {projection: _projection, ...receiptRequest} = f.request; + await rm(f.state); + assert.equal((await manageNewGoalStorage(receiptRequest)).authority_initialized, true, + "completed native receipt must not depend on Markdown source parsing or availability"); + assert.equal((await store.scanCommitted(null, 10)).status, "page"); + } finally {Store.prototype.commitAuthority = commit; await rm(f.root, {recursive: true, force: true});} + }); + test(`${provider}: foreign operation and nonempty source do not grant creation or change selection`, async () => { + const f = await fixture(provider); + try { + await assert.rejects(manageNewGoalStorage({...f.request, creation_operation_id: "foreign"}), /original operation/); + const snapshot = f.request.source_snapshot as JsonObject; + await assert.rejects(manageNewGoalStorage({...f.request, source_snapshot: {...snapshot, + lease_inventory: [{name: "retained.json", bytes_sha256: "sha256:retained"}]}}), /lease history/); + assert.equal((await loadLegacyCoordinationWriterFence(f.root, "new-goal")).status, "missing"); + await assert.rejects(readFile(localAuthorityProviderPaths(f.root, "new-goal").marker), {code: "ENOENT"}); + await writeFile(f.state, "changed source"); + await assert.rejects(manageNewGoalStorage(f.request), /source_changed_retry/); + assert.equal((await loadLegacyCoordinationWriterFence(f.root, "new-goal")).status, "missing"); + } finally {await rm(f.root, {recursive: true, force: true});} + }); +} + +test("creation opt-in reuses execution policy vocabulary; legacy is only a compatibility target", async () => { + await assert.rejects(manageNewGoalStorage({action: "resolve", configuration: {schema_version: "loopx_goal_storage_defaults_v1", + new_goal_provider: "sqlite", canonical_creation: true, new_goal_handoff_mode: "legacy"}}), /soft_claim or hard_lease/); + assert.deepEqual(await manageNewGoalStorage({action: "resolve", configuration: {schema_version: "loopx_goal_storage_defaults_v1", + new_goal_provider: "sqlite", canonical_creation: false, new_goal_handoff_mode: "hard_lease"}}), + {schema_version: "loopx_new_goal_storage_target_v0", provider: "sqlite"}); +}); + +test("completed File creation cannot recreate a lost authority document", async () => { + const f = await fixture("file"); + try { + await manageNewGoalStorage(f.request); + const store = await openLocalAuthorityStore(f.root, "new-goal"); + assert.ok(store instanceof FileAuthorityStore); + await rm(store.path); + await assert.rejects(manageNewGoalStorage(f.request), /restore its complete backup/); + await assert.rejects(readFile(store.path), {code: "ENOENT"}); + } finally {await rm(f.root, {recursive: true, force: true});} +}); + +test("unfinished creation preflight requests source capture without selecting a provider or fencing writers", async () => { + const f = await fixture("sqlite"); + try { + const {projection: _projection, ...request} = f.request; + assert.deepEqual(await manageNewGoalStorage(request), {source_capture_required: true}); + assert.equal((await loadLegacyCoordinationWriterFence(f.root, "new-goal")).status, "missing"); + await assert.rejects(readFile(localAuthorityProviderPaths(f.root, "new-goal").marker), {code: "ENOENT"}); + } finally {await rm(f.root, {recursive: true, force: true});} +}); From e2b7dbbaa9d23f8dfa3ece754ff42cc8b04aa59e Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Sun, 4 Oct 2026 19:28:55 +0800 Subject: [PATCH 2/4] docs(goals): explain canonical creation and original-operation recovery Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- ...shared-goal-authority-state-provider-v0.md | 12 ++ ...-goal-authority-state-provider-v0.zh-CN.md | 9 + .../images/new-goal-authority/after.png | Bin 0 -> 92529 bytes .../images/new-goal-authority/before.png | Bin 0 -> 95682 bytes .../new-goal-authority/invalid-policy.png | Bin 0 -> 96541 bytes .../images/new-goal-authority/mobile.png | Bin 0 -> 42264 bytes .../local-authority-provider-selection.md | 170 ++++++++++++------ 7 files changed, 140 insertions(+), 51 deletions(-) create mode 100644 docs/reference/images/new-goal-authority/after.png create mode 100644 docs/reference/images/new-goal-authority/before.png create mode 100644 docs/reference/images/new-goal-authority/invalid-policy.png create mode 100644 docs/reference/images/new-goal-authority/mobile.png diff --git a/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.md b/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.md index f6efd1a772..62efaed604 100644 --- a/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.md +++ b/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.md @@ -41,6 +41,18 @@ Frozen failures/missing evidence remain visible. T4 deletes proven redundant owners alongside implementation, without waiting for R6 or all Python to vanish. This replaces stale current-count estimates, not historical execution evidence. +**Fresh creation opt-in (2026-10-04, proposed).** The existing +[device setting and CLI/App creation owner](../../reference/local-authority-provider-selection.md#new-goal-authority-machine-setting) +can freeze a File/SQLite target and `soft_claim`/`hard_lease` policy, initialize +empty canonical authority and recover the original creation receipt. Isolated +real-provider CLI/HTTP and packaged settings checks cover original-operation +retry, writer fencing, lost completed authority and rejected policy recovery. +Completed retries no longer parse the Python Markdown source; unfinished fresh +creation still captures it only when the typed owner requests it. Default-off +and released v0 behavior remain; live legacy writers retain callers. This is a +bounded L9 prerequisite, not installed upgrade, whole-Goal recovery, D2, cohort +admission or release-default acceptance. Those existing exits remain open. + File retained-state storage now reuses the existing TS checkpoint/delta codec, stacked on #5063's verified read cache and RPC budgets. Original revisions, receipts and full historical projections survive the physical format upgrade. diff --git a/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.zh-CN.md b/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.zh-CN.md index 4d5eba9aee..485b125321 100644 --- a/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.zh-CN.md +++ b/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.zh-CN.md @@ -34,6 +34,15 @@ D2 已通过;冻结的失败/缺项保持可见。T4 随实现删除已证明重复的 owner,不等 R6 或所有 Python 消失。本节替代陈旧的当前数量估算,不覆盖历史执行证据。 +**新建 opt-in(2026-10-04,拟议)。** 既有 +[设备设置和 CLI/App 创建 owner](../../reference/local-authority-provider-selection.md#new-goal-authority-machine-setting) +可固定 File/SQLite 目标与 `soft_claim`/`hard_lease` 策略,初始化空 canonical +权威并恢复原创建回执。隔离真实 provider 的 CLI/HTTP 与打包设置验证覆盖原操作 +重试、旧 writer fence、已完成存储丢失和非法策略恢复。完成后的重试不再解析 +Python Markdown 源;未完成的新建仅在 typed owner 请求时捕获源。默认关闭及 +发布版 v0 行为保持,活跃 legacy writer 仍有调用方。这是有界 L9 前置,不代表 +安装态升级、整 Goal 恢复、D2、cohort 准入或发布默认验收;这些既有出口保持开放。 + **所有权精简阶段(2026-10-01)。** R5/T4 将存储晋升与策略迁移分开:新 CLI promote 默认保留策略,正常策略目标收敛为 soft/hard。canonical 策略迁移复用晋升 规则、完整归档和 command receipt owner,用一笔 CAS 保留 assignment、lease diff --git a/docs/reference/images/new-goal-authority/after.png b/docs/reference/images/new-goal-authority/after.png new file mode 100644 index 0000000000000000000000000000000000000000..e41b23124b75da834d5044fa4510f4506ed1f711 GIT binary patch literal 92529 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

?i>i3jB^uIYpvi+KP7$yX<^u!#xeLqQj6d6Y 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
6iHD%Tfi>`` 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 MRdkfImCjxJKSvLG?f?J) literal 0 HcmV?d00001 diff --git a/docs/reference/images/new-goal-authority/invalid-policy.png b/docs/reference/images/new-goal-authority/invalid-policy.png new file mode 100644 index 0000000000000000000000000000000000000000..205937536a5763d46b6709f48dcf09fc46e2eac5 GIT binary patch literal 96541 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

bcy@)vlxST41|+>)t)vD)H41(`UMW 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 B5gGsh literal 0 HcmV?d00001 diff --git a/docs/reference/images/new-goal-authority/mobile.png b/docs/reference/images/new-goal-authority/mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..f11bbcfdf8091f18e6a3841be9729dc03e9143e6 GIT binary patch literal 42264 zcmcG$WmHvRxbLe-gS523f(1yYboZh=1VN;wLrOxCSc_)Soq{NmDj+4@Esb9OxS}51P@?x(z@Om+nH!7PsZ*#Y(9Rf13#j=awNJ0TG9ksnwsp~n(Pi(kEFF? zk?4eWs91IcBn5S%q)FfII)x?I0~@Gj>$ZPAs?WB`zUmWqUsIiRpYv&&=X>Yu;^Fa~ zF_>VNZiq+*bAk>=BvXS4LlU&eD8Cp6cQW}3&nz%1Vdq%i}X;K3?>=m zzx$&>90ryCSEsYJ?nN5ebM;Yhc#Yr1VS5Bw%u`X%m9Ds!5S(OIy&h%CLXB+GI?tW$ zsj3)i;Y#cNwAJ3^vo9|H{uB=l4b=$XV_|it@)a=#D-pmrVYmw=Mpc(TV7j`0{uJw! znKoSh(b2H#Mp`ZW{t$-uG*3)OD5d&4DLJ_OZHt_D2o!zX_Z>rMD zRZrH7^7$Lfq-w{RpRbxxC>75IoMtC;q(7#d6se_me5rZSn=N^#!qs4j1tF3fQ66zf zfA|Rf{FCxCyw}H5HrY`We1!&OriKM;{ptCX6ug$0n3($|6ciLj;Bvm`eeH0t{QK)| zx}dW_?<8sGwn>f4;)Ge?H{)ujjz|hMEYH5FH;XMHw%Ewy&7$l>&#qWVmZQY&`SKH1 z-B-D<+r!W110~<#V`ICGJ5847I!sj->lFPACct9EVzis9_t_YJ>NUGqrV`|_IdZc5 zmx_nix!PgM?R?+d#xa^&c(>uqv?}t6j9fI0_`h18Qj^-#?WyH@4r_}fyG|wT4=8B$ zp5cWKe}Db3=!_1$KIklcS@&Sk_K+jH`9h+R*Gpl zg{sp07GsK#;23BkG*^+&W}xlwtj~I8Qg()@7oOHD2>66mPXZPW4%^FL{1*%saim

r79v(DUwt#9v6qJU{ktsTPDOpiRK2y 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 literal 0 HcmV?d00001 diff --git a/docs/reference/local-authority-provider-selection.md b/docs/reference/local-authority-provider-selection.md index ae2ab6d2b2..2fb8bd79a4 100644 --- a/docs/reference/local-authority-provider-selection.md +++ b/docs/reference/local-authority-provider-selection.md @@ -59,64 +59,132 @@ contract; PostgreSQL's real-server qualification remains a separate gate. See [reviewed promotion and recovery](reviewed-coordination-promotion.md) for the explicit saved-plan CLI journey. -## New Goal storage target (machine setting) - -The **New Goal storage target** setting fixes a File or SQLite target at -creation. It is not live inheritance, automatic promotion, or an existing-Goal -migration. Until separately reviewed promotion, the existing legacy source is -still authoritative. After promotion the selected provider serves canonical -Todo/lease state; Run artifacts and other independently owned stores are not -moved by this preference. +## New Goal authority (machine setting) + +**Settings → Capability Center → Device defaults → New Goal authority** selects +File or SQLite independently of the execution policy. Enable **Create canonical +authority** to initialize future empty Goals directly with `soft_claim` or +`hard_lease`. Agents inherit the Goal policy; this grants no tool, repository, +scheduler, account or network permission and does not migrate existing data. + +Canonical creation is default-off. An absent namespace, the released v0 shape, +or v1 with `canonical_creation=false` retains the post-promotion target behavior. +Opening v0 in the guided editor previews a v1 envelope upgrade with creation +still disabled. The CLI continues to accept v0. + +Save this namespace document as `goal-storage.json`: + +```json +{ + "schema_version": "loopx_goal_storage_defaults_v1", + "new_goal_provider": "sqlite", + "canonical_creation": true, + "new_goal_handoff_mode": "hard_lease" +} +``` -Use **Settings → Capability Center → Device defaults → New Goal storage target** -or the revision-checked CLI: +Preview, apply the exact reviewed revision, then inspect and create: ```sh -# goal-storage.json: -# {"schema_version":"loopx_goal_storage_defaults_v0","new_goal_provider":"sqlite"} loopx machine-config preview --namespace goal_storage --config-json goal-storage.json loopx machine-config apply --namespace goal_storage --config-json goal-storage.json \ --expected-plan-revision PLAN_REVISION --execute loopx machine-config inspect loopx bootstrap --project ./new-project --goal-id new-project --dry-run +loopx bootstrap --project ./new-project --goal-id new-project +loopx todo list --goal-id new-project +``` + +Creation reports `storage_selection.authority_initialized=true`, its original +operation and provider receipt, and `legacy_writer_fenced=true`. Complete Todo +reads report canonical `source_authority` and `legacy_fallback_used=false`. +Saving a preference or publishing a registry entry alone is not successful +creation. Run artifacts and independently owned stores do not move. + +CLI and App reuse one typed creation owner. The registry atomically freezes the +original operation and target before initialization. The owner verifies the +registered source, complete empty Todo/lease inventory and current bytes under +the existing writer locks. It engages a creation fence, commits the native +projection and original receipt, and durably records completion before success. +Fresh creation has no shadow qualification and never fabricates capture events. +Nonempty or captured sources require reviewed migration. + +After interruption, rerun the same CLI bootstrap, or use **Retry original +operation** on the App card. Changed device defaults cannot retarget that +operation. Recovery must match its operation and workspace; a competing creator +cannot adopt it. The original receipt survives later native writes, so replay +cannot erase Todos or repeat their creation. An unavailable selected provider +fails visibly without Markdown fallback. Lost completed authority requires full +backup recovery and cannot be treated as empty creation. Generic forced +bootstrap cannot rebuild an opted-in Goal. + +

+Settings and recovery views / 设置与恢复界面 + +Synthetic workspace data; the settings use a real isolated backend. The first +view is the released v0 editor; the remaining views show the proposed v1 path. + +Before: the provider setting only chooses the post-promotion target. + +![Released target-only editor](images/new-goal-authority/before.png) + +After: provider, explicit canonical opt-in and execution policy, with applied +configuration readback. + +![Canonical creation settings and readback](images/new-goal-authority/after.png) + +An unsupported `legacy` policy is rejected before apply; the previous valid +configuration remains. Correcting the policy allows preview and apply again. + +![Invalid policy rejected](images/new-goal-authority/invalid-policy.png) + +The same device settings at a narrow viewport: + +![Narrow device settings](images/new-goal-authority/mobile.png) + +
+ +To disable future canonical creation, preview and apply the same v1 document +with `canonical_creation=false`. To remove the whole preference: + +```sh +loopx machine-config remove --namespace goal_storage +loopx machine-config remove --namespace goal_storage \ + --expected-plan-revision PLAN_REVISION --execute +loopx machine-config inspect ``` -The preview reports `storage_target`; creation reports `storage_selection` with -`promotion_performed=false`. CLI and App creation share the same bootstrap -owner. Creation stores its intent before provider initialization, so retry after -interruption uses the same target even if the machine preference changed. -If App creation fails during initialization, use **Retry original operation** -on that creation card. It resumes the recorded target before adding initial -Todos or starting a Turn. A persistent initialization failure remains an error; -the presence of a registry entry alone is not successful creation. Recovery must -match the original App operation and its validated workspace. Registration -records `creation_operation_id` atomically with the Goal; a competing creation -of the same id, even in the same workspace, is rejected before initialization -or initial Todos. The create-only check is repeated under the registry lock. -Older incomplete cards without this binding require inspection of the existing -Goal and its canonical bootstrap/recovery path; they cannot adopt it by id. -Already-applied cards continue to return their original receipt. -Reconnecting an existing Goal, including an implicit File Goal, does not adopt -a newer machine default. Importing existing Markdown does not count as a new -empty Goal. Explicit provider selection never falls back on failure. - -Without this namespace, existing behavior remains unchanged. To stop applying -the preference to future Goals, preview `loopx machine-config remove ---namespace goal_storage`, then use its returned plan revision with `--execute`. -Configuration rollback also affects future creation only. Neither operation -switches existing storage or removes data. A File target keeps implicit File -routing until a committed authority exists; it does not create a dangling -identity-bound selector for an empty File document. - -For already-promoted Goals use the [reviewed File/SQLite cutover](file-authority-state-log.md#reviewed-filesqlite-cutover): -stop writers, settle leases, review the saved plan, retain verified backups, -then migrate. Reverse migration must preserve newer writes. New-Goal defaults -and current-provider selection are separate facts. This opt-in setting does -not change the release default or complete D2/D3 qualification. - -### 新 Goal 的目标存储 - -这是创建时固定的目标,审核晋升后才接管 canonical Todo/lease;不是“所有数据 -已经存入 SQLite”。更改默认值只影响此后创建的空 Goal,既有 Goal、重新连接或 -导入已有 Markdown 均不自动切换。创建中断后重试沿用已记录的选择。关闭或回滚 -设置不迁回数据;已有 Goal 需停止写入、结算租约,走独立的备份和审核迁移流程。 +Use the removal preview's revision. Rollback also affects future creation only; +neither operation switches existing storage, removes its fence or reopens its +old writer. Reconnection and import keep their recorded route. Existing Markdown +Goals use [reviewed promotion and recovery](reviewed-coordination-promotion.md); +already-canonical Goals use the [reviewed File/SQLite cutover](file-authority-state-log.md#reviewed-filesqlite-cutover). +Retain verified backups, stop writers, settle leases and preserve newer writes +on reverse migration. Supported historical backup/format/receipt readers remain. + +This opt-in path does not close full existing-Goal upgrade, D2 sustained +qualification or the release-default decision. Trial admission and release +default admission remain separate; the existing RFC acceptance is unchanged. + +### 新 Goal 的权威存储 + +在“设置 → 能力中心 → 此设备默认 → 新 Goal 的权威存储”中,分别选择 File/SQLite +和 `soft_claim`/`hard_lease`,并显式启用 canonical 创建。默认关闭;旧 v0 或关闭 +状态仍只固定晋升后的目标。表单以关闭状态预览 v1 升级,CLI 继续接受旧格式。 +Agent 继承 Goal 策略;此设置不授予工具、仓库、账户或网络权限。 + +CLI 使用上面的完整 JSON 和 preview/apply/inspect/bootstrap 命令;App 用现有 +表单预览、应用并读回。成功须含 `authority_initialized=true`、原创建回执和已 +读回的写入 fence;Todo list 须显示 canonical provider。保存偏好或出现 registry +记录本身不算成功,也不代表 Run 等独立存储已经迁移。 + +失败时重新执行原 bootstrap,或在 App 创建卡上“重试原操作”。目标和身份已固定, +后续默认值不能改写它。旧写入先被 fence;原生提交和回执核对后才持久记录完成。 +已有 Todo、租约历史或 capture 的源须走独立审核迁移,不伪造 shadow 资格。完成 +后的存储丢失须恢复完整备份,不能重新创建空库;通用 force 不能重建。原回执在 +后续写入后仍可读回,重试不得丢失或重复 Todo。 + +关闭或按上面的 remove 预览/执行命令删除偏好,只影响之后新建;不会迁回已有数据、 +删除 fence 或重新开放旧 writer。既有 Goal 升级仍需备份、停止写入、结算租约和 +审核计划;反向迁移须保留新增写入。受支持的旧备份、格式和原回执恢复能力保留。 +此路径不代表完整升级、D2 长期资格或发布默认已通过。 From 8a0763124bc4f9194e9b200c03df5fc26147058e Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Sun, 4 Oct 2026 21:11:51 +0800 Subject: [PATCH 3/4] test(coordination): register creation fence digest consumer Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- tests/control_plane_ts/content_digest_single_owner.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/control_plane_ts/content_digest_single_owner.test.ts b/tests/control_plane_ts/content_digest_single_owner.test.ts index 1992d56fe8..569e2ae329 100644 --- a/tests/control_plane_ts/content_digest_single_owner.test.ts +++ b/tests/control_plane_ts/content_digest_single_owner.test.ts @@ -100,6 +100,7 @@ const CANONICAL_CONSUMERS = [ "control_plane/collaboration/semantic_request.ts", "control_plane/coordination/authority_archive_read.ts", "control_plane/coordination/authority_source.ts", + "control_plane/coordination/legacy_writer_fence.ts", "control_plane/coordination/local_authority_migration.ts", "control_plane/coordination/local_authority_shadow.ts", "control_plane/coordination/local_authority_shadow_outbox.ts", From 7f1b231fb33a5843ae0cc87fcb13de9e792949ad Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Sun, 4 Oct 2026 22:51:48 +0800 Subject: [PATCH 4/4] fix(goals): replay canonical bootstrap before compatibility reads Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- loopx/bootstrap.py | 31 ++++++-- .../coordination/new_goal_initialization.ts | 34 +++++---- .../project_registry_io_manifest_v1.json | 2 +- .../test_new_goal_storage_defaults.py | 70 +++++++++++++++++++ 4 files changed, 115 insertions(+), 22 deletions(-) diff --git a/loopx/bootstrap.py b/loopx/bootstrap.py index 9b154dcca1..c375d36891 100644 --- a/loopx/bootstrap.py +++ b/loopx/bootstrap.py @@ -392,18 +392,22 @@ def bootstrap_project( if creation_operation_id is not None: goal_entry["creation_operation_id"] = creation_operation_id previous_goal = find_registry_goal(registry, goal_id) + if creation_operation_id is not None and previous_goal is not None: + raise GoalCreationConflictError("Goal id was registered by another operation") storage_target = ((previous_goal or {}).get("coordination") or {}).get("storage_target") if previous_goal is None and not state_file.exists(): storage_target = new_goal_storage_target(runtime_root) if storage_target is not None: goal_entry.setdefault("coordination", {})["storage_target"] = storage_target canonical_creation = (storage_target or {}).get("schema_version") == "loopx_new_goal_storage_target_v1" + if canonical_creation and previous_goal is not None and force: + raise ValueError("Canonical creation cannot rebuild existing state; restore or migrate through its owning operation") if canonical_creation: goal_entry["creation_operation_id"] = creation_operation_id or (previous_goal or {}).get("creation_operation_id") or f"goal-create:{uuid4().hex}" registry, registry_goal_action = merge_goal(registry, goal_entry, force=force) state_exists = state_file.exists() - state_action = "created" + state_action = "kept-existing" if canonical_creation and previous_goal is not None else "created" if state_exists and force and preserve_todos: state_action = "kept-existing-preserve-todos" elif state_exists and not force: @@ -413,7 +417,7 @@ def bootstrap_project( repaired_state_text: str | None = None repaired_todo_source_roles: list[str] = [] - if state_exists and state_action in { + if not canonical_creation and state_exists and state_action in { "kept-existing", "kept-existing-preserve-todos", }: @@ -438,7 +442,7 @@ def bootstrap_project( } force_bootstrap_warning = None declared_handoff_mode = HANDOFF_MODE_LEGACY - if state_exists and force: + if not canonical_creation and state_exists and force: # A forced rebuild replaces todos, never the goal's handoff contract: # the declared mode is carried into the rewritten front matter, and an # invalid declaration fails closed before anything is rewritten. @@ -529,6 +533,13 @@ def bootstrap_project( shadow_capture = None shadow_evidence: dict[str, Any] = {} if not dry_run: + # Reconnect enters the same typed receipt owner before compatibility + # reads or rebuild checks. It alone decides whether unfinished creation + # needs a full source capture; completed authority never needs Markdown. + if canonical_creation and previous_goal is not None: + storage_selection = initialize_goal_storage_target(runtime_root, + {**previous_goal, "state_file": str(state_file)}, registry_path=registry_path) + canonical_reconnect = storage_selection is not None and storage_selection.get("authority_initialized") is True canonical_bootstrap_transport = canonical_creation with project_registry_transaction( registry_path, @@ -552,7 +563,7 @@ def bootstrap_project( goal_entry["coordination"]["storage_target"] = frozen frozen_target = goal_entry.get("coordination", {}).get("storage_target") or {} canonical_creation = frozen_target.get("schema_version") == "loopx_new_goal_storage_target_v1" - if canonical_creation and force and state_file.exists(): + if canonical_creation and force and (current_goal is not None or state_file.exists()): raise ValueError("Canonical creation cannot rebuild existing state; restore or migrate through its owning operation") # A first explicit bootstrap has no previous Goal authority to fence. @@ -564,11 +575,17 @@ def bootstrap_project( if isinstance(previous_goal, dict) and previous_goal.get("id"): require_legacy_state_replacement_allowed(runtime_root=previous_root, goal_id=str(previous_goal["id"]), goal=previous_goal) - original = state_file.read_text(encoding="utf-8") if state_file.exists() else "" - if force or not state_file.exists(): + original = state_file.read_text(encoding="utf-8") if not canonical_reconnect and state_file.exists() else "" + if not canonical_reconnect and (force or not state_file.exists()): require_legacy_state_replacement_allowed(runtime_root=runtime_root, goal_id=goal_id, goal=current_goal) - state_action = ("kept-existing-preserve-todos" if force and preserve_todos else "kept-existing") if state_file.exists() and (not force or preserve_todos) else "replaced" if state_file.exists() else "created" + if canonical_reconnect: + state_action = "kept-existing" + else: + state_action = ("kept-existing-preserve-todos" if force and preserve_todos else "kept-existing") if state_file.exists() and (not force or preserve_todos) else "replaced" if state_file.exists() else "created" + for action in actions: + if action.get("path") == str(state_file): + action["action"] = state_action planned = original if state_action in {"created", "replaced"}: declared_handoff_mode = goal_handoff_mode(original) if original and force else frozen_target.get("handoff_mode", HANDOFF_MODE_LEGACY) diff --git a/loopx/control_plane/coordination/new_goal_initialization.ts b/loopx/control_plane/coordination/new_goal_initialization.ts index e9b8687137..7eb1daa96b 100644 --- a/loopx/control_plane/coordination/new_goal_initialization.ts +++ b/loopx/control_plane/coordination/new_goal_initialization.ts @@ -4,8 +4,9 @@ import {readFile} from "node:fs/promises"; import {resolve} from "node:path"; import type {JsonObject} from "../effect_program.ts"; +import {EffectRuntimeConflictError, EffectRuntimeRequestError} from "../effect_runtime_errors.ts"; import {canonicalAuthorityBytes, canonicalAuthoritySha256, requireAuthorityStoreId} from "./authority_store_codec.ts"; -import {openLocalAuthorityStoreHandle, requireLocalAuthorityRuntimeRoot, selectLocalAuthorityTarget} from "./local_authority_provider.ts"; +import {LocalAuthorityProviderOpenError, openLocalAuthorityStoreHandle, requireLocalAuthorityRuntimeRoot, selectLocalAuthorityTarget} from "./local_authority_provider.ts"; import {engageLegacyCoordinationWriterFenceUnderLocks, completeNewGoalWriterFenceUnderLocks, loadLegacyCoordinationWriterFence, NEW_GOAL_WRITER_FENCE_SCHEMA} from "./legacy_writer_fence.ts"; import {readShadowManagementState, withShadowMaintenanceLock} from "./shadow_management.ts"; import {verifyShadowSourceSnapshot, withShadowSourceLocks, type ShadowRequest} from "./runtime_shadow.ts"; @@ -41,15 +42,15 @@ export async function initializeNewGoalAuthority(raw: JsonObject): Promise withShadowSourceLocks(request, async () => { await validateRegistration(); const managed = await readShadowManagementState(root, goalId); - if (managed?.status === "active") throw new Error("Existing shadow capture requires reviewed migration"); - const opened = await openLocalAuthorityStoreHandle(root, goalId); + if (managed?.status === "active") throw new EffectRuntimeConflictError("Existing shadow capture requires reviewed migration"); + const opened = await openLocalAuthorityStoreHandle(root, goalId).catch((error: unknown) => { + if (error instanceof LocalAuthorityProviderOpenError) { + throw new EffectRuntimeConflictError(`${error.message}; restore the complete authority backup, never recreate it`); + } + throw error; + }); const head = await opened.store.loadAuthority(); const persisted = await loadLegacyCoordinationWriterFence(root, goalId); - if (persisted.status === "failed") throw new Error(persisted.reason); + if (persisted.status === "failed") throw new EffectRuntimeConflictError(persisted.reason); if (persisted.status === "loaded" && !canonicalAuthorityBytes({...persisted.fence, creation_completed: false}).equals(canonicalAuthorityBytes(fence))) { - throw new Error("Canonical creation writer fence belongs to a different operation"); + throw new EffectRuntimeConflictError("Canonical creation writer fence belongs to a different operation"); } let readback = await readPromotionReceipt(opened.store, identity); if (!readback.matched) { if (persisted.status === "loaded" && persisted.fence.creation_completed === true) { - throw new Error("Completed canonical creation authority is unavailable; restore its complete backup, never recreate it"); + throw new EffectRuntimeConflictError("Completed canonical creation authority is unavailable; restore its complete backup, never recreate it"); } - if (head.status !== "missing") throw new Error(`Canonical creation cannot replace authority: ${readback.reason_code}`); + if (head.status !== "missing") throw new EffectRuntimeConflictError(`Canonical creation cannot replace authority: ${readback.reason_code}`); if (!capturedSource) return {source_capture_required: true}; // A creation intent is never a migration waiver. Validate the complete // real source and inventory under its locks; nonempty sources fail closed. @@ -79,17 +85,17 @@ export async function initializeNewGoalAuthority(raw: JsonObject): Promise.bootstrap_project::codec_transaction:project_registry_transaction#1", - "line": 533, + "line": 544, "column": 14, "kind": "codec_transaction", "api": "project_registry_transaction", diff --git a/tests/control_plane/test_new_goal_storage_defaults.py b/tests/control_plane/test_new_goal_storage_defaults.py index 35a0b0ed3e..b5531396f0 100644 --- a/tests/control_plane/test_new_goal_storage_defaults.py +++ b/tests/control_plane/test_new_goal_storage_defaults.py @@ -93,6 +93,76 @@ def test_opted_in_creation_has_complete_canonical_authority_and_frozen_policy(en assert reconnect["storage_selection"]["handoff_mode"] == mode +@pytest.mark.parametrize("provider", ["file", "sqlite"]) +@pytest.mark.parametrize("mode", ["soft_claim", "hard_lease"]) +@pytest.mark.parametrize("compatibility_source", ["missing", "unreadable"]) +def test_completed_cli_creation_replays_without_compatibility_source(environment, provider, mode, compatibility_source): + from loopx.control_plane.coordination.local_authority import read_canonical_todos_if_promoted + + configure, bootstrap, _, project, runtime = environment + configure(provider, mode=mode) + created = bootstrap() + registry = project / ".loopx/registry.json" + added = subprocess.run([sys.executable, "-m", "loopx.entrypoint", "--registry", str(registry), + "--runtime-root", str(runtime), "--format", "json", "todo", "add", "--goal-id", "first", + "--role", "agent", "--text", "Preserve a later native Todo"], capture_output=True, text=True, timeout=60) + assert added.returncode == 0, added.stdout + added.stderr + before = read_canonical_todos_if_promoted(runtime_root=runtime, goal_id="first", include_leases=True) + assert len(before["todos"]) == 1 + state = Path(created["state_file"]) + if compatibility_source == "missing": + state.unlink() + else: + state.write_bytes(b"\xff") + configure("file" if provider == "sqlite" else "sqlite", mode="hard_lease" if mode == "soft_claim" else "soft_claim") + restart_effect_runtime() + recovered = bootstrap() + selection = recovered["storage_selection"] + assert selection["creation_operation_id"] == created["storage_selection"]["creation_operation_id"] + assert selection["provider_revision"] == created["storage_selection"]["provider_revision"] + assert selection["handoff_mode"] == mode + assert selection["provider"] == provider + assert selection["legacy_fallback_used"] is False + assert recovered["state_action"] == "kept-existing" + assert next(action for action in recovered["actions"] if action["path"] == str(state))["action"] == "kept-existing" + assert read_canonical_todos_if_promoted(runtime_root=runtime, goal_id="first", include_leases=True) == before + assert not state.exists() if compatibility_source == "missing" else state.read_bytes() == b"\xff" + assert bootstrap("first", "--dry-run")["state_action"] == "kept-existing" + rejected = bootstrap("first", "--force", expected_code=1) + assert "cannot rebuild" in rejected["error"] + assert read_canonical_todos_if_promoted(runtime_root=runtime, goal_id="first", include_leases=True) == before + + +@pytest.mark.parametrize("provider", ["file", "sqlite"]) +@pytest.mark.parametrize("failure", ["missing_authority", "changed_operation", "changed_source"]) +def test_cli_creation_recovery_cannot_recreate_or_adopt_authority(environment, provider, failure): + configure, bootstrap, _, project, runtime = environment + configure(provider, mode="hard_lease") + created = bootstrap() + restart_effect_runtime() + state = Path(created["state_file"]) + state.unlink() + digest = hashlib.sha256(b"first").hexdigest() + authority = runtime / "authority" / f"{provider}-v0" / ( + f"authority-{digest}.sqlite" if provider == "sqlite" else f"authority-store-{digest[:16]}.json") + before = authority.read_bytes() + if failure == "missing_authority": + authority.rename(authority.with_suffix(".unavailable")) + elif failure == "changed_operation": + registry = project / ".loopx/registry.json" + data = json.loads(registry.read_text()) + data["goals"][0]["creation_operation_id"] = "another-creation-operation" + registry.write_text(json.dumps(data)) + wrong_source = project / "another-source.md" + rejected = bootstrap("first", *( ["--state-file", str(wrong_source)] if failure == "changed_source" else []), expected_code=1) + assert rejected["ok"] is False + expected_error = {"missing_authority": "restore", "changed_operation": "different operation", "changed_source": "not bound"}[failure] + assert expected_error in rejected["error"], rejected + assert not authority.exists() if failure == "missing_authority" else authority.read_bytes() == before + assert not state.exists() + assert not wrong_source.exists() + + def test_pending_creation_uses_frozen_intent_after_machine_default_changes(environment): configure, bootstrap, marker, project, _ = environment # Independently model the durable boundary: registry/state published, selector absent.