Skip to content

fix(frontend): Encounter→friend open hotkey, work experience add, Enter-to-open in list search#164

Merged
enko merged 3 commits into
mainfrom
fix/encounter-friend-open-and-work-experience
Jun 4, 2026
Merged

fix(frontend): Encounter→friend open hotkey, work experience add, Enter-to-open in list search#164
enko merged 3 commits into
mainfrom
fix/encounter-friend-open-and-work-experience

Conversation

@enko

@enko enko commented Jun 4, 2026

Copy link
Copy Markdown
Member

Summary

Three keyboard/UX fixes on the frontend:

  1. Open friends from encounter detail (o) — pressing o on an encounter detail page did nothing because no open-mode config existed for /encounters/:id. Added an encounter-friend open mode (stores, config entry, handler branch, hint badges on each friend chip, hint panel, help-dialog entry) mirroring the collective-member pattern. o then a hint number now opens the corresponding friend.

  2. Add work experience to friendsProfessionalHistorySection was only mounted when the friend already had professional history / interests / metInfo, so for friends without any of those the shortcut:add-professional listener never registered and the add affordance was unreachable. Now mounted unconditionally like every other detail section.

  3. Enter-to-open-first in list search — on the friends, encounters, and collectives list pages, pressing Enter while focused in the search box navigates to the first item in the filtered list. Handler lives on each input directly (the global shortcut layer suppresses keys while an input is focused). Also tagged the encounters search input with data-search-input so / focuses it like the other lists.

Commits

  • fix(frontend): Allow adding work experience to friends with empty history
  • feat(frontend): Open linked friends from encounter detail with o
  • feat(frontend): Open first result on Enter in list search boxes

Testing

aube run check (in container): 0 errors, 31 pre-existing warnings (none in touched files).

🤖 Generated with Claude Code

enko and others added 3 commits June 4, 2026 09:19
…tory

ProfessionalHistorySection was only mounted when the friend already had
professional history, interests, or metInfo. For a friend without any of
these the component never mounted, so the shortcut:add-professional
listener was never registered and the add affordance was unreachable.

Mount the section unconditionally like all other detail sections so the
add-work-experience shortcut and menu action always work.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pressing o on the encounter detail page did nothing because no open-mode
config existed for the /encounters/:id route. Add an encounter-friend
open mode mirroring the collective member pattern: a store of the
encounter's linked friend IDs, keyboard hint badges on each friend chip,
a hint panel, and a help-dialog entry. Pressing o then a hint number now
navigates to the corresponding friend.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
On the friends, encounters, and collectives list pages, pressing Enter
while focused in the search/filter box now navigates to the first item in
the currently filtered list. The handler lives on each input directly
because the global shortcut layer suppresses keys while an input is
focused.

Also tag the encounters search input with data-search-input so the `/`
shortcut focuses it like the other lists. Collectives opens the first
client-side sorted item to match what is rendered.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves frontend keyboard navigation and accessibility of key actions by extending the existing shortcut/open-mode system to encounters, ensuring “add work experience” shortcuts always register on friend detail pages, and adding Enter-to-open behavior for list search inputs.

Changes:

  • Added an “open friend from encounter detail” open-mode: new UI stores, shortcut handler branch, open-mode config entry, hint panel wiring, help dialog entries, and hint badges on encounter-friend chips.
  • Ensured ProfessionalHistorySection is always mounted on friend detail pages so the shortcut:add-professional listener is always registered (even with empty history).
  • Added “press Enter to open first result” behavior on friends/encounters/collectives list search inputs, and tagged the encounters search input with data-search-input for /-to-focus consistency.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
File Description
apps/frontend/src/lib/stores/ui.ts Adds encounter-friend open-mode state stores (active flag, prefix, visible IDs).
apps/frontend/src/lib/shortcuts/keyboard-shortcuts.svelte Clears new open-mode state and shows the hint panel for encounter-detail friend opening.
apps/frontend/src/lib/shortcuts/handlers/index.ts Starts encounter-detail open-mode sequence (o) by activating the new open-mode store.
apps/frontend/src/lib/shortcuts/config.ts Registers a new open-mode config for /encounters/:id to open linked friends.
apps/frontend/src/lib/shortcuts/components/help-dialog.svelte Documents the new encounter-detail “open friend” keyboard flow.
apps/frontend/src/lib/components/friends/friend-list.svelte Opens the first visible friend result on Enter from the search input.
apps/frontend/src/lib/components/friends/friend-detail.svelte Mounts ProfessionalHistorySection unconditionally so add shortcut is always available.
apps/frontend/src/lib/components/encounters/encounter-list.svelte Opens the first visible encounter on Enter; adds data-search-input for / focus.
apps/frontend/src/lib/components/encounters/encounter-detail.svelte Publishes visible linked-friend IDs and renders hint badges on friend chips for open-mode.
apps/frontend/src/lib/components/collectives/collective-list.svelte Opens the first visible collective on Enter from the search input.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@enko enko merged commit 270d547 into main Jun 4, 2026
8 checks passed
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 2.76.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants