Repository navigation
Text tab: show extracted text, move Extract text there, scope suggestions per tab - #42
Merged
Merged
Conversation
… failed Tabs keeps every panel mounted, so DocumentTextPanel fetched once when the asset opened (empty, nothing running) and never again. "Extract text" lives on the Info tab; the job ran and succeeded, but the Text tab kept saying no text had been read. The panel now reloads whenever the activity store's extract_text job for its asset changes. The job's error (a scanned PDF has no text layer) was likewise visible only beside the button on the Info tab, while the Text tab invited a re-run that cannot work. It is shown there too. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016qCc34GmfeFJr83WN71291
… own Extract text moves from Info to the top of the Text panel, beside the only place its output is shown. The button reports a failed run's reason itself, so the separate error block the panel gained earlier goes. SuggestionPanel took no notion of where it was. Details and Source both mount one (Tabs keeps every panel mounted) and both read every suggestion, so attribution proposals appeared on Details and title/tag proposals under Source. It now takes a scope - details: title and tag, source: attribution - applied as suggestions load, so "Accept all" cannot accept the other tab's. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016qCc34GmfeFJr83WN71291
davior
marked this pull request as ready for review
October 23, 2026 15:02
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.
What was wrong
1. "Extract text" appeared to do nothing. The backend was fine: I ran the real server, uploaded a Chromium-generated PDF, hit
POST /extract-text, and the job finished in ~35 ms with the text stored and returned byGET /text. The UI was at fault. The button lived on Info and the result on Text, andTabskeeps every panel mounted, soDocumentTextPanelfetched once when the asset opened (empty, nothing running) and never again.2. Suggestions showed on the wrong tabs.
SuggestionPanelrendered every suggestion kind, and one is mounted on both Details and Source. So attribution proposals appeared on Details, and title/tag proposals under Source.Changes
DocumentTextPanelreloads whenever the activity store'sextract_textjob for its asset changes (keyed on job id + status, so a re-run is caught too).SuggestionPaneltakes a requiredscope:detailsshows title and tag suggestions,sourceshows attribution. The filter is applied as suggestions load, so "Accept all" and the empty state follow it and Accept all on Details can no longer accept attribution.Testing
npm run buildpass. Backend suite (1272) passed on the first commit; this one touches no backend code.Not changed
A scanned PDF or photographed page will still fail with the OCR message, since OCR isn't implemented.
🤖 Generated with Claude Code
https://claude.ai/code/session_016qCc34GmfeFJr83WN71291