Skip to content

docs: fill more feature gaps + correct existing pages#2464

Merged
aalemayhu merged 2 commits into
mainfrom
docs/wave-2-visual-features
May 19, 2026
Merged

docs: fill more feature gaps + correct existing pages#2464
aalemayhu merged 2 commits into
mainfrom
docs/wave-2-visual-features

Conversation

@aalemayhu
Copy link
Copy Markdown
Contributor

@aalemayhu aalemayhu commented May 19, 2026

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-occlusion canvas tool. How to draw boxes, hide-all vs hide-one modes, draft auto-save, common mistakes.
  • cards/templates — the /templates library. The three sections (Your / Official / Starter), preview, download, customize, the "edit but Anki imports by name" gotcha.
  • reference/chat — the /chat study assistant. Prompt patterns, conversation history, message quotas by plan, what we store and don't.
  • reference/print-export — the /print tool. 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 renders unsupported: <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

  • "Make better cards" gains Image occlusion and Note types and templates
  • "Reference" gains Chat — study assistant and Print or export to PDF

Dependencies and known follow-up

  • Depends on docs: fill feature gaps in /documentation #2463 (Wave 1). When that merges, three references in this PR can become real links: cards/ai-flashcards, cards/parser-rules, reference/plans. They were dropped here so content-links.test.ts (the link-integrity check) stays green. A short follow-up PR after Wave 1 lands can re-add the links.
  • The image-occlusion and templates pages are prose-only. Designer agent recommended a GIF for image-occlusion and a grid screenshot for templates; both are still valuable as text and can take visuals in a later PR.

Not in this PR

  • No changelog entry. Documentation additions, not product-behavior changes — docs: is not in the changelog table per CLAUDE.md.
  • No sonar-scanner. Markdown + one banner string + sidebar array entries; per .claude/rules/sonar.md sonar is skipped for "pure doc/dep/test/typo changes".

Test plan

  • /check is green — server tsc, web typecheck, 774 vitest, biome lint all clean locally.
  • Visit /documentation/cards/image-occlusion, /documentation/cards/templates, /documentation/reference/chat, /documentation/reference/print-export and confirm each renders.
  • Visit /documentation/start-here/what-is-2anki and confirm "Three ways to use it" appears with the Auto Sync entry.
  • Visit /documentation/cards/card-options and confirm the new grouped tables (especially the Multiple choice section).
  • Visit /documentation/cards/notion-blocks and confirm PDF embed shows under Unsupported.
  • Visit /documentation/sync/review-export and confirm the property list is just Date + Reviews.
  • Visit /documentation/reference/file-formats and confirm the Word row.
  • Open any docs page and confirm the new banner copy mentions AI.

🤖 Generated with Claude Code


View in Codesmith
Need help on this PR? Tag @codesmith with what you need.

  • Let Codesmith autofix CI failures and bot reviews

@netlify
Copy link
Copy Markdown

netlify Bot commented May 19, 2026

Deploy Preview for notion2anki ready!

Name Link
🔨 Latest commit f2b2c03
🔍 Latest deploy log https://app.netlify.com/projects/notion2anki/deploys/6a0cbd9a8ca7a500083fd8c9
😎 Deploy Preview https://deploy-preview-2464--notion2anki.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@aalemayhu aalemayhu marked this pull request as ready for review May 19, 2026 17:41
@aalemayhu aalemayhu force-pushed the docs/wave-2-visual-features branch from b0c217c to 0c63d0b Compare May 19, 2026 17:46
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>
aalemayhu and others added 2 commits May 19, 2026 21:44
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>
@aalemayhu aalemayhu force-pushed the docs/wave-2-visual-features branch from 0c63d0b to f2b2c03 Compare May 19, 2026 19:44
@aalemayhu aalemayhu merged commit e9892ab into main May 19, 2026
13 checks passed
@aalemayhu aalemayhu deleted the docs/wave-2-visual-features branch May 19, 2026 19:45
@sonarqubecloud
Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant