Skip to content

feat(conversation): preserve explicit sharpening with Glass controls - #1967

Merged
mergify[bot] merged 3 commits into
mainfrom
codex/kr04d1-sharpen
Oct 27, 2026
Merged

mergify[bot] merged 3 commits into
mainfrom
codex/kr04d1-sharpen

Conversation

@Cuarroc

@Cuarroc Cuarroc commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Die vorhandene Aktion „Schärfen“ behält während der Bearbeitung ihren zugänglichen Namen und zeigt die Phase getrennt an.
Rückfragen öffnen und Schärfung abbrechen verwenden die vorhandenen Glass-Bedienelemente.
Der überarbeitete Entwurf bleibt zur Prüfung im Eingabefeld und wird erst durch ausdrückliches Senden verschickt.

Report

Plan-ID: KR-04d-1-SHARPEN-CONTROLS

  • Delivery: accepted source plus its own nine-cell PLAN row in this same product PR; keep DRAFT. Source reviews/design were accepted by Root at 0445aa1a; the final-head Tier C metadata delta and package acceptance remain with Root. KR-04d/native/installed/effective/UAT parents remain open.
  • Dispatch owner/caller: srv-kr04d1-sharpen, coordinator ticket 334, existing ConversationView public chat props. App-controlled mount and callback API remain unchanged; no dependency on the sibling CommandChat delivery was added.
  • Exact base: 86401bd81ec62e5e684903f4d29db18730dfbd86.
  • Final candidate head: f28cbef0deeb869fbe988905640a011c23a4eed4. Accepted source review boundary: 0445aa1a6d3708f6d17332a5116c5273e016f009; the only later change is one PLAN row in f28cbef0.
  • Commits: test first 89521b6cc4268d3d46f4c4b3bd28af676b382a70, then bounded implementation 0445aa1a.
  • RAW: 201 added+deleted against merge-base: accepted source 200 (139 public test lines + 46 ConversationView lines + 15 dictionary lines) plus 1 PLAN row. Four files in the whole PR; 99 lines below the hard 300 limit. Final metadata delta: exactly docs/PLAN.md, +1/-0; foreign tracked changes: 0.
  • Native model observation: gpt-6.1-sol, effort high, own turn_context, 2026-10-27T21:16Z. Initial native goal was null; a bounded ticket/source-handover goal was created. Parent/product acceptance remains open.

Change and contract evidence

S1 uses the existing src/design/controls/Button (tint and ghost, small), loading={sharpening.running}, and the unchanged explicit disabled predicate. A separate role=status exposes the existing thinking/waiting/finishing words. The action stays named Schärfen, including the waiting interval without an active provider call.

S2–S4 preserve the existing hook, project ID, setText callback, phase transitions and send ownership. The new public test imports the existing ConversationView and real useSharpening/IPC normalization; only Tauri core/event modules are mocked. A deferred literal enhance_prompt result replaces the editable draft, records zero sends, and is sent only after the explicit public Send action. Actual question wire rows exercise singular/plural counts, navigation, exactly one cancellation closure, list_questions polling and final draft feedback.

S5 covers first-call refusal with draft/error retained, empty/blank drafts, absent project, disabled chat and sending chat. Existing hook tests cover abandoned-row closure/unmount and cancellation during row filing; they were not modified. This is bounded guard regression evidence, not exhaustive project/generation race coverage.

S6 leaves the existing Send control, textarea refs and keyboard handlers, stream, runtimeAttention, terminal action, project name, App mount, useSharpening, IPC, protocols and native seams unchanged. No new dependencies, local styles, shared control changes or architecture allowlist entries.

Accepted source-phase evidence and raw exits

Command / observation Exit / result
bash scripts/sync.sh start 0; bound branch and clean starting tree
npm run dev:start-check -- --max-cargo 2 --min-free-gb 3.5 0; initial 13.4 GB available, zero cargo builds; quota separately supplied by coordinator admission
BASE npm run typecheck followed by npm run test:unit -- src/components/ConversationView.sharpen.public.test.tsx before source edits typecheck 0; tests 1, three intended naming regressions fail; baseline exposes Schärft … / Wartet auf dich … / Baut Prompt … as button names
npm run typecheck 0 on candidate source
npm run test:unit -- src/components/ConversationView.sharpen.public.test.tsx src/components/ConversationView.test.tsx src/lib/useSharpening.test.ts src/lib/useSharpening.switch.test.ts 0; 4 files, 18 tests passed
bash scripts/ci/red-first.sh 0; all three exact named trailers red/missing at merge-base and green at head; manual baseline execution above additionally proves the intended behavioral RED
bash scripts/ci/secret-scan.sh, before each successful commit 0; precommit hooks also scan the staged contents
git diff --check and exact-file/RAW check 0; foreign changed files 0
Isolated actual-candidate capture with installed Chromium 153.0.8010.12 0; ten 1440×900 PNGs, light/dark × draft/thinking/waiting/finishing/rewritten, zero automatic sends; Tauri boundary fixture only, no preview service or native app
git push -u origin codex/kr04d1-sharpen (normal hook executes bash scripts/ci/gates.sh lane prepush) 0; own head 0445aa1a, full prepush 306 seconds, every gate green; Rust 2331 passed with 7 pre-existing skips
git ls-remote origin codex/kr04d1-sharpen 0; remote head exactly 0445aa1a6d3708f6d17332a5116c5273e016f009

Preserved source-author capture inspection record: inspected light/dark waiting and rewritten images, light thinking and dark finishing. Status and question actions remain visible; the rewritten draft is editable. Browser fixtures do not establish native behavior, assistive technology, keyboard coverage, UAT or performance.

Recorded source design gate and Root acceptance

The later dispatch amendment was read and applied. Exact BASE was reconstructed after editing using git archive into an isolated ignored baseline copy with existing node_modules linked; no pre-edit measurement is claimed. Both runs use the unchanged existing design gate, without --update.

  • BASE: npm --prefix .pa/kr04d-baseline-86401bd8 run design:gate -- --out <private-artifact-dir> — raw exit 1, 396 cases, 44 findings against the repository's existing design baseline.
  • HEAD: npm run design:gate -- --out <private-artifact-dir> — raw exit 1, 396 cases, 44 findings.
  • Aggregate [slack, nesting, tabs, eyebrows, grids]: BASE = HEAD = [240, 2684, 132, 376, 26], delta [0, 0, 0, 0, 0].
  • Strict per-case comparison — exit 1: four MCP settings cases have increases (+3 slack, +5 or +10 nesting, +1 grid each), balanced by four decreases in other MCP cases. All other cases match. Source in MCP/settings is unchanged. The inspected paired 0-item/light MCP screenshots appear identical despite different recorded measurements; timing sensitivity is an inference, not a proven cause.
  • Root accepted this source design evidence under the explicit 21:58Z aggregate-zero plus untouched-route rule, recorded in the Root review record below and confirmed by the 22:00:05.593Z metadata dispatch. The four MCP case swaps belong to the separate DESIGN-GATE-MCP-CAPTURE follow-up. The original raw exits 1/1 and strict per-case comparison 1 remain recorded; no new design-gate pass or independent per-case proof is claimed. This pure PLAN delta has no UI effect and was not remeasured. No thresholds or baseline changed.

Initial push attempt: raw exit 1 before source/Rust suites because the reconstructed ignored BASE artifact was still nested inside the author checkout and was traversed by the CRLF source scanner. The complete owned artifact was relocated intact to private report storage; the failed log was preserved. No tracked source, gate, assertion or threshold changed. The normal full hook was then rerun on the same candidate.

Architecture drift: precommit gate exit 0, no new occurrences, no allowlist change.

Review and delivery disposition

Source Tier B: Root accepted the two different non-author families Kimi/Moonshot and GLM/Zhipu with no findings at 0445aa1a, as recorded below. All non-PLAN tracked blobs are identical at the final head; no source re-review was launched. Review: ausstehend (Stufe C) for the bounded 0445aa1a..f28cbef0 metadata delta. Root owns final-head acceptance, Ready, review-ok and Mergify. This worker changed no labels and queued nothing.

Final metadata phase evidence (2026-10-27)

  • Added exactly one nine-cell KR-04d-1-SHARPEN-CONTROLS row immediately after KR-04b, retaining the same owner, fix: preserve project chat drafts across routes (KR-04b) #1894 predecessor, Server, source B/metadata C, bounded post-merge state, merge queue: checking #324 + #329 + #326 + #331 together on main (f48af09) #334 and UUID e4464eaa-b33a-4136-9a2a-49a5ce8ce412.
  • Own native turn_context at 22:42:43.266Z observed gpt-6.1-sol, effort high, in the assigned worktree before editing. Coordinator admission-stage.json supplied dated quota/rules separately; the current resource guard passed with warm slot 9. The Facts phase had actually exited at 22:36:34Z and its final head was f0ca0dff; active peers had no PLAN changes, and the dispatch explicitly granted this sole PLAN window. The lage-jetzt mirror was unavailable in this worktree; live branch, GitHub and orchestration events were inspected.
  • Own current-session native goal was created only for this metadata/verified-handover phase. This does not complete any prior unmet source goal, product parent, native/installed/effective delivery or UAT.
  • Removing only the new row reproduces the entire accepted PLAN byte-for-byte, also equal to the 441ade96 PLAN reference: SHA-256 826229a658d91127ffab1f4028ae32a7bcebae9ce0d8c6fcb6e514c6eddd84e3. Every other tracked Git blob is identical to accepted source 0445aa1a; no ConversationView/useSharpening/test/text/IPC/native/gate/baseline change.
Command / observation Exit / result at final candidate
npm run dev:start-check -- --max-cargo 2 --min-free-gb 3.5 0; 12.9 GB free, zero cargo builds; native model/quota/rules checked separately
Shared guard immediately followed by commit / push in the same foreground shell 0 / 0; resource/known-process/exclusive warm-target and two-heavy-phase admission retained; no caps or leases changed
bash scripts/ci/secret-scan.sh before the documentation commit 0; no leaks; normal precommit hook also scanned the staged row
git commit with normal precommit and No-Test trailer 0; documentation-only commit f28cbef0; full precommit 74 seconds
git diff --check origin/main...HEAD 0
git diff 0445aa1a..HEAD --exit-code -- . ':!docs/PLAN.md' and complete git ls-tree -r comparison excluding PLAN 0; source delta zero, all other tracked hashes identical
Byte/adjacency/nine-cell/RAW assertions against the merge-base 0; PLAN normalized hash as above; RAW 201 <= 300; clean worktree
git push -u origin codex/kr04d1-sharpen with normal hook executing bash scripts/ci/gates.sh lane prepush 0; own final head f28cbef0; complete prepush 286 seconds, foreground push 296.8 seconds; every gate green
Included frontend / HQ / Rust suites 0; 248 frontend files, 1824 tests passed; 995 HQ tests passed; 2331 Rust tests passed, 7 pre-existing skips; Denkraum 390 Node tests passed/1 pre-existing Windows-only skip and 33 browser tests passed
git ls-remote origin refs/heads/codex/kr04d1-sharpen 0; exact remote head f28cbef0deeb869fbe988905640a011c23a4eed4
gh pr view 1967 --json isDraft,headRefOid,state 0; existing PR OPEN/DRAFT at exact final head
gh run list --commit 86401bd81ec62e5e684903f4d29db18730dfbd86 --workflow ci --limit 1 0; main CI 40583598686, completed/success; no branch refresh or main merge

The earlier source-phase evidence remains bound to 0445aa1a; the passing full final-head hook above is the current gate evidence. No redundant passing prepush lane, new design measurement, source fix, review, new PR, Ready action, label or queue action was added.

NICHT ABGEDECKT

--- NICHT ABGEDECKT von diesem Lauf ---
  Plattform Linux:
    - die #[cfg(windows)]-Tests (run_in_pty, npm_shim, ConPTY, DPAPI)
    - die Windows-Arme von clippy
  Dieser Lauf belegt die Linux-Haelfte, nicht die Windows-Haelfte.
  Windows-Haelfte: derselbe Befehl in Git-Bash auf dem Zielrechner.
  Bahn 'prepush' ist die schnelle Schleife: Browser-Smoke, Frontend-Build
  und die Workflow-Gates laufen erst in der Bahn 'linux'.
  Der Zustand externer Dienste (Updater-Endpoint, OmniRoute, Mirror)
  wird von keinem Gate geprueft — dafuer ist das Release-Verify da.
  • Linux does not compile/run #[cfg(windows)] tests (run_in_pty, npm_shim, ConPTY, DPAPI) or Windows clippy arms; the Windows lane belongs to the merge queue.
  • Native Tauri/provider execution, installed/effective delivery, restart/disk draft retention, full KR-04d/parent/Glass integration and UAT remain open. Only the existing leaf is ported.
  • No native model/provider call was made by the tests or fixture. Hook guard regressions are bounded; no exhaustive cancellation/project/generation race proof is claimed.
  • The own PLAN row is present in this product PR. Source reviews and design are Root-accepted; only the final-head Tier C delta and final package acceptance remain pending with Root. The documented raw design exits remain 1; no new design test is claimed.
  • External updater/OmniRoute/mirror state is outside these gates.

Root review record (2026-10-27, source head 0445aa1)

Candidate source head 0445aa1a6d3708f6d17332a5116c5273e016f009 (200 RAW, 3 files, no seam). Tier B; author family OpenAI (Codex gpt-6.1-sol).

ID Source Model (observed) Verdict
R1967-K Kimi CLI 2.3.2 on the PC, 21:57:20–21:59:31Z, exit 0 kimi-code/k3.1-pro (Moonshot) APPROVE (none)
R1967-G .pa/review_transport.py, Ollama, 21:55:26Z, exit 0 glm-5.2:cloud (Zhipu; self-label differs, noted) APPROVE (none; 10 checks)

Both reviewers verified the following: the accessible name "Schärfen" stays stable during loading (ConversationView.tsx:230); the phase is shown separately via role=status (:177-181); the disabled predicate is unchanged (:226); there is no auto-send path, and send happens only on an explicit click; the cancel answer is sent exactly once; the props and callback signatures are unchanged; only src/design Button (tint/ghost, sm, loading) is used and the raw convo-sharpen buttons were removed; Tauri-only mocks with literal drafts.

Design gate (Root decision of 21:58Z): the aggregate delta is 0 on every metric [240, 2684, 132, 376, 26]. The four MCP per-case swaps are the harness measurement error proven by Stabs (follow-up DESIGN-GATE-MCP-CAPTURE), on a route this PR does not touch. Design: accepted, non-increase met.

Source accepted by Root at 0445aa1a. The required own PLAN row is now present at f28cbef0deeb869fbe988905640a011c23a4eed4; Root must check only this Tier C metadata delta before final-head acceptance/Ready. review-ok remains Root-owned and must be bound to that final head.

Root final acceptance (2026-10-27 22:57Z)

  • Metadata delta 0445aa1a..f28cbef0: git diff --stat = docs/PLAN.md | 1 + only (KR-04d-1-SHARPEN-CONTROLS row); Tier C, checked by Root. Source bytes unchanged.
  • Note: the No-Test: reason in f28cbef says "provider facts" (copy slip); the commit is docs-only, so No-Test is valid; no history rewrite.
  • Reviews: R1967 Kimi (Moonshot) + GLM (Zhipu) APPROVE at 0445aa1a; author family OpenAI. Design aggregate delta 0 (Root record above).
  • Decision: accepted; Ready + review-ok bound to f28cbef0.

Root disposition addendum (2026-10-27 23:18Z)

  • Codex P2 at docs/PLAN.md:255 (discussion_r4395094061): the row says "Root final-head acceptance pending"; that was true when written and is superseded by the 22:57Z acceptance above. Accepted as wording follow-up for the day's single collected PLAN PR (Elias rule 2); no head change here (it would void review-ok).
  • Design basis made precise under the narrowed 22:20Z rule: all four per-case increases are /einstellungen@es-tab-mcp cases (body line "four MCP settings cases"), i.e. the proven MCP-capture class (DESIGN-GATE-MCP-CAPTURE, PR fix(design-gate): wait for the selected settings panel before capture #1969); the "untouched-route" wording in the row is not the basis. Aggregate delta 0. The collected PLAN PR replaces "aggregate/untouched-route rule" with "aggregate 0; only proven es-tab-mcp capture cases".

Cuarroc and others added 3 commits October 27, 2026 22:20
Test-First: src/components/ConversationView.sharpen.public.test.tsx::keeps sharpening named while waiting and never sends the rewritten draft automatically

Test-First: src/components/ConversationView.sharpen.public.test.tsx::keeps the waiting count and navigation and single cancellation of real questions

Test-First: src/components/ConversationView.sharpen.public.test.tsx::announces the final call after the actual open questions are answered

Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Keep phase feedback separate from the stable action and preserve the existing draft-only sharpening lifecycle.

Plan-ID: KR-04d-1-SHARPEN-CONTROLS

Test-First: src/components/ConversationView.sharpen.public.test.tsx::keeps sharpening named while waiting and never sends the rewritten draft automatically

Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Plan-ID: KR-04d-1-SHARPEN-CONTROLS

No-Test: record the accepted provider facts delivery

Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
@Cuarroc
Cuarroc marked this pull request as ready for review October 27, 2026 22:56
@Cuarroc Cuarroc added the review-ok Pipeline: review disposition complete, no open high finding label Oct 27, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 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-27T22:57:13.752511Z f28cbef 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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f28cbef0de

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/PLAN.md
|---|---|---|---|---|---|---|---|---|
| KR-03a-1-STATUS | Kernverbindung und Kontingent im bestehenden Tresorpanel getrennt vom Schlüsselzugang anzeigen | srv-kr03a1-status; Stabs pflegt, Root nimmt ab | 01a (#1547) gemergt; eigener serieller Metadatennachtrag nach P1/#1918 | Server | B: zwei fremde Modellfamilien; Metadaten C | Erledigt mit Merge von PR #1922: lesende Verbindungs-/Kontingentanzeige im bestehenden Tresorpanel | Keine neuen Zugangsdaten, API oder Abfrageschleife; Quellbelege an `448629da`; finale Metadaten-/Review-/Root-Abnahme getrennt, native V2-ACC1b/UAT und Glass-Gesamtabnahme offen; Elternziel KR-03a bleibt teilweise erfüllt/offen | 7364e03a-2d7a-4528-9ecb-551d3dbdf3d2 |
| KR-04b | Projektbezogene Chatentwürfe und echten Verlauf erhalten | srv-kr-04b-chat-state; Root nahm die gemergte Lieferung ab | #1569 gemergt | Server | B | Erledigt: #1894 am 25.10.2026 00:38:13Z gemergt (`ae9abb5f0b1388d317f7dfb81dd86e387bebf780`); Ticket DONE | Entwurf je Projekt nur im laufenden UI-Dokument; echter Verlauf neu gelesen. Browser-/Tauri-Mock-Belege, kein Neustart-/Datenträger-/nativer Nachweis, keine installierte/wirksame Lieferung oder Glass-Gesamt-/UAT-Abnahme. #1894-Nachläufer bleiben; kein neuer Folgeauftrag | 54a480e5-5c04-4387-b15b-ae60d7e62e6c |
| KR-04d-1-SHARPEN-CONTROLS | Preserve explicit sharpening with named Glass controls in the existing ConversationView | srv-kr04d1-sharpen; Root accepts and integrates | KR-04b/#1894 merged (ae9abb5f) | Server | B: two source review families accepted; metadata C | Delivered after merge of PR #1967: bounded sharpening controls; Root final-head acceptance pending | Root accepted Kimi/GLM source reviews at `0445aa1a` and design under the 21:58Z aggregate/untouched-route rule. Stable action name, separate phase feedback, questions/cancel and editable final draft; no autosend, new hook owner, IPC or native change. Full KR-04d, native, installed/effective, Glass and UAT remain open | #334; e4464eaa-b33a-4136-9a2a-49a5ce8ce412 |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the PLAN row to reflect final package acceptance

The new package row says “Root final-head acceptance pending”, but the reviewed commit’s report explicitly records Root’s final acceptance at 22:57Z, including acceptance of the metadata delta and the decision to mark the candidate Ready. This leaves the canonical plan reporting an outstanding acceptance that the same delivery records as completed. Update this bounded package’s acceptance status while retaining the explicitly open parent, native, installed/effective and UAT obligations. The binding “Reviews and advisors” guidance requires the package’s PLAN row to describe the post-merge truth and treats stale status as a medium finding.

AGENTS.md reference: AGENTS.md:L74-L76

Useful? React with 👍 / 👎.

@mergify mergify Bot mentioned this pull request Oct 27, 2026
30 of 46 tasks
@mergify mergify Bot added the queued label Oct 27, 2026
@mergify
mergify Bot merged commit 416d5a7 into main Oct 27, 2026
25 checks passed
@mergify

mergify Bot commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

✅ Merged into main as 416d5a7 at 23:14 UTC

9 min in the queue, 9 min of it CI.

So far

Merge conditions: 9 of 9 met

This pull request

Condition Required by
✅ github-review-approved GitHub repository ruleset rule main-pr-required-checks
✅ label != do-not-merge —

The batch, tested on draft #1972

Condition Required by
✅ check-success = gates (linux) —
✅ check-success = gates (windows) —
✅ check-success = red-first —
✅ any of: check-success = @github-actions/gates (linux), check-neutral = @github-actions/gates (linux), check-skipped = @github-actions/gates (linux) GitHub repository ruleset rule main-pr-required-checks
✅ any of: check-success = @github-actions/gates (windows), check-neutral = @github-actions/gates (windows), check-skipped = @github-actions/gates (windows) GitHub repository ruleset rule main-pr-required-checks
✅ any of: check-success = @github-actions/red-first, check-neutral = @github-actions/red-first, check-skipped = @github-actions/red-first GitHub repository ruleset rule main-pr-required-checks
✅ any of: check-neutral = @mergify/Mergify Merge Protections, check-skipped = @mergify/Mergify Merge Protections, check-success = @mergify/Mergify Merge Protections GitHub repository ruleset rule main-pr-required-checks

Times in UTC · dashboard · how the merge queue works

@mergify
mergify Bot deleted the codex/kr04d1-sharpen branch October 27, 2026 23:14
@mergify mergify Bot removed the queued label Oct 27, 2026
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