Skip to content

refactor(settings): extract UpdatesTab from SettingsView (ARCH-08d) - #244

Merged
mergify[bot] merged 1 commit into
mainfrom
claude/arch-08d-updates-tab
Oct 3, 2026
Merged

mergify[bot] merged 1 commit into
mainfrom
claude/arch-08d-updates-tab

Conversation

@Cuarroc

@Cuarroc Cuarroc commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Der Updates-Tab der Einstellungen ist jetzt eine eigene Komponente und nicht mehr Teil der großen SettingsView-Datei. Verhalten, Texte und Bedingungen sind unverändert; es ist nur ein mechanisches Verschieben. Zwei unabhängige Reviews haben keinen neuen Fehler gefunden; dieser PR wird jetzt über die Merge-Warteschlange geprüft.

Report

Scope: ARCH-08d (part of approved ARCH-08). The tab === "updates" JSX branch moved from src/components/SettingsView.tsx into the new typed src/components/settings/UpdatesTab.tsx. Props are passed unchanged: appVersion, versionFailed, updateState: UpdaterState, relaunchFailed, handleCheckUpdates, handleInstallUpdate, handleRelaunch. All hooks, state and the check/install/relaunch handlers stay in the parent. Plus .pa/task_arch08d.md (spec, Status: entwurf).

Diff: 148 insertions, 93 deletions (241 lines, limit 300), head 504803005ce4d072b9adea64562e3422c8240efd, remote SHA verified with git ls-remote.

Evidence

  • JSX text diff old branch vs. UpdatesTab (whitespace-normalised): identical apart from the wrapper fragment. Strings, classNames, branch conditions (checking disables the button, activeWorkers > 0 hides install, ready + relaunchFailed shows the manual restart hint) are unchanged.
  • npx tsc --noEmit exit 0.
  • npx vitest run src/components/SettingsView exit 0 (4 files, 25 tests, incl. SettingsView.updates.test.tsx).
  • bash scripts/ci/gates.sh lane prepush at this head: exit 0 (all 11 gates green, 168 s). An earlier run failed hq-test because the new spec file lacked a valid Status: line; fixed (local amend, before any push) and re-run green.
  • node_modules: symlinked from a sibling worktree whose package.json/package-lock.json are byte-identical and whose npm ls exits 0; no install.

Commit trailer: No-Test: mechanical JSX move with no runtime effect; existing SettingsView.updates tests pass unchanged.

NICHT ABGEDECKT

  • #[cfg(windows)] tests and Windows clippy arms (the Windows lane runs in the merge queue).
  • No GUI/screenshot check; visual parity is not claimed. The app was not started, no update was checked, installed or relaunched.
  • Graph tools were not available; the check was an exact source comparison only.

Review: ausstehend (Stufe A, two reviewers from non-Claude vendors, arranged by the orchestrator).

🤖 Generated with Claude Code

Review disposition — Tier A, round 1 (coordinator)

Accepted for EXACT candidate 5048030 on 2026-10-03 21:28 CEST. Author Claude Sonnet5.5; independent reviewers OpenAI GPT-6 Astra (high) and Z.ai GLM5.2 via subscribed opencode-go. Root independently observed actual Astra model/effort in turn_context and GLM provider/model in opencode export assistant metadata, not configuration alone. Complete reports were read.

  • Review1 Astra: no confirmed candidate-introduced finding; full three-file diff, exact source comparison, direct props and unchanged parent state/handlers, install-time guard, existing meaningful tests inspected. Source-only, no fresh reviewer tests. No high finding or second round required.
  • Review2 GLM: APPROVE without conditions; 93/93 JSX lines identical modulo indentation and all seven props match; no HIGH/MEDIUM finding. F1 INFO pre-existing uncovered versionFailed/relaunchFailed text paths: recorded as coverage limitation/future test opportunity, no candidate regression and no mandatory follow-up package. F2 INFO inherited irregular indentation: retained to keep the move mechanical, no code change required.
  • Author evidence verified from complete own server log: prepush at this head printed exit=0/all11 green/168s, targeted25Settings tests exit0, secret scan green; own clean worktree, git ls-remote and PR head exact. Total241diff includes17-line spec. Earlier local spec-status failure was corrected before first push; final green candidate remains unchanged.

NICHT ABGEDECKT: Source review does not establish actual visual parity, real update/install/relaunch, Rust-side atomicity or runtime safety outside the extraction. No reviewer ran new builds/tests. No current Windows runtime or queue Windows verdict yet. Graph generation/coverage UNKNOWN. Actual full Linux CI and real Windows merge-queue verdict follow Ready; no manual merge or extra round.

Review disposition

Independent Tier-B review by Codex/OpenAI (exact model identifier was not exposed to this run), candidate 504803005ce4d072b9adea64562e3422c8240efd, 2026-10-03.

  • Finding B1 — rejected (low), src/components/settings/UpdatesTab.tsx:26: An initial raw JSX-token comparison suggested a difference after the move. Countercheck against the real base showed that the difference was indentation trivia only: TypeScript emission produced an identical token stream for the old branch and the new component, and the targeted rendering tests passed. This is not a candidate-introduced behavior change; no code change.
  • Result: No finding survived countercheck. The seven props and handler bindings are complete, updater state and the last-moment active-session guard remain in SettingsView, and the rendered JSX is semantically identical. Accepted without a fix commit.
  • Evidence: git diff --check origin/main...HEAD (exit 0); emitted-JSX token comparison (exit 0); npx tsc --noEmit (exit 0); npx vitest run src/components/SettingsView.updates.test.tsx (exit 0, 13 tests); bash scripts/ci/gates.sh lane prepush (exit 0, 11 gates, 157 s, 1705 Rust tests).
  • NICHT ABGEDECKT: No GUI/screenshot inspection, real updater check/install/relaunch, external updater endpoint, or Windows-only code/tests. Linux does not compile the #[cfg(windows)] tests or Windows clippy arms; the Windows verdict belongs to the merge queue. The local provider-limit file and exact Codex model identifier were not available to this reviewer.

Move the updates JSX branch into settings/UpdatesTab.tsx. State, the
update check/install/relaunch handlers and all hooks stay in the parent;
props are passed unchanged. Strings, classNames and branch conditions are
identical.

No-Test: mechanical JSX move with no runtime effect; existing
SettingsView.updates tests cover the branch and pass unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@Cuarroc Cuarroc added the do-not-merge Keep this pull request out of the merge queue label Oct 3, 2026
@Cuarroc
Cuarroc marked this pull request as ready for review October 3, 2026 19:28
@Cuarroc Cuarroc removed the do-not-merge Keep this pull request out of the merge queue label Oct 3, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-03T19:30:03.760581Z 5048030 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@mergify

mergify Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Queued — the merge queue status continues in this comment ↓.

@Cuarroc

Cuarroc commented Oct 3, 2026

Copy link
Copy Markdown
Owner Author

@Mergifyio queue

@mergify mergify Bot added the queued label Oct 3, 2026
@mergify mergify Bot mentioned this pull request Oct 3, 2026
11 tasks done
@mergify
mergify Bot merged commit bfebaf1 into main Oct 3, 2026
15 checks passed
@mergify
mergify Bot deleted the claude/arch-08d-updates-tab branch October 3, 2026 19:45
@mergify

mergify Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

This pull request spent 10 minutes 52 seconds in the queue, including 10 minutes 36 seconds running CI.

Required conditions to merge

@mergify mergify Bot removed the queued label Oct 3, 2026
@Cuarroc

Cuarroc commented Oct 3, 2026

Copy link
Copy Markdown
Owner Author

@Mergifyio queue

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant