--- handoff_version: 1 handoff_status: final source_revision: 3155be0e275437a8eedc1aa93497955a7d30465b rollback_revision: 3155be0e275437a8eedc1aa93497955a7d30465b task13_complete_log_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/complete.log task13_complete_log_sha256: 30d86f5364f12dd9f2bd77c6d7b44c9689d06454e43860321228a5cbd5783821 pre_deletion_receipt_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/pre-deletion-transfer-receipt-v1.md pre_deletion_receipt_sha256: bc1bf9eec498ebd8544eaf847f9f0a721436a41c9cb83c65d1aa6a5acfa460ba pre_deletion_audit_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/pre-deletion-audit.log pre_deletion_audit_sha256: 01be31c584e4ac16a8c92b8aae6bd9af74386b5b5596fade51d39bfb2cc39a85 task13_verifier_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/verify-pre-deletion-receipt-v1.py task13_verifier_sha256: 0efd71c57dedd61d4c4ab59bb36b6ab66f955b6a1af866914a617aac8891dd25 original_manifest_artifact_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/iop-agent-chronos-ownership-manifest.tsv original_manifest_sha256: d8598134dee99d96fc05a045091dd3d8932d4708d2c980c2a78c8b11825d2ccf original_manifest_row_count: 300 original_manifest_file_count: 290 original_manifest_state_count: 10 original_manifest_retain_generic_count: 135 task03_historical_row_count: 303 task03_historical_file_count: 293 task03_historical_state_count: 10 task03_universe_residuals: 0 task03_duplicate_rows: 0 boundary_delta_artifact_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/boundary-disposition-delta-v1.tsv boundary_delta_sha256: c807d2aa87c0ffb54c3c43bb244be91926206b6a7a40ae8abf9d4d39b9fa667f boundary_delta_row_count: 137 boundary_addendum_artifact_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/boundary-surface-addendum-v1.tsv boundary_addendum_sha256: c678d415daf01a3f68260a3912ffc0b4596f6b03d4f20a38cf796deb9623b670 boundary_addendum_row_count: 137 effective_matrix_artifact_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/effective-disposition-matrix-v1.tsv effective_matrix_sha256: 34a85a470020329c79b1ffb61810ecd1aca5b795abdf1957d1c12de7fcf3975a effective_matrix_row_count: 437 state_schema_artifact_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/iop-agent-chronos-transfer-state-v1.schema.json state_schema_sha256: e509b541b26b54401a33a3a1ae0ea8b8581933d64d9f1465bb714969c7eb63d4 state_fixture_artifact_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/iop-agent-chronos-transfer-state-v1.json state_fixture_sha256: 8a71dcc22cee5ed9990cb3a204ca8bc3bc8ffb949618a8a8bb6664a500016148 bundle_receipt_artifact_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/13+09,10_receipt_lock_audit/iop-agent-chronos-transfer-bundle-receipt-v1.json bundle_receipt_sha256: dab36aac1e3876b7b6a80d0b26a8e89ed59acd06d578db825e0cd79c290625de state_original_manifest_logical_id_count: 10 state_addendum_logical_id_count: 2 state_logical_id_count: 12 state_logical_ids_sha: 9bce499e286514baeb7ad9bc7c59119a3b5725f69763706dfeba06569d7404b9 state_fixture_record_count: 12 state_fixture_category_count: 8 state_fixture_quarantine_count: 1 real_state_export_location: bundle-member:acceptance-v1/state/state-export-v1.json real_state_export_sha256: 93e4e19d67a6c29fa0cad8517cf2ca68cd94742bbc1ed5d3eedd3ae079fab74f real_state_export_record_count: 12 real_state_export_category_count: 8 real_state_export_quarantine_count: 1 bundle_location: withheld-owner-local bundle_sha256: dd4bea1cd1d39e679f17bcd701d12274eee8298f4065b4f2442b615755439d94 task09_complete_log_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/09+08_remove_agent_ui_close/complete.log task09_complete_log_sha256: 580fb464b6c0a805a3a9c836ad29328fdc76a9b79cfa1e38660d8f63b26612a6 task10_complete_log_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/10+09_neutral_execution/complete.log task10_complete_log_sha256: 2f9a2583181ec2fd8d972bfa6a2d1cc33e25e8c8e92f32862f553a07b04e5fbe import_graph_audit_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/10+09_neutral_execution/node-boundary-audit.log import_graph_audit_sha256: 462bc1566b37327470d1faa23b1adf7311a5ede12d43364cd0f379bf229db23e import_graph_residuals: 0 task14_complete_log_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/14+13_remove_migration_surface/complete.log task14_complete_log_sha256: 88f01218275429a1465553ba9bfdf3c55fdee21b589f3cb486537d4804c39efc task14_removal_audit_path: agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/14+13_remove_migration_surface/migration-removal-audit.log task14_removal_audit_sha256: dad20631157fd35c461e7c72992462a396040aefc19c894b3736eef3a5b48659 task14_removal_status: pass removed_target_count: 12 pre_delete_digest_count: 12 post_delete_absence_count: 12 final_transfer_remove_residuals: 0 final_retained_path_mismatches: 0 final_renamed_source_residuals: 0 final_unclassified_paths: 0 final_duplicate_paths: 0 provider_node_regression: pass full_go_regression: pass readability_audit: pass forbidden_surface_scan: pass iop_node_owner: model-provider-device chronos_connection_surfaces: 0 cli_agent_terminal_workspace_surfaces: 0 chronos_repository_mutations: 0 external_mutations: 0 canonical_promotion: applied staging_promotion_commit: 7b90b7e5af9035fae2b5349c65eb322096d21b1b canonical_base_commit: c3a24ec5febab9fc978fd62392efcb6c96e12ec9 canonical_promotion_commit: c8e98d4e10b30114de7bafe426a4045abd6c1205 canonical_promotion_verified_at: 2026-08-02T11:42:32Z staging_boundary_correction_commit: 7cc9f2d142fac863eff173515f2a81e0a5c9e0f4 canonical_boundary_correction_commit: 81243284cb89206911ec45e99f80701b591c88ae canonical_boundary_correction_verified_at: 2026-08-02T12:13:14Z canonical_origin_dev_commit: c3a24ec5febab9fc978fd62392efcb6c96e12ec9 canonical_promotion_push_status: not-pushed canonical_user_roadmap_restore_status: pass canonical_user_roadmap_path_count: 3 canonical_recovery_patch_initial_path: /tmp/iop-canonical-promotion.QOCOar/canonical-roadmap.patch canonical_recovery_patch_initial_sha256: 1f1afe533e910b6311390071e07799bf6cc24ca742853bb45a3eceb3da1d4575 canonical_recovery_stash_initial_commit: a91e4af2bc23c7fab2ef0ea026e2b453e9393848 canonical_recovery_stash_initial_name: iop-canonical-promotion-roadmap-20260802T102956Z canonical_recovery_patch_prepromotion_path: /tmp/iop-canonical-promotion.QOCOar/canonical-roadmap-prepromotion-20260802T112929Z.patch canonical_recovery_patch_prepromotion_sha256: 314132fd4943d5a49e47a0fd499c39761bf4ff65f725f129c3a949f7e2927db6 canonical_recovery_stash_prepromotion_commit: ff81ecb5e8b16fc81ecce4273afe24ff06236287 canonical_recovery_stash_prepromotion_name: iop-canonical-promotion-roadmap-20260802T112929Z integration_conflict_inventory_path: /tmp/iop-canonical-promotion.QOCOar/integration-unmerged.txt integration_conflict_inventory_sha256: 15e564744e83accd74981a5976432d14d8638815cab0fefc1d1eaabe97a4aca4 integration_conflict_count: 34 integration_unexpected_conflicts_path: /tmp/iop-canonical-promotion.QOCOar/unexpected-conflicts.txt integration_unexpected_conflicts_sha256: 15e564744e83accd74981a5976432d14d8638815cab0fefc1d1eaabe97a4aca4 integration_qualification_worktree: /config/workspace/iop-canonical-integration integration_evidence_directory: /tmp/iop-canonical-promotion.QOCOar/evidence canonical_full_go_regression: pass canonical_flutter_test_count: 44 canonical_flutter_regression: pass canonical_web_build: pass canonical_control_plane_edge_wire: pass canonical_credential_slot_smoke: pass canonical_readability_audit: pass canonical_reconnect_diagnostic: pass canonical_generation_idempotency: pass canonical_provider_only_boundary_audit: pass agent_ui_reconciliation: pass agent_ui_sync_state_sha256: abce070a46563ebd9b45599882c91814ac1236966c4d3c6a53ce3dbb840f1788 downstream_lock: chronos:chronos-architecture-ownership-boundary downstream_lock_status: enable milestone_archive_status: completed milestone_archived_at: 2026-08-02T12:34:51Z staging_lock_identity: iop-s1:agent-roadmap/phase/automation-runtime-bridge/milestones/iop-agent-chronos-extraction-decoupling.md staging_lock_result: none canonical_lock_identity: iop:agent-roadmap/phase/automation-runtime-bridge/milestones/iop-agent-chronos-extraction-decoupling.md canonical_lock_result: rely-on:chronos:chronos-architecture-ownership-boundary --- # Handoff: Chronos Extraction Decoupling Ownership Boundary > D04 전환 경계 정정: Chronos Server와 독립 Chronos Node가 loop, agent, workspace/tool, terminal/PTY, remote host control을 소유한다. Chronos는 필요할 때 IOP external inference API의 일반 client로 작동할 수 있지만, IOP에는 Chronos bridge, control hook, API, proto, config, target registry가 존재하지 않는다. - 작성일: 2026-07-31 (2026-08-02 D04 정리) - 현재 타겟: IOP standalone surface 제거 및 D04 경계 수립 - Status: canonical promotion verified; milestone closure and archive completed. - 기록 위치: IOP 선행 분리 원본은 IOP Roadmap/SDD에, 완료 뒤 제품 개발 원본은 Chronos Roadmap에 둔다. ## Canonical Promotion Receipt - The reviewed staging commit `7b90b7e5af9035fae2b5349c65eb322096d21b1b` was rebuilt as the single canonical promotion commit `c8e98d4e10b30114de7bafe426a4045abd6c1205` on base `c3a24ec5febab9fc978fd62392efcb6c96e12ec9`. - A post-promotion boundary correction removed the residual standalone-Agent and terminal-session ownership wording from `packages/go/execution/doc.go`, `packages/go/execution/types.go`, and `apps/node/cmd/node/main.go`, and added the `TestRootCmdUsesProviderOnlyDescription` Node CLI regression. It landed as the staging child commit `7cc9f2d142fac863eff173515f2a81e0a5c9e0f4` on parent `7b90b7e5af9035fae2b5349c65eb322096d21b1b` and the canonical child commit `81243284cb89206911ec45e99f80701b591c88ae` on parent `c8e98d4e10b30114de7bafe426a4045abd6c1205`. Both children carry the identical four-path change set and the same stable patch id `2e89dc0ed8a45542531af2e16efaf397dd3b2602`; neither rewrites the reviewed promotion commit, and canonical-only credential support in `types.go` remains untouched. - The exact 34-path conflict inventory is stored at `/tmp/iop-canonical-promotion.QOCOar/integration-unmerged.txt` with SHA-256 `15e564744e83accd74981a5976432d14d8638815cab0fefc1d1eaabe97a4aca4`. Every conflict was resolved in favor of the current managed projection, mTLS, credential-recipient, lease, and provider-runtime boundaries while removing standalone Agent, workspace, terminal, and session ownership. - The canonical `dev` branch was fast-forwarded locally. `origin/dev` remains at the base commit and no push was performed. - All three pre-existing roadmap edits were restored as unstaged user changes. Both patch generations and both retained stash commits above remain available for recovery. - The final integration and canonical verification matrix passed full Go tests, 44 Flutter tests, the Flutter web build, Control Plane/Edge wire checks, deterministic credential-slot smoke profiles, readability audit, reconnect diagnostics, generated-source idempotency, and provider-only forbidden-surface scans. - `console-shell` is reconciled as implemented with no Agent enum, slot, or rail action. The milestone reconciliation record is stored in `agent-ui/.sync-state.json`. - The Milestone and SDD were archived after the canonical verification gates passed, and the Chronos dependency was changed to `enable`. The canonical branch remains local and was not pushed. ## 사용자 확정 사항 1. `/config/workspace/iop-s0`에서 진행했던 `IOP Agent CLI Runtime` Milestone은 기존 범위대로 완료됐다. 2. Chronos Server 및 독립 Chronos Node가 loop/agent/workspace/tool/terminal/PTY/remote host control 소유권을 전적으로 관리한다. 3. Chronos는 IOP external inference API의 일반 client로 작동할 수 있으나, IOP Node는 Chronos bridge나 control hook을 갖지 않는다. 4. Task 10은 `agent-contract/inner/iop-agent-cli-runtime.md`를 물리 삭제한다. 5. evidence 순서는 다음과 같이 관리하며 이 단계에서 최종 완료를 선포하지 않는다: - task 10: contract 원문 및 transitional runtime/CLI provider 물리 삭제 - task 13: effective matrix와 pre-deletion receipt 생성 - task 14: 잔여 migration surface 최종 삭제 - task 15: `HANDOFF.md` final composite receipt 작성 ## 프로젝트 이름과 상징 프로젝트명은 **Chronos**로 확정한다. - 영문 문구: `Chronos — Take your time back.` - 한국어 문구: `일은 맡기고, 시간은 되찾다.` - 저장소 기본명: `chronos` - CLI 기본명: `chronos` - daemon 기본명: `chronosd` - runtime package/product family: `chronos-runtime` ## 최종 방향 Chronos Server 및 독립 Chronos Node가 agent control과 workspace execution을 독립 수행한다. IOP는 external inference API와 model/provider/device execution, cancel, status, usage lifecycle만 제공한다. ```text Chronos Server / Chronos Node -> loop, agent, workspace/tool, terminal/PTY, remote control Chronos -> optional ordinary client of IOP external inference API IOP -> no Chronos bridge/API/proto/config/target/registry/control hook ``` 책임은 다음과 같이 고정한다. | 소유자 | 책임 | |---|---| | `Chronos` | standalone runtime core, CLI/daemon, local control, workflow adapter, durable state/replay, scoped execution | | IOP | external inference API, model/provider execution, cancel, status, usage lifecycle | ## Next Steps and Evidence Sequence 1. Task 10은 `agent-contract/inner/iop-agent-cli-runtime.md`를 물리 삭제한다. 2. Task 13: effective matrix와 pre-deletion receipt 기록. 3. Task 14: 남은 migration surface 최종 삭제. 4. Task 15: `HANDOFF.md` final composite receipt 작성.