diff --git a/cmd/creator-web/responsive_test.go b/cmd/creator-web/responsive_test.go index 12248ee..49ff43a 100644 --- a/cmd/creator-web/responsive_test.go +++ b/cmd/creator-web/responsive_test.go @@ -43,6 +43,8 @@ func TestChatResponsiveGuardrailsConstrainMobileGridItem(t *testing.T) { ".chat-view { width: 100%; min-width: 0;", "@media (max-width: 640px)", ".chat-layout { height: auto; display: block; }", + ".chat-header > .operator-link, .build-meta { display: none; }", + ".chat-header .cognitive-console-link { flex: 0 1 110px;", } { if !strings.Contains(stylesheet, guard) { t.Fatalf("chat responsive guardrail missing: %s", guard) diff --git a/cmd/creator-web/static/assets/chat.css b/cmd/creator-web/static/assets/chat.css index b6fe4e4..525649d 100644 --- a/cmd/creator-web/static/assets/chat.css +++ b/cmd/creator-web/static/assets/chat.css @@ -107,9 +107,10 @@ textarea { resize: vertical; min-height: 84px; max-height: 240px; padding: 14px; .conversation-starters { align-items: stretch; } .conversation-starters span { width: 100%; } .chat-header { gap: 10px; padding: 0 12px; } - .chat-header .cognitive-status { display: inline-flex; max-width: 150px; overflow: hidden; text-overflow: ellipsis; } - .build-meta { font-size: 8px; letter-spacing: .04em; } - .build-meta time { font-size: 7px; } + .chat-header .cognitive-status { display: inline-flex; flex: 1 1 110px; min-width: 0; max-width: 110px; overflow: hidden; text-overflow: ellipsis; } + .chat-header .cognitive-console-link { flex: 0 1 110px; min-width: 0; overflow: hidden; text-overflow: ellipsis; } + .chat-header > .operator-link, .build-meta { display: none; } + .chat-header > #logout { flex: 0 0 38px; } .chat-layout { height: auto; display: block; } .chat-side, .chat-main { min-height: auto; max-height: none; overflow: visible; } .chat-left, .chat-right { border: 0; border-bottom: 1px solid var(--line); } diff --git a/dev/ACTIVE_TASK.json b/dev/ACTIVE_TASK.json index c842cd2..925a019 100644 --- a/dev/ACTIVE_TASK.json +++ b/dev/ACTIVE_TASK.json @@ -1,5 +1,5 @@ { - "task_file": "dev/tasks/DEV-000289-chat-mobile-overflow-fix.json", - "task_id": "DEV-000289", + "task_file": "dev/tasks/DEV-000290-chat-mobile-header-overflow.json", + "task_id": "DEV-000290", "task_revision": 1 } diff --git a/dev/tasks/DEV-000290-chat-mobile-header-overflow.json b/dev/tasks/DEV-000290-chat-mobile-header-overflow.json new file mode 100644 index 0000000..5f1ebd4 --- /dev/null +++ b/dev/tasks/DEV-000290-chat-mobile-header-overflow.json @@ -0,0 +1,23 @@ +{ + "task_id": "DEV-000290", + "task_revision": 1, + "architecture_revision": "ADR-0018", + "base_repo_revision": "e9d5b1ca8a2aa14fb11241c2766e79547a469078", + "risk_tier": "E", + "intent": "Constrain authenticated chat header controls at mobile viewport widths after live acceptance found a second horizontal overflow source.", + "requirement_ids": ["authenticated mobile UI acceptance", "no horizontal overflow at 390px"], + "allowed_change_scope": {"modules": ["creator-web"], "paths": ["dev/ACTIVE_TASK.json", "dev/tasks/DEV-000290-chat-mobile-header-overflow.json", "cmd/creator-web/static/assets/chat.css", "cmd/creator-web/responsive_test.go"]}, + "forbidden_change_scope": {"paths": ["architecture/**", "security/**", "database/**", "LLM-local/**", "modules/**", "adapters/**"]}, + "allowed_architecture_delta": {"new_cross_module_dependencies": 0, "new_canonical_owners": 0, "new_privileges": 0, "new_third_party_dependencies": 0, "new_database_owner_roles": 0}, + "contracts": {"consume": ["existing creator-web header controls"], "may_change": []}, + "semantic_owner": "creator-web presentation", + "canonical_state": ["none"], + "state_transitions": ["header intrinsic controls -> bounded mobile controls"], + "side_effects_and_privileges": ["none"], + "persistence_and_migrations": ["none"], + "failure_retry_restart": ["CSS-only; no runtime state or recovery semantics changed"], + "assumptions": ["desktop header remains unchanged", "the settings link remains available through the cognitive console link"], + "acceptance_scenarios": ["authenticated chat has no horizontal overflow at 390px", "settings navigation remains available", "logout remains visible", "desktop static layout remains unchanged"], + "required_tests": ["go test ./cmd/creator-web", "go vet ./cmd/creator-web", "preflight", "check-diff", "check-architecture", "independent", "git diff --check", "CI", "production health smoke", "one authenticated mobile smoke"], + "terminal_gap_states": ["BLOCKED_BY_SPEC_GAP", "BLOCKED_BY_ARCHITECTURE_GAP", "BLOCKED_BY_MISSING_CAPABILITY"] +}