iop/HANDOFF.md
toki 4879bcf6f2 docs(roadmap): Chronos 분리 마일스톤을 종료한다
canonical 승격 검증과 Agent UI 정합화 결과를 고정하고 완료된 Milestone과 SDD를 archive해 후속 Chronos 잠금 해제 상태를 보존한다.
2026-08-02 21:52:44 +09:00

197 lines
14 KiB
Markdown

---
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 작성.