Skip to content

feat(classic-ui): add classic menu resources and cursor intents - #288

Open
jrepp wants to merge 1 commit into
mainfrom
feat/classic-menu-resources
Open

feat(classic-ui): add classic menu resources and cursor intents#288
jrepp wants to merge 1 commit into
mainfrom
feat/classic-menu-resources

Conversation

@jrepp

@jrepp jrepp commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Context

Classic menu resources imported from HyperCard need both a core representation and a visible menu projection in the app. The menu source test already expected ClassicMenuCommandMapper output to be exposed through app commands, so this branch now contains that UI/runtime hookup instead of leaving the parser detached.

Changes Made

  • Added ClassicMenuResources.swift for decoding imported Classic menu resources into menu/item models.
  • Added a Classic command menu in GoMenuCommands that projects imported menus from the focused stack.
  • Added a Classic menu runner that dispatches selected items through the existing HypeTalk doMenu path and applies document mutations/navigation through the normal coordinator.
  • Added/kept MenuCommandSourceTests coverage asserting imported menu resources surface as Classic menu commands.

Testing & Verification

  • scripts/test.sh --filter MenuCommandSourceTests (5 tests passed)

Review Notes

  • Review the Classic menu runner path in GoMenuCommands.swift for whether doMenu is the right compatibility boundary for all imported menu items.
  • Review whether disabled Classic menu items should remain visible but disabled, as implemented here, or be hidden to better match HyperCard behavior.
  • No .hype document format changes are introduced.

@jrepp
jrepp force-pushed the feat/classic-menu-resources branch from ef6c522 to 8fc859e Compare June 21, 2026 01:19
@jrepp
jrepp changed the base branch from refactor/ai-audio-simplify to main June 21, 2026 01:19
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