[Feat]: Notebooks: filter outline entries by their displayed text
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 88/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- react, sql, typescript
Research direction
Start with packages/web-ui/src/components/notebook/NotebookOutline.tsx and packages/web-ui/src/utils/notebookOutline.ts; the issue says the component maps outline entries to navigation buttons and has no text filter. Read the existing helper tests in packages/web-ui/tests/utils/notebookOutline.test.ts first. Done means the displayed entries filter as specified, navigation targets and notebook state stay unchanged, and the listed cases are covered.
Written by the indexing model from the issue text.
Description
Prerequisites
- I have written a descriptive issue title.
- I have searched existing issues and open pull requests to avoid duplicating an existing feature request.
🚀 Feature Proposal
Add a small local search field to the notebook outline to filter its existing entries by displayed name, heading or fallback label.
Motivation
A notebook with many named cells and headings should be navigable without manually scrolling its full outline.
Example
Type revenue in the outline search field to show matching cell names and Markdown headings. Clear the field to restore the complete outline.
Acceptance criteria
- Filter existing outline entries case-insensitively by their displayed text, trimming the search term and preserving original order and indentation.
- Do not filter/hide notebook cells or renumber cell_N references; matching entries retain their existing target cell ids.
- Provide an accessible label, clear action and localized no-matches state. Clearing restores the full list without changing the notebook.
- Keep the query local to the outline session, outside persisted document/undo state, and update matches as cell names or headings change.
- Test SQL names, Markdown headings, fallback labels, case/whitespace, no matches and unchanged navigation targets.
Where to start
Verified against main at 066e41c34001edbc6c869ed726aa3958d3ae7db5: NotebookOutline maps every extractOutline entry directly to a navigation button. There is no outline query or text filter.
packages/web-ui/src/components/notebook/NotebookOutline.tsxpackages/web-ui/src/utils/notebookOutline.ts
Existing test references:
Scope: Displayed outline text only; full SQL-source search, regex search and result searching are outside this milestone.
Plugin behavior: UI-only filtering must work identically for every driver and without a live connection.
Good first issue scope: Local component state plus a small pure entry filter; no persistence, SQL parsing or execution changes.
Contributor notes
- Follow AGENTS.md and the repository rules. Run upstream GitNexus impact analysis before editing existing symbols and report the blast radius; run change detection before committing.
- Add new UI strings to every locale under
packages/web-ui/src/i18n/locales/. Use design tokens, keyboard access, accessible labels and visible focus. - Keep pure frontend helpers under
packages/web-ui/src/utils/and tests under matchingpackages/web-ui/tests/paths. Run focused tests,pnpm typecheck,pnpm lintandpnpm build; extend existing notebook tests for the behaviors above. - Preserve desktop and web behavior. Any necessary shared backend logic belongs in
src-tauri/src/application/or plain modules, with transport-specific code in the corresponding transport module. For backend changes, run relevant Rust tests andcargo check --no-default-featuresfromsrc-tauri/. - Questions? Ask here or on Discord.
- Dominant language
- TypeScript
- Stars
- 5.1k
- Forks
- 335
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 240
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from TabularisDB/tabularis
-
feature request good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
TabularisDB/tabularis#1511 ·
Maintainers usually reply within 2 days
-
feature request good first issue
Difficulty 3/5 1-2 days Newbie friendliness 82/100
TabularisDB/tabularis#1514 ·
Maintainers usually reply within 2 days
-
feature request good first issue
Difficulty 3/5 1-2 days Newbie friendliness 72/100
TabularisDB/tabularis#1512 ·
Maintainers usually reply within 2 days
-
feature request
Difficulty 4/5 3-5 days Newbie friendliness 57/100
TabularisDB/tabularis#1510 ·
Maintainers usually reply within 2 days
-
feature request
Difficulty 5/5 Over a week Newbie friendliness 35/100
TabularisDB/tabularis#1509 ·
Maintainers usually reply within 2 days
All issues in TabularisDB/tabularis
Similar issues
-
idea-scout idea:453
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
jeanibarz/agent-notebook#453 ·
Maintainers usually reply within 1 day
-
level/task
Difficulty 1/5 Under an hour Newbie friendliness 95/100
wazuh/wazuh-dashboard-plugins#9642 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 91/100
unicef/adt-studio#1112 ·
Maintainers usually reply within 2 days
-
Difficulty 1/5 Under an hour Newbie friendliness 75/100
-
Autocomplete still accepts an option after becoming disabledPossibly taken @Xapollon430 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day