Skip to content

feat(needs): COMP-2-2 three decision rows in Braucht dich - #1455

Merged
mergify[bot] merged 4 commits into
mainfrom
claude/v2-comp-2-2
Oct 15, 2026
Merged

mergify[bot] merged 4 commits into
mainfrom
claude/v2-comp-2-2

Conversation

@Cuarroc

@Cuarroc Cuarroc commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Die Spalte „Braucht dich" zeigt jetzt immer drei Zeilen: Geld, Installieren und Löschen, jede mit einem Satz, dass sie deine Freigabe braucht. Passt eine offene Frage zu einer Zeile, steht sie dort und lässt sich mit demselben Antwortfeld beantworten. Alle anderen Fragen bleiben in der bisherigen Liste, und es wird nichts ausgegeben, installiert oder gelöscht.

Report

Was geändert wurde (COMP-2-2)

  • DecisionLane.tsx (neu): eine Zeile je Klasse (money, install, delete) mit Überschrift, Satz und „Keine offene Entscheidung.", solange leer.
  • Ask.tsx (neu): Ask, parseOptions und age unverändert aus NeedsYou.tsx verschoben, damit Liste und Zeilen dasselbe Antwortfeld nutzen.
  • NeedsYou.tsx: drei Zeilen immer über der Liste (auch beim Laden, leer oder offline); Fragen laut classifyQuestion landen genau einmal in ihrer Zeile, Klasse other bleibt in der Liste. onAnswer unverändert.
  • texts.ts (neu), needs.css (3 Zeilen). Keine Ziffern im Zeilentext, Nichts offen bleibt im leeren Zustand.
  • Nicht angefasst: classify.ts, answer_question, api.rs, Datenbank, kein Rust.
  • Diff gegen origin/main: 188 Zeilen hinzugefügt, 96 entfernt (284, Limit 300); davon bewegter Code Ask etwa 95 Zeilen.

RE source: Composio Agent Orchestrator (Apache-2.0) lane idea only; no code copied

Belege

  • Red zuerst: Testcommit ab0f4326 allein hat drei rote Tests; Kopf 8def5677 grün.
  • npx --no-install vitest run src/screens/leitstand/needs src/i18n/hardcoded.test.ts: Exit 0 (35 Tests)
  • npm run typecheck: Exit 0; npm run build: Exit 0
  • bash scripts/ci/red-first.sh: Exit 0; git diff --check: Exit 0
  • bash scripts/ci/gates.sh lane prepush: erster Lauf bis fe-test grün, denkraum ROT (Playwright D4 Test timeout of 30000ms exceeded, Server-Last etwa 40, Test nicht berührt); danach gates.sh --from denkraum lane prepush bei Last 13: Exit 0 (denkraum, clippy, rust-suite grün). Derselbe D4-Test hat bei einem Commit-Versuch unter Last ebenfalls das Zeitlimit gerissen und beim nächsten bestanden.
  • Visuell: Komponente in temporärem Harness (nicht eingecheckt, gelöscht) bei 1440×900, hell und dunkel, voll und leer, im Browser gerendert und angesehen.

Abweichungen zu glass/Main.dc.html (Sicht auf Screenshots)

  • Das Referenzbild hat keine Entscheidungszeilen; die Zeilen sind neu und nutzen --g-hair, --g-r-card, --g-muted.
  • Eine Frage in einer Zeile ist eine Karte in einer Karte (doppelter Rand); bei vielen Fragen etwas schwer.
  • Keine Lampe je Zeile (nicht verlangt).
  • Das Harness lud die Eingabe-CSS nicht, daher zeigt der Screenshot ein ungestyltes Textfeld; das ist ein Harness-Mangel, kein Befund der Komponente.

Architecture drift: keine neue Meldung.

Review-Stand: Review: ausstehend (Stufe B). Autor ist Anthropic (Claude Sonnet 5.5), der Prüfer muss außerhalb Anthropic liegen; Root ordnet ihn zu.

ID Quelle Schwere Befund Disposition
– noch keine Review – – ausstehend

NICHT ABGEDECKT

  • Die #[cfg(windows)]-Tests und die Windows-Arme von clippy laufen auf Linux nicht; die Windows-Bahn läuft in der Merge-Queue.
  • Browser-Smoke, Frontend-Build-Gates und Workflow-Gates der Bahn linux (nur prepush lokal gelaufen).
  • Keine Fensterlauf-Prüfung in der echten Desktop-App (App nicht gestartet).
  • Kein eigener DecisionLane.test.tsx; die Zeilen sind über NeedsYou.test.tsx abgedeckt.

Fix round 1 (NACHBESSERN, Befund R1455-G1, mittel; unabhängig von GLM 5.3, Kimi K3 und Gemini 3.8 Flash gefunden, von Root bestätigt)

  • Befund: NeedsYou.tsx zeigte die drei Entscheidungsspuren immer; beim Laden oder offline ohne Fragen stand dort dreimal "Keine offene Entscheidung." neben dem Lade- bzw. Offline-Zustand.
  • Fix: Die Spuren erscheinen nur, wenn die Liste gelesen wurde (open.length > 0 || (error === null && !loading)); sonst nichts.
  • Commits: 0ced7749 (Test, rot auf 8def5677), d49a4b0c (Fix).
  • Tests (neu): NeedsYou.test.tsx::shows no decision lane claiming nothing is open while the list cannot be read und ::shows no decision lane claiming nothing is open while the list is loading.
  • Rot: npx vitest run src/screens/leitstand/needs/NeedsYou.test.tsx auf 8def5677 + nur Test: Exit 1, 2 von 16 Tests rot (3 statt 0 Treffer für "Keine offene Entscheidung.").
  • Grün: npx vitest run src/screens/leitstand/needs Exit 0 (22 Tests); bash scripts/ci/gates.sh lane prepush Exit 0 am Kopf d49a4b0c; Push mit git ls-remote bestätigt.
  • Größe: PR gesamt 207 + 96 = 303 Diff-Zeilen laut git diff --shortstat origin/main...HEAD (Fix-Runde, Grenze 400).
  • Review: ausstehend (Stufe B); nicht bereit markiert, kein Label gesetzt.

🤖 Generated with Claude Code

Root review disposition (round 1 on 8def567, delta round on d49a4b0, 15.10.2026)

Author family: Anthropic (Claude). Tier B (frontend). Round-1 reviews on 8def5677: Cohere north-mini-code (kilo), Alibaba Qwen3-Coder-Next, Zhipu GLM 5.3, Moonshot Kimi K3, Google Gemini 3.8 Flash (OpenRouter). Delta review on d49a4b0c: Zhipu GLM 5.3 (OpenRouter, gh pr diff 1455 at that head) confirms the fix ("empty/error/loading states correctly suppress the lanes").

ID Source Severity Finding Disposition
R1455-G1 GLM 5.3, Kimi K3, Gemini 3.8 Flash medium NeedsYou.tsx:60-62 lanes claim "Keine offene Entscheidung." while loading/offline Accepted: fixed in 0ced774 (red test) + d49a4b0 (fix); delta review confirms
R1455-Q1 / G-cls Qwen, GLM, Gemini high classify.ts missing / preflight unclassified Rejected: classify.ts is already on main; each question gets one class (NeedsYou.tsx:37-38)
R1455-Q2 Qwen medium "other" questions vanish Rejected: rendered at NeedsYou.tsx:44-51, test "keeps a question that matches no row"
R1455-Q3 Qwen medium XSS via question text Rejected: React escapes text children
R1455-C1/C2, G-i18n Cohere, GLM medium hard-coded German in texts.ts Rejected: per-screen texts.ts is the sanctioned pattern (src/i18n/hardcoded.test.ts:19-21)
R1455-K2 Kimi K3 medium LANES satisfies does not enforce exhaustiveness Follow-up (low): only matters if QuestionClass grows
R1455-G-tests GLM medium no direct classifyQuestion unit tests Rejected for this PR: classify.ts and its routing tests are on main
R1455-Q4/Q5, C3..C7 Qwen, Cohere low/smell pre-existing test gaps, naming, imports, race Rejected or optional; moved code unchanged

Size: 207+96 = 303 lines after the fix round forced by R1455-G1 (initial 284; the forced-fix limit is 400). No open high or medium finding.

Cuarroc and others added 4 commits October 14, 2026 17:18
Failing tests: the pane must always show the Geld, Installieren and
Loeschen sentences, answer a delete question inside its row, and keep an
unmatched question in the list.

Test-First: src/screens/leitstand/needs/NeedsYou.test.tsx::shows the money one-liner while no money question is open
Test-First: src/screens/leitstand/needs/NeedsYou.test.tsx::answers a delete question from its own row
Test-First: src/screens/leitstand/needs/NeedsYou.test.tsx::keeps a question that matches no row in the list

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… rows

Three rows sit above the question list, each with one sentence and
"Keine offene Entscheidung." while empty. A question classified as money,
install or delete moves into its row and is answered with the same Ask
field (moved to Ask.tsx unchanged); other questions stay in the list.

Test-First: src/screens/leitstand/needs/NeedsYou.test.tsx::shows the money one-liner while no money question is open
Test-First: src/screens/leitstand/needs/NeedsYou.test.tsx::answers a delete question from its own row
Test-First: src/screens/leitstand/needs/NeedsYou.test.tsx::keeps a question that matches no row in the list

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ing or unreadable

Finding R1455-G1: the three lanes said "Keine offene Entscheidung." next
to the loading and offline states, although nothing had been read.

Test-First: src/screens/leitstand/needs/NeedsYou.test.tsx::shows no decision lane claiming nothing is open while the list cannot be read
Test-First: src/screens/leitstand/needs/NeedsYou.test.tsx::shows no decision lane claiming nothing is open while the list is loading

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
While the list loads or cannot be read, the Geld, Installieren and
Loeschen lanes claimed "Keine offene Entscheidung." beside the loading or
offline state. They now render only when questions are open or the read
finished without error (finding R1455-G1).

Test-First: src/screens/leitstand/needs/NeedsYou.test.tsx::shows no decision lane claiming nothing is open while the list cannot be read
Test-First: src/screens/leitstand/needs/NeedsYou.test.tsx::shows no decision lane claiming nothing is open while the list is loading

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@Cuarroc
Cuarroc marked this pull request as ready for review October 15, 2026 00:16
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@Cuarroc Cuarroc added the review-ok Pipeline: review disposition complete, no open high finding label Oct 15, 2026
@Cuarroc

Cuarroc commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

review-ok set by Root for head d49a4b0: tier B; R1455-G1 fixed (0ced774 red test, d49a4b0 fix), delta review by Zhipu GLM 5.3 on this head confirms; all other findings adjudicated in the PR body; gates (linux), gates (windows), red-first green on this head. A later push voids this label.

@Cuarroc

Cuarroc commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

@Mergifyio queue

@mergify mergify Bot added the queued label Oct 15, 2026
@mergify mergify Bot mentioned this pull request Oct 15, 2026
30 of 46 tasks
@mergify
mergify Bot merged commit 78441e0 into main Oct 15, 2026
20 checks passed
@mergify

mergify Bot commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

This pull request spent 15 minutes 39 seconds in the queue, including 14 minutes 56 seconds running CI.

Required conditions to merge
  • check-success = gates (linux)
  • check-success = gates (windows)
  • check-success = red-first
  • github-review-approved [🛡 GitHub repository ruleset rule main-pr-required-checks]
  • label != do-not-merge
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-success = @github-actions/gates (linux)
    • check-neutral = @github-actions/gates (linux)
    • check-skipped = @github-actions/gates (linux)
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-success = @github-actions/gates (windows)
    • check-neutral = @github-actions/gates (windows)
    • check-skipped = @github-actions/gates (windows)
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-success = @github-actions/red-first
    • check-neutral = @github-actions/red-first
    • check-skipped = @github-actions/red-first
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-neutral = @mergify/Mergify Merge Protections
    • check-skipped = @mergify/Mergify Merge Protections
    • check-success = @mergify/Mergify Merge Protections

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-ok Pipeline: review disposition complete, no open high finding

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant