docs: fill more feature gaps + correct existing pages#2464
Merged
Conversation
✅ Deploy Preview for notion2anki ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
b0c217c to
0c63d0b
Compare
4 tasks
aalemayhu
added a commit
that referenced
this pull request
May 19, 2026
…2467) ## Summary The Playwright test [\`tests/onboarding-tour.spec.ts:123\`](https://github.com/2anki/server/blob/main/web/tests/onboarding-tour.spec.ts#L123) — *"user created before migration cutoff does not see the tour"* — has been **failing on every PR**, including main itself. The pre-existing failure has blocked the local merge-status hook on the recent docs PRs (#2463 already merged via admin bypass, #2464 still open and blocked). ## Diagnosis | Field | Value | |---|---| | Production cutoff | \`MIGRATION_CUTOFF = '2026-05-19T00:00:00.000Z'\` ([OnboardingTour.tsx:29](https://github.com/2anki/server/blob/main/web/src/pages/UploadPage/components/OnboardingTour/OnboardingTour.tsx#L29)) | | OLD_USER fixture | \`created_at: '2026-06-07T10:00:00.000Z'\` | | Comparison | \`2026-06-07 >= 2026-05-19\` → true → tour shown → test fails | The fixture date was AFTER the cutoff but the test name claims it represents a user from BEFORE the cutoff. The two were never reconciled. The unit test (\`OnboardingTour.test.tsx\`) doesn't trip on this because it injects \`migrationDate={MIGRATION_DATE}\` via prop, using \`'2026-06-08T00:00:00.000Z'\` so 06-07 is correctly "before". The Playwright test runs the real component and hits the production const directly. ## Fix One line. Move OLD_USER's \`created_at\` to \`'2026-04-15T10:00:00.000Z'\` — clearly before the production cutoff. No production code change. The component, the cutoff date, and every other test stay as they are. ## Not in this PR - No changelog entry — test-only change, no user-visible behavior. - No sonar-scanner — single test-fixture line per \`.claude/rules/sonar.md\` exception list. ## Test plan - [ ] CI: Playwright workflow goes green for the first time in days. - [ ] All other tests stay green (unit test for the same component was already passing via prop injection — no risk of regressing it). - [ ] Once merged, #2464 (docs Wave 2) gets a clean check rollup and can merge normally without admin bypass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- codesmith:footer --> --- <a href="https://app.blacksmith.sh/2anki/codesmith/server/pr/2467"><picture><source media="(prefers-color-scheme: dark)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-in-codesmith-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-in-codesmith-light.svg"><img alt="View in Codesmith" src="https://pr-comments-assets.blacksmith.sh/codesmith/view-in-codesmith-dark.svg"></picture></a> <sup>Need help on this PR? Tag <code>@codesmith</code> with what you need.</sup> - [ ] Let Codesmith autofix CI failures and bot reviews <!-- /codesmith:footer --> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wave 2 of the documentation gap audit. Adds the visual/interactive features that needed real walkthroughs, plus several corrections to existing pages that had drifted from the code. New pages: - cards/image-occlusion — canvas masking tool: how to draw boxes, hide-all vs hide-one modes, draft auto-save, common mistakes - cards/templates — note-types library at /templates: browse, preview, download, customize, the three sections (yours / official / starter) - reference/chat — Chat study assistant at /chat: prompt patterns, conversation history, message quotas by plan, what we store - reference/print-export — /print PDF export: paper sizes, margins, privacy, the 2-hour file retention window Corrections to existing pages: - start-here/what-is-2anki — "Two ways to use it" was missing Auto Sync. Renamed to "Three ways" and added the paid recurring path with a link to How sync works. - cards/card-options — added the MCQ section (Enable, Show, Shuffle, TTS for Q/A/Extra with 7 languages), font-size, toggle-mode, page-emoji, custom note-type model names (basic/cloze/input), and user-instructions for the Claude AI option. Also broke the flat 21-row table into 7 grouped tables (Deck shape, Card content, Card types, Filtering, Links & formatting, PDF & AI, Multiple choice, Debugging). - cards/notion-blocks — moved PDF embed from Implemented to Unsupported (the code falls through to default with an "unsupported: <type>" fallback). Added new unsupported blocks: Heading 4, Meeting notes, Tab, Transcription. Added a "Sub-deck-only" section for Child database. - reference/file-formats — added a row for Word documents (.docx/.doc), which the upload accepts and converts via LibreOffice. - sync/review-export — corrected the required-properties list. The code only needs Date + Reviews, not the 5 listed (Reviews/Lapses/Ease/Last review/Due). Also updated the plan tier — Auto Sync subscribers have access too, not only Lifetime. Banner update: - WipBanner — added "with help from AI" so readers know how these pages are being written. Sidebar: - "Make better cards" gains Image occlusion and Note types and templates - "Reference" gains Chat — study assistant and Print or export to PDF Depends on docs/fill-feature-gaps (#2463). When that merges, the references to ai-flashcards, parser-rules, and plans become real and a follow-up edit can re-add the links that were dropped here to keep tests green. No changelog entry — documentation additions, no product-behavior change. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three links were intentionally dropped from Wave 2 because the target pages (cards/ai-flashcards, cards/parser-rules, reference/plans) only existed on the Wave 1 branch. Wave 1 has merged, so the targets are now live on main and the link-integrity test stays green with them restored. - reference/chat.md → links AI flashcards (body + Related) - reference/print-export.md → links Short plans and trial (body + Related) - cards/notion-blocks.md → links Parser rules (Child page note + Sub-deck-only section) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0c63d0b to
f2b2c03
Compare
|
6 tasks
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.



Summary
Wave 2 of the documentation gap audit, plus several corrections to existing pages that had drifted from the code (Al flagged each one in real time).
New pages
cards/image-occlusion— the/image-occlusioncanvas tool. How to draw boxes, hide-all vs hide-one modes, draft auto-save, common mistakes.cards/templates— the/templateslibrary. The three sections (Your / Official / Starter), preview, download, customize, the "edit but Anki imports by name" gotcha.reference/chat— the/chatstudy assistant. Prompt patterns, conversation history, message quotas by plan, what we store and don't.reference/print-export— the/printtool. Paper sizes, margins, the 2-hour file retention, the Subscription/Lifetime gate.Corrections to existing pages
start-here/what-is-2anki— "Two ways to use it" was missing Auto Sync. Renamed to "Three ways" and added the paid recurring path with a link to How sync works.cards/card-options— the table was missing the entire MCQ section (Enable / Show / Shuffle / TTS for Q/A/Extra in 7 languages), font-size, toggle-mode, page-emoji, custom note-type model names, and user-instructions for the Claude AI option. Also split the flat 21-row table into 7 grouped tables (Deck shape, Card content, Card types, Filtering, Links & formatting, PDF & AI, Multiple choice, Debugging).cards/notion-blocks— moved PDF embed from Implemented to Unsupported (the code falls through to the default-case fallback that rendersunsupported: <type>+ a JSON dump). Added new Notion blocks as unsupported: Heading 4, Meeting notes, Tab, Transcription. Added a "Sub-deck-only" section for Child database (it doesn't render as a card but can be a sub-deck source).reference/file-formats— added a row for Word documents (.docx / .doc). The upload accepts them and they convert via LibreOffice.sync/review-export— corrected the required-properties list. The code (AnkifyRouter.ts:238-239) only needs Date (date) + Reviews (number), not the five we were listing (Reviews/Lapses/Ease/Last review/Due). Also updated plan tier — Auto Sync subscribers have access, not just Lifetime.Banner update
WipBanner.tsx— added "with help from AI" to the docs banner. The full new copy: "These docs are being rewritten with help from AI. If something looks wrong, open an issue — we read every one." Al asked for explicit transparency about how the docs are being written.Sidebar
Dependencies and known follow-up
cards/ai-flashcards,cards/parser-rules,reference/plans. They were dropped here socontent-links.test.ts(the link-integrity check) stays green. A short follow-up PR after Wave 1 lands can re-add the links.Not in this PR
docs:is not in the changelog table perCLAUDE.md..claude/rules/sonar.mdsonar is skipped for "pure doc/dep/test/typo changes".Test plan
/checkis green — server tsc, web typecheck, 774 vitest, biome lint all clean locally./documentation/cards/image-occlusion,/documentation/cards/templates,/documentation/reference/chat,/documentation/reference/print-exportand confirm each renders./documentation/start-here/what-is-2ankiand confirm "Three ways to use it" appears with the Auto Sync entry./documentation/cards/card-optionsand confirm the new grouped tables (especially the Multiple choice section)./documentation/cards/notion-blocksand confirm PDF embed shows under Unsupported./documentation/sync/review-exportand confirm the property list is just Date + Reviews./documentation/reference/file-formatsand confirm the Word row.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmithwith what you need.