Qt-removal R7.5f: remove stale phase promises from user-visible text#155
Merged
Merged
Conversation
Several disabled controls and one backend notification told users a capability would arrive in an internal project phase (R3/R4/R5/R6) that had already shipped and closed - promising "coming in R4" when R4 was long done and the feature still wasn't there. Scope was derived by grepping the codebase rather than from the plan's "4 R4 placeholders" shorthand, which turned out to undercount it. Eight strings across six files, including a stale R6 promise on DocumentNodeView's Export item and a backend notification in plugins.py's executePlugin fallthrough - neither of which an "R4" search would have found. Replacements are plain and phase-free: - ChatNodeView (Key Takeaway, Explainer Note): "AI note generation isn't available yet" - DocumentNodeView (Export): "Document export isn't available yet" - AppBar (provider mode select): "Switching provider modes isn't available yet" - Composer (attach): "Attachments aren't available yet" - Composer (model/provider): "Model selection isn't available here yet - configure models in Settings" - plugins.py fallthrough: node creation "isn't available yet" - HtmlNodeView (popout): keeps the real security reason, drops the internal plan-doc citation - SceneCanvas placeholder node body: "Placeholder node" Every new claim was checked against the code before being written, to avoid replacing one false statement with another. Model selection is genuinely reachable in Settings for all three providers (setOllamaModelAssignment, saveApiConfiguration/loadApiModels, setLlamaCppChatModelPath), so the one string that points somewhere is accurate. Provider-mode switching exists nowhere - set_current_mode is only called by bootstrap_provider_state at startup - so that string deliberately offers no workaround. Adversarial review caught one miss: SceneCanvas's PlaceholderNodeView rendered "placeholder - real nodes land in R3" as body text, the most visible instance of all, reachable by double-clicking empty canvas and as the fallback for any unrecognized node kind. The initial sweep covered title attributes and quoted strings but not JSX text content. Five coupled test assertions updated to match. 885 backend / 1208 frontend tests pass, typecheck/lint/build clean, burn-down gate unchanged at 152/84/68. Closes R7.5 (a-g). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Final R7.5 parity sub-increment, closing the phase (a–g). Previous: #147, #148/#149/#150, #151, #152/#153, #154.
Problem
Several disabled controls and one backend notification told users a capability would arrive in an internal project phase (R3/R4/R5/R6) that had already shipped and closed — the app promised "coming in R4" when R4 was long done and the feature still wasn't there.
Scope was derived by grepping the codebase rather than from the plan's "4 R4 placeholders" shorthand, which undercounted it. Eight strings across six files, including a stale R6 promise on
DocumentNodeView's Export item and a backend notification inplugins.py'sexecutePluginfallthrough — neither of which an "R4" search would have found.Change
Phase-free replacements:
ChatNodeView— Key Takeaway, Explainer NoteDocumentNodeView— ExportAppBar— provider mode selectComposer— attachComposer— model/providerplugins.py— executePlugin fallthroughHtmlNodeView— popoutSceneCanvas— placeholder node bodyEvery new claim was checked against the code before being written, to avoid replacing one false statement with another. Model selection is genuinely reachable in Settings for all three providers (
setOllamaModelAssignment,saveApiConfiguration/loadApiModels,setLlamaCppChatModelPath), so the one string that points somewhere is accurate. Provider-mode switching exists nowhere —set_current_modeis only called bybootstrap_provider_stateat startup — so that string deliberately offers no workaround.Five coupled test assertions updated to match.
Test plan
capabilities.attachmentsstillFalse;downloadTextFileimported only by ChatNodeView/CodeNodeView) and that the HtmlNodeView rewording matches the actual sandbox posture (sandbox="allow-scripts", noallow-same-origin)SceneCanvas'sPlaceholderNodeViewrendered "placeholder — real nodes land in R3" as body text — the most visible instance, reachable by double-clicking empty canvas and as the fallback for any unrecognized node kind. The initial sweep coveredtitleattributes and quoted strings but not JSX text content.web_ui/src/app/orbackend/; remaining hits are code comments, docstrings, and test-failure messages (internal history, out of scope)