audit_schema=iop-agent-chronos-ui-decoupling-v1
agent_ui_validation_invocation=validate-agent-ui(scope=all,repair=true,sync-intent=inherited)
agent_ui_validation_scope=all
agent_ui_validation_repair=true
agent_ui_validation_sync_intent=inherited
agent_ui_validation_result=PASS
agent_ui_user_review=none
agent_ui_remaining_issues=none
standalone_ui_residuals=0
chronos_connection_residuals=0
iop_clean_build=PASS
s03_completion=deferred_to_task_10
pending_task_10=packages/go/agentruntime
pending_task_10=packages/go/agentprovider/cli
pending_task_10=apps/node/internal/node/runtime_bridge.go
pending_task_10=agent-contract/inner/agent-runtime.md
pending_task_10=agent-spec/runtime/edge-node-execution.md
[validate-agent-ui-result]
invocation=validate-agent-ui(scope=all,repair=true,sync-intent=inherited)
result-begin
## agent-ui 검증 결과: PASS
- Scope: all
- Auto Fixed: 없음
- User Review: 없음
- Remaining Issues: 없음
- Checked Files: agent-ui/README.md, agent-ui/.sync-state.json, agent-ui/definition/index.md, agent-ui/definition/views/index.md, agent-ui/definition/views/edges/index.md, agent-ui/definition/views/execution-logs/index.md, agent-ui/definition/views/nodes/index.md, agent-ui/definition/views/overview/index.md, agent-ui/definition/views/runtime/index.md, agent-ui/definition/components/index.md, agent-ui/definition/components/command-action-bar/index.md, agent-ui/definition/components/console-shell/index.md, agent-ui/definition/components/domain-agent-card/index.md, agent-ui/definition/components/edge-detail-list/index.md, agent-ui/definition/components/edge-list/index.md, agent-ui/definition/components/edge-selector/index.md, agent-ui/definition/components/endpoint-card/index.md, agent-ui/definition/components/event-log-entry/index.md, agent-ui/definition/components/node-card/index.md, agent-ui/definition/components/operation-history-list/index.md, agent-ui/definition/components/provider-snapshot-card/index.md, agent-ui/definition/components/status-badge/index.md, agent-ui/frame/index.md
- Sync Intent: inherited
- sync-agent-ui: 생략 (inherited intent 및 완료 상태)
result-end
[/validate-agent-ui-result]
[command:flutter-version]
command-begin
flutter --version
command-end
stdout-begin
Flutter 3.41.5 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 2c9eb20739 (5 months ago) • 2026-03-17 16:14:01 -0700
Engine • hash c1db59d880ca73dd86cec08a6663f287522d9f39 (revision 052f31d115) (4 months ago) • 2026-03-17 20:29:11.000Z
Tools • Dart 3.11.3 • DevTools 2.54.2
stdout-end
stderr-begin

stderr-end
exit=0
[/command:flutter-version]
[command:client-test]
command-begin
make client-test
command-end
stdout-begin
cd apps/client && flutter test
00:00 +0: loading /config/workspace/iop-s1/apps/client/test/app_shell_test.dart
00:01 +0: loading /config/workspace/iop-s1/apps/client/test/app_shell_test.dart
00:02 +0: loading /config/workspace/iop-s1/apps/client/test/app_shell_test.dart
00:03 +0: loading /config/workspace/iop-s1/apps/client/test/app_shell_test.dart
00:04 +0: loading /config/workspace/iop-s1/apps/client/test/app_shell_test.dart
00:05 +0: loading /config/workspace/iop-s1/apps/client/test/app_shell_test.dart
00:05 +0: ... Client App basic rendering and success handshake test            
00:06 +0: ... Client App basic rendering and success handshake test            
00:06 +1: ... Client App opens Edges panel and displays Edge details           
00:06 +2: ... Client App opens Edges panel and displays Edge details           
00:06 +3: ... Client App opens Edges panel and displays Edge details           
00:06 +4: ... Client App opens Edges panel and displays Edge details           
00:07 +4: ... Client App opens Edges panel and displays Edge details           
00:07 +5: ... Client App opens Edges panel and displays Edge details           
00:07 +6: ... runIopClient can skip external integrations                      
00:07 +7: ... opens Nodes panel and displays active Nodes and configurations   
00:07 +8: ... opens Nodes panel and displays active Nodes and configurations   
00:07 +9: ... opens Nodes panel and displays active Nodes and configurations   
00:07 +10: ... opens Nodes panel and displays active Nodes and configurations  
00:07 +11: ... opens Nodes panel and displays active Nodes and configurations  
00:07 +12: ... opens Nodes panel and displays active Nodes and configurations  
00:07 +12: ... Nodes panel displays Provider Catalog for nodes with snapshots  
00:07 +13: ... Nodes panel displays Provider Catalog for nodes with snapshots  
00:07 +13: ... App opens Execution/Logs panel and displays lifecycle events    
00:07 +14: ... App opens Execution/Logs panel and displays lifecycle events    
00:07 +14: ... Client App refresh behavior when selected edge disappears       
00:08 +14: ... Client App refresh behavior when selected edge disappears       
00:08 +15: ... and verifies agents, operations history, and command triggering 
00:08 +16: ... and verifies agents, operations history, and command triggering 
00:08 +17: ... and verifies agents, operations history, and command triggering 
00:09 +17: ... and verifies agents, operations history, and command triggering 
00:09 +18: ... and verifies agents, operations history, and command triggering 
00:09 +19: ... and verifies agents, operations history, and command triggering 
00:09 +20: ... and verifies agents, operations history, and command triggering 
00:09 +21: ... and verifies agents, operations history, and command triggering 
00:09 +22: ... and verifies agents, operations history, and command triggering 
00:09 +23: ... and verifies agents, operations history, and command triggering 
00:09 +24: ... and verifies agents, operations history, and command triggering 
00:09 +25: ... and status=active shows DEGRADED text with yellow color         
00:09 +26: ... and status=active shows DEGRADED text with yellow color         
00:09 +27: ... and status=active shows DEGRADED text with yellow color         
00:09 +28: ... and status=active shows DEGRADED text with yellow color         
00:10 +28: ... and status=active shows DEGRADED text with yellow color         
00:10 +29: ... unsupported or error command responses and shows error banner   
00:10 +30: ... unsupported or error command responses and shows error banner   
00:10 +31: ... parses raw JSON and validates provider_snapshots                
00:10 +32: ... gates agent.status and agent.command without required inputs    
00:10 +33: ... gates agent.status and agent.command without required inputs    
00:10 +34: ... gates agent.status and agent.command without required inputs    
00:10 +35: ... gates agent.status and agent.command without required inputs    
00:10 +36: ... gates agent.status and agent.command without required inputs    
00:10 +36: ... keeps loaded empty history visible while a command is pending   
00:10 +37: ... keeps loaded empty history visible while a command is pending   
00:10 +38: ... keeps loaded empty history visible while a command is pending   
00:10 +38: ... RuntimePanel renders operations empty and fetch error states    
00:11 +38: ... RuntimePanel renders operations empty and fetch error states    
00:11 +39: ... from NexoNotificationHostIntegration connects to UI snackbar    
00:11 +40: ... from NexoNotificationHostIntegration connects to UI snackbar    
00:11 +40: ... stream shows channel-only message when sender is empty          
00:11 +41: ... stream shows channel-only message when sender is empty          
00:11 +41: ... notification stream ignores non-message events (e.g. system)    
00:11 +42: ... notification stream ignores non-message events (e.g. system)    
00:11 +42: All tests passed!
stdout-end
stderr-begin

stderr-end
exit=0
[/command:client-test]
[command:client-build-web]
command-begin
make client-build-web
command-end
stdout-begin
cd apps/client && flutter build web \
	--dart-define=IOP_CONTROL_PLANE_HTTP_URL=http://localhost:18000 \
	--dart-define=IOP_CONTROL_PLANE_WIRE_URL=ws://localhost:19080/client
Compiling lib/main.dart for the Web...                          
Font asset "CupertinoIcons.ttf" was tree-shaken, reducing it from 257628 to 1472 bytes (99.4% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 11304 bytes (99.3% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Compiling lib/main.dart for the Web...                             37.7s
✓ Built build/web
stdout-end
stderr-begin
Wasm dry run succeeded. Consider building and testing your application with the `--wasm` flag. See docs for more info: https://docs.flutter.dev/platform-integration/web/wasm
Use --no-wasm-dry-run to disable these warnings.
stderr-end
exit=0
[/command:client-build-web]
[command:standalone-scan]
command-begin
bash -c 'rg --sort path -n "$1" "${@:2}"; status=$?; test "$status" -eq 1' _ 'IopAgentPanel|IopConsoleSection\.agent|agent_shell|iopDefaultCapabilityPack|IopCapabilityPack|IopCapability\b|agent-panel|views/agent|Agent Shell 구성|IOP 운영/유지보수 agent' --glob '!**/archive/**' apps/client/Dockerfile apps/client/README.md apps/client/lib apps/client/pubspec.yaml apps/client/pubspec.lock apps/client/test/app_shell_test.dart packages/flutter/iop_console agent-ops/rules/project/domain/client/rules.md agent-ui/definition
command-end
stdout-begin

stdout-end
stderr-begin

stderr-end
exit=0
[/command:standalone-scan]
[command:sync-state]
command-begin
python3 -c "import json; from pathlib import Path; s=json.loads(Path('agent-ui/.sync-state.json').read_text()); pending=s['pending_milestone_work']; assert len(pending)==1; assert pending[0]['milestone_path']=='agent-roadmap/phase/automation-runtime-bridge/milestones/iop-agent-chronos-extraction-decoupling.md'; assert pending[0]['status_paths']==['agent-ui/definition/components/console-shell/index.md']; assert s['pending_code_work']==[]"
command-end
stdout-begin

stdout-end
stderr-begin

stderr-end
exit=0
[/command:sync-state]
[command:build-local]
command-begin
make build-local
command-end
stdout-begin
mkdir -p build/bin
GOOS=linux GOARCH=arm64 go build -trimpath -o build/bin/iop-edge ./apps/edge/cmd/edge
mkdir -p build/bin
go build -trimpath -o build/bin/iop-node ./apps/node/cmd/node
stdout-end
stderr-begin

stderr-end
exit=0
[/command:build-local]
[command:full-go]
command-begin
mkdir -p .tmp && TMPDIR=$PWD/.tmp GOTMPDIR=$PWD/.tmp go test -count=1 ./...
command-end
stdout-begin
ok  	iop/apps/control-plane/cmd/control-plane	0.391s
ok  	iop/apps/control-plane/internal/wire	1.684s
ok  	iop/apps/edge/cmd/edge	0.925s
ok  	iop/apps/edge/internal/bootstrap	8.495s
ok  	iop/apps/edge/internal/configrefresh	1.170s
ok  	iop/apps/edge/internal/controlplane	4.730s
ok  	iop/apps/edge/internal/edgecmd	0.706s
ok  	iop/apps/edge/internal/edgevalidate	0.412s
ok  	iop/apps/edge/internal/events	0.396s
ok  	iop/apps/edge/internal/input	0.152s
ok  	iop/apps/edge/internal/input/a2a	0.140s
ok  	iop/apps/edge/internal/node	0.117s
ok  	iop/apps/edge/internal/openai	7.511s
ok  	iop/apps/edge/internal/opsconsole	0.120s
ok  	iop/apps/edge/internal/service	5.982s
ok  	iop/apps/edge/internal/transport	4.837s
ok  	iop/apps/node/cmd/node	0.325s
ok  	iop/apps/node/internal/adapters	0.159s
?   	iop/apps/node/internal/adapters/mock	[no test files]
ok  	iop/apps/node/internal/adapters/ollama	0.037s
ok  	iop/apps/node/internal/adapters/openai_compat	0.227s
ok  	iop/apps/node/internal/adapters/vllm	0.160s
ok  	iop/apps/node/internal/bootstrap	2.015s
ok  	iop/apps/node/internal/node	1.255s
ok  	iop/apps/node/internal/router	0.562s
ok  	iop/apps/node/internal/store	0.164s
ok  	iop/apps/node/internal/transport	5.622s
?   	iop/apps/worker/cmd/worker	[no test files]
ok  	iop/packages/go/agentprovider/cli	29.728s
?   	iop/packages/go/agentprovider/cli/internal/testutil	[no test files]
ok  	iop/packages/go/agentprovider/cli/status	39.875s
ok  	iop/packages/go/agentruntime	0.650s
ok  	iop/packages/go/audit	0.020s
?   	iop/packages/go/auth	[no test files]
ok  	iop/packages/go/config	1.626s
?   	iop/packages/go/events	[no test files]
ok  	iop/packages/go/hostsetup	0.145s
?   	iop/packages/go/jobs	[no test files]
?   	iop/packages/go/metadata	[no test files]
ok  	iop/packages/go/observability	0.097s
?   	iop/packages/go/policy	[no test files]
ok  	iop/packages/go/streamgate	0.904s
?   	iop/packages/go/version	[no test files]
?   	iop/proto/gen/iop	[no test files]
ok  	iop/scripts/inventory-query	0.019s
stdout-end
stderr-begin

stderr-end
exit=0
[/command:full-go]
[command:chronos-scan]
command-begin
bash -c 'rg --sort path -n "$1" "${@:2}"; status=$?; test "$status" -eq 1' _ 'git\.toki-labs\.com/toki/chronos|/config/workspace/chronos|chronos[_-](bridge|node|server)|CHRONOS_' apps packages cmd proto configs
command-end
stdout-begin

stdout-end
stderr-begin

stderr-end
exit=0
[/command:chronos-scan]
