Skip to content

Repurpose manual sources as Favorites#582

Merged
loganj merged 5 commits intomainfrom
penpal-favorites-from-manual-s
Apr 9, 2026
Merged

Repurpose manual sources as Favorites#582
loganj merged 5 commits intomainfrom
penpal-favorites-from-manual-s

Conversation

@loganj
Copy link
Copy Markdown
Collaborator

@loganj loganj commented Apr 7, 2026

Summary

  • Repurpose legacy manual sources into a dedicated Favorites section in the project sidebar.
  • Manage favorites from context menus instead of showing a star next to every row.
  • Allow adding and removing favorites from any file or directory row, regardless of source section.

Most Noticeable

Behavior Before After
Sidebar organization Manually added paths and directories showed up as ordinary source groups mixed into the normal sidebar. They show up in a dedicated Favorites section at the top of the project sidebar.
How you add one Adding one felt like source management. You right-click a file or directory row and choose Add to Favorites.
How you remove one Removing one felt like removing a manual source entry. You right-click the favorite again and choose Remove from Favorites.
Visual clutter Every file and directory row had an inline star affordance. Inline stars are gone; rows look normal and favorites actions live in the context menu.
Default visibility There was no favorites area to notice. If a project has favorites, the Favorites section auto-opens the first time you view that project/worktree.

Everyday Behavior

Behavior Before After
Access from normal sources Manual entries were mixed into the same mental model as All Markdown, thoughts, and other source sections. You can favorite files and directories directly from any source tree without changing how those sources render.
Access from Favorites There was no dedicated favorites surface. You can remove a file or directory from Favorites by right-clicking it there.
Access from In Review There was no favorites affordance there. In Review rows also support Add to Favorites / Remove from Favorites.
Clicking a favorited file It was just another source entry. It still opens like any other file, but it also stays pinned in Favorites.
Clicking a favorited directory It expanded as a source group. It expands as a pinned subtree inside Favorites.
Empty state There was no dedicated place for saved items. A dimmed No Favorites row appears when nothing is favorited.
Existing saved manual items They appeared as legacy manual sources. They appear automatically as favorites, so existing users keep their saved items.

Overlap Rules

Behavior Before After
Favorite + normal source Manual items felt source-like, so the relationship to other source buckets was murkier. The same file can appear in Favorites and still appear in its normal source section below.
Favorite directory + favorite child file This was awkward and source-oriented. Both appear separately in Favorites, making the overlap explicit.
Duplicate-looking entries The UI nudged toward one “home” per file. Seeing the same file multiple times is expected when it is both favorited and otherwise discoverable.

Managing Favorites

Behavior Before After
File favorite action The affordance lived inline on the row. The action lives in the file row context menu.
Directory favorite action The affordance lived inline on the row. The action lives in the directory row context menu.
Scope of the action Favorites were mainly surfaced through All Markdown and Favorites. Favorites can be managed from any source tree, plus Favorites, plus In Review.
Directory contents reliability Favorite directory contents depended more tightly on internal source tagging. Favorite directories build their contents from known markdown files under that path, so they behave more robustly across source views.

Subtle Edge Cases

Behavior Before After
Exactness of a favorite Source semantics mattered more than exact row identity. A favorite reflects whether that exact file or exact directory is a favorite root.
Directory descendants Descendants were implicitly “in that source.” Descendants shown under a favorited directory are visible because of the parent favorite, not because each one is separately favorited.
Worktrees Manual-source behavior was tied more directly to source plumbing. Favorites follow the currently viewed project/worktree, so the contents reflect that context.
Badges and review state Manual sources could feel like a separate source identity. Favorites mainly change placement and pinning; files still keep their usual badges and review markers.

Validation

  • go test ./internal/server ./internal/cache
  • npm --prefix frontend run typecheck
  • npm --prefix frontend run build

Anchors

  • Sync PRODUCT.md, ERD.md, and TESTING.md with the shipped Favorites UX and remove stale traceability IDs.
  • Align stale code/test trace tags with the current ERD and PRODUCT requirements.
  • Add targeted coverage for the macOS file-handler plist and Tauri request construction.
  • anchors check .
  • go test ./internal/server ./internal/agents
  • cargo test --manifest-path frontend/src-tauri/Cargo.toml

@loganj loganj force-pushed the penpal-favorites-from-manual-s branch from 505788d to d310961 Compare April 9, 2026 16:48
@loganj loganj marked this pull request as ready for review April 9, 2026 17:00
@loganj loganj merged commit a48a138 into main Apr 9, 2026
5 checks passed
@loganj loganj deleted the penpal-favorites-from-manual-s branch April 9, 2026 18:04
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