Repository navigation
Conversation
… tabs (#16900) Research was three top-level Knowledge sidebar entries answering one question: /knowledge/research, /knowledge/web-research and /knowledge/web-research-settings. Three doors, one job — and the settings for web research sat apart from the thing they configure. `/knowledge/research` is now the single surface, with Research, Web Tools and Settings as tabs. The other two paths redirect with `?tab=`, kept rather than deleted, the same treatment /knowledge/watch-folders and /knowledge/connectors (#16897) got, so existing links and bookmarks survive. This hosts the three panels; it does not merge them, and that is deliberate. They read as two iterations of one feature and are not: KnowledgeResearchPanel opens a WebSocket and runs an agentic research task against a query; WebResearchPanel is four web-fetching primitives (scrape/crawl/sitemap/extract, MVA-344) with its own inner tabs. They share a subject, not an implementation. Collapsing them would conflate an agentic run with a scraping toolkit and lose the distinction that makes each usable. What collapses is the navigation. No new i18n keys. All three tab labels already existed and were translated in all 11 locales — `knowledge.views.research`, `knowledge.webResearch.navLabel` and `knowledge.webResearch.settingsNavLabel` — so the tabs reuse them rather than adding a twelfth spelling of the same words. `knowledge.webResearch.navAriaLabel` and `settingsNavAriaLabel` had the removed sidebar entries as their only consumers and are dropped from all 11 locales in the same commit. Verified against the filesystem rather than `git grep`, which cannot see the new untracked component — the first check reported the two labels I actually use as orphaned for exactly that reason. Closes #16900
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (14)
💤 Files with no reviewable changes (12)
Included review availability: Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe Knowledge area now uses one research route with Research, Web Tools, and Settings tabs. Legacy web research routes redirect to their corresponding tabs. The sidebar removes the separate web research entries, and obsolete locale keys are removed. ChangesKnowledge research surface
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant Browser
participant Router
participant KnowledgeResearchTabs
participant ResearchPanels
Browser->>Router: Open research route
Router->>KnowledgeResearchTabs: Load tabbed surface
KnowledgeResearchTabs->>KnowledgeResearchTabs: Read ?tab=
KnowledgeResearchTabs->>ResearchPanels: Render selected panel
Merge Risk: ⚪ Minimal · up to Existing research links and bookmarks continue to reach their corresponding tabs. No unresolved merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
Superseded by #16907, which carries this change and #16898's together as one train. They are the same change to the same surface and shared 13 files — The commit is cherry-picked into #16907 unchanged; nothing is lost. Branch kept until #16907 merges. |
✅ SSOT Configuration Compliance: Passing🎉 No new hardcoded values of either class — Known backlog in |
Thinking Path
Research was three top-level Knowledge sidebar entries answering one question — how do I research
something — and the settings for web research sat apart from the thing they configure.
They read as two iterations of one feature. They are not, and I checked before assuming.
KnowledgeResearchPanelWebResearchPanel/api/ws/knowledge/researchuseWebResearchStoreThey share a subject, not an implementation, and neither is a newer version of the other. Collapsing
them into one component would conflate an agentic run with a scraping toolkit and lose the
distinction that makes each usable. So this consolidates the navigation, not the code.
The pattern is already established twice —
/knowledge/watch-foldersand, this session,/knowledge/connectors(#16897) — so this follows it rather than inventing one.What Changed
KnowledgeResearchTabs.vue(85 lines) hosting the three panels, with?tab=initialisation./knowledge/researchrenders it instead ofKnowledgeResearchPaneldirectly./knowledge/web-research→redirect: '/knowledge/research?tab=webTools'/knowledge/web-research-settings→redirect: '/knowledge/research?tab=settings'Verification
knowledge.views.research,knowledge.webResearch.navLabel,knowledge.webResearch.settingsNavLabel.Adding new ones would have meant eleven new translations of words the files already carry.
git grep, which cannot see thenew untracked component — so it reported
navLabelandsettingsNavLabelas orphaned whenKnowledgeResearchTabs.vueis precisely what uses them. Re-run against the filesystem, onlynavAriaLabelandsettingsNavAriaLabelare genuinely dead; those two are removed, consistentlyacross all 11 locales.
would break bookmarks silently — a 404 on a path that worked yesterday.
Issue #3850,MVA-344), so thehistory of why each existed is not lost to a redirect.
Icon.vue(search,globe,cog).WebResearchPanelkeeps its own four inner tabs, untouched, inside the new outer tab.CI is the gate —
vue-tscand the frontend suite cover what the static checks above cannot.Model Used
Claude Opus 5
Single-issue rationale
#16900 is one navigation change across one new component, three router entries and one view. It is
not batched because it is user-visible UI a reviewer should be able to accept or reject on its own.
It is deliberately not combined with #16898, the Connectors consolidation, even though they are the
same pattern on the same sidebar: each removes a door a user may rely on, and they deserve separate
verdicts.
Not in this PR
Any code-level sharing between the two research panels. If they should later share components, that
needs its own justification — this change is about the doors, and merging the panels would undo the
distinction documented above.
Closes #16900
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Navigation