Summary
닫힌 문을 hard route constraint로 유지하면서, 군중이 문폐쇄를 감지하고 잠깐 대기/감속 후 우회하거나 분산 대기하도록 개선합니다. #218의 scenario runtime interaction v2 안에서 Fire/Smoke와 독립된 Door Closure behavior를 담당합니다.
Parent Issue
#218
Area
Domain
Target Sprint
Sprint 3
Scope
connectionBlockShouldBeActive 의미를 중앙화합니다: empty intervals는 항상 폐쇄, finite는 [start,end], end <= start는 start 이후 계속 폐쇄입니다.
- 다음 planned connection이 닫혔을 때 closure reaction state에 감지/ready 시각을 기록합니다.
closureAware == false 동안 접근 속도를 감속하고, ready 이후 대체 경로를 탐색합니다.
- 대체 경로가 없으면 문 앞 고정 대신 현재 zone 안의 분산 hold target으로 이동합니다.
- finite closure가 끝나면 no-exit 상태에서 재시도할 수 있게 합니다.
- Fire/Smoke hazard 행동과 UI 표시 변경은 이 이슈에 포함하지 않습니다.
Acceptance Criteria
- downstream closed connection이 있으면 patience 이후 대체 경로로 우회합니다.
- 유일한 문이 닫힌 경우 agents가 얼어붙지 않고 분산 대기합니다.
- finite closure가 끝나면 agents가 재시도해서 탈출할 수 있습니다.
- 기존 no-block scenario는 기존 허용 범위 내에서 유지됩니다.
Architecture / Dependency Check
- 문폐쇄 행동은
src/domain 시뮬레이션 시스템에 둡니다.
- Qt/application 계층에 행동 로직을 추가하지 않습니다.
- engine은 connection block 개념을 알지 않습니다.
Verification Plan
- Connection-block active-semantics tests.
- Route/replanning tests for downstream closure, no-exit hold, reopen recovery.
cmake --build --preset build-no-app-debug
ctest --preset test-no-app-debug
Dependencies / Blockers
Repository Checks
Summary
닫힌 문을 hard route constraint로 유지하면서, 군중이 문폐쇄를 감지하고 잠깐 대기/감속 후 우회하거나 분산 대기하도록 개선합니다. #218의 scenario runtime interaction v2 안에서 Fire/Smoke와 독립된 Door Closure behavior를 담당합니다.
Parent Issue
#218
Area
Domain
Target Sprint
Sprint 3
Scope
connectionBlockShouldBeActive의미를 중앙화합니다: empty intervals는 항상 폐쇄, finite는[start,end],end <= start는 start 이후 계속 폐쇄입니다.closureAware == false동안 접근 속도를 감속하고, ready 이후 대체 경로를 탐색합니다.Acceptance Criteria
Architecture / Dependency Check
src/domain시뮬레이션 시스템에 둡니다.Verification Plan
cmake --build --preset build-no-app-debugctest --preset test-no-app-debugDependencies / Blockers
Repository Checks
Task-convention.