Files
Michael Ramos 062106ff90 fix: improve markdown rendering and bullet alignment (#530)
* fix: pin bullet markers to top of multi-line list items

- Add `items-start` to list item flex container so markers align to the
  first line instead of centering vertically across the full item height
- Use consistent bullet glyph (•) across all nesting levels
- Add test fixture 10 covering all bullet/list types and inline gap cases

For provenance purposes, this commit was AI assisted.

* fix: improve inline markdown rendering

- Add strikethrough support (~~text~~)
- Fix ***bold italic*** by checking triple-asterisk before double
- Nudge checkbox icons down 3px to align with text baseline

For provenance purposes, this commit was AI assisted.

* fix: add backslash escaping to inline markdown renderer

- Add \* \_ \` \[ \~ \\ escape sequences — consume backslash and emit literal character
- Add \ to nextSpecial scanner so the escape handler fires correctly mid-text

For provenance purposes, this commit was AI assisted.

* fix: add autolink support to inline markdown renderer

- Handle <https://url> as clickable external links
- Handle <email@domain.com> as mailto links
- Add < to nextSpecial scanner so autolinks are detected mid-text

For provenance purposes, this commit was AI assisted.

* chore: remove HTML entities from test fixture

Not a supported feature — matches Obsidian behavior.

For provenance purposes, this commit was AI assisted.

* fix: prevent empty DocBadges wrapper in sticky header row layout

In row layout, check hasPreviousVersion && planDiffStats (what
PlanDiffBadge actually needs) instead of onPlanDiffToggle (always
truthy). Prevents an empty wrapper div that created phantom width
via gap-x-3 in the sticky bar.

For provenance purposes, this commit was AI assisted.
2026-04-09 16:44:31 -07:00
..

Tests

This directory contains manual testing scripts for Plannotator.

UI Tests (manual/local/)

These scripts test the UI components and require a browser.

Plan review UI:

./tests/manual/local/test-hook.sh          # Claude Code simulation
./tests/manual/local/test-hook-2.sh        # OpenCode origin badge test

Code review UI:

./tests/manual/local/test-opencode-review.sh  # Code review UI test
./tests/manual/local/test-worktree-review.sh  # Worktree support test (creates sandbox with 4 worktrees)

See UI-TESTING.md for detailed UI testing documentation.

Integration & Utility Tests (manual/local/)

These scripts test integrations, releases, and provide utilities.

Binary release testing:

./tests/manual/local/test-binary.sh        # Test installed binary from ~/.local/bin/

Tests the installed plannotator binary to verify releases work correctly.

Bulk plan testing (Obsidian integration):

./tests/manual/local/test-bulk-plans.sh    # Iterate through ~/.claude/plans/

Opens each .md file from ~/.claude/plans/ in Plannotator. Great for testing Obsidian integration with multiple plans.

OpenCode integration sandbox:

./tests/manual/local/sandbox-opencode.sh [--disable-sharing] [--keep] [--no-git]

Creates a temporary sandbox with a sample React/TypeScript project, initializes git with uncommitted changes, sets up the local OpenCode plugin, and launches OpenCode for full integration testing.

Options:

  • --disable-sharing: Creates opencode.json with sharing disabled
  • --keep: Don't clean up sandbox on exit
  • --no-git: Skip git initialization (tests non-git fallback)

Obsidian utility:

./tests/manual/local/fix-vault-links.sh /path/to/vault/plannotator

Adds Obsidian backlinks ([[Plannotator Plans]]) to existing plan files in your vault.

SSH Remote Testing (manual/ssh/)

Tests SSH session detection and port forwarding for remote development scenarios.

cd tests/manual/ssh/
docker-compose up -d
./test-ssh.sh

See manual/ssh/DOCKER_SSH_TEST.md for detailed setup instructions.