feat(debugger): add statement stepping and polish script editor - #292
Open
jrepp wants to merge 5 commits into
Open
feat(debugger): add statement stepping and polish script editor#292jrepp wants to merge 5 commits into
jrepp wants to merge 5 commits into
Conversation
jrepp
force-pushed
the
feat/script-debugger
branch
from
June 21, 2026 01:08
9a60a0f to
6652e99
Compare
1 task
jrepp
force-pushed
the
feat/script-debugger
branch
2 times, most recently
from
June 21, 2026 16:05
1c74bff to
c26f8f9
Compare
…cing - Add HypeTalkScriptTraceRecorder for structured execution traces - Add ScriptDebuggerView for visual script debugging - Add HypeTraceConfiguration for startup lifecycle tracing - Wire MessageDispatcher tracing hooks - Add GoMenuCommands debugger menu items - Configure HypeApp trace lifecycle (trace once, prevent duplicates) - Tests: HypeTalkScriptTraceRecorderTests, HypeTraceConfigurationTests
Add script debugger menu automation hooks, window/debugger wait tools, shared step controls, and breakpoint state cleanup coverage. Document handler-entry breakpoint limits and keep debugger teardown centralized through HypeTalkScriptTraceRecorder.resetDebuggerState().
Track dispatch and handler execution identity so Step Into and Step Over remain scoped across nested and concurrent handler runs. Capture parser statement locations for executable line breakpoints and keep the debug bridge, docs, and regression coverage aligned.
Give the script editor stable three-pane sizing and fixed toolbar controls, resolve readable AppKit theme colors, and keep attributed glyphs visible through the hosted scroll-view compositor. Add light/dark and hosted-layout regressions.
jrepp
force-pushed
the
feat/script-debugger
branch
from
July 30, 2026 23:04
c26f8f9 to
b2f1eab
Compare
Return operation handles for debugger waits and script-dispatch hooks so external acceptance clients remain responsive across breakpoints and AppKit modal loops. Include editor/window scoping, visual refresh, alert automation, timing remediation, regression coverage, and protocol documentation from the live QA pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a usable, session-scoped HypeTalk debugger with statement breakpoints, Step Into/Step Over semantics, pollable debug-port automation, modal-error inspection/dismissal, and a script editor whose text and controls remain readable, correctly sized, and synchronized with external script changes.
Context
PR #292 establishes the in-process tracing/debugger implementation used by the live Hype debug bridge and the follow-on MCP surface in PR #286. The earlier handler-entry tracing worked, but authoring and external acceptance testing needed executable-line breakpoints, real nested-call stepping, execution scoping, nonblocking automation, and a reliable script-editor UI.
No
.hypedocument shape, persistence, keychain, provider, or stack file-access behavior changes. Debugger and debug-operation state remains process/session-only. The local debug bridge remains a privileged local Unix-socket boundary and all wrapped mutation calls continue through their existing mutation gates.Changes Made
debug/startOperation,debug/pollOperation, anddebug/forgetOperationRPCs. Terminal results expire after five minutes; the registry is capped at 128 operations.hype_wait_for_debugger_pauseandhype_step_script_execution_and_waitto return operation UUIDs immediately instead of holding callers open.hype_list_alertsandhype_dismiss_alert, including a modal-run-loop-safe socket path that can inspect and clear document-open errors while normal main-actor work is suspended.hype_set_scriptchanges and corrected displayed debug-document activation.Testing & Verification
scripts/test.shfocused debugger/MCP operation filters — 24 tests in 3 suites passed.swift test --no-parallel --filter HypeCoreTests --filter HypeCLITests— 3,361 tests in 349 suites passed, including interpreter fuzz/property coverage.node --check Tools/hype-mcp-server/bin/hype-mcp.jspassed.debug/pollOperationremained responsive while AppKit displayed an application-modal invalid-document error.debug/getState.hype_start_debug_operation, andhype_poll_debug_operationcompleted successfully against the deployed app../script/build_and_run.sh --deploypassed;/Applications/Hype.appwas relaunched and verified.git diff --checkpassed.Screenshots / GIFs
Checklist
architecture.mdanddecisions.md..hypestack documents unless required by this change.Known limitations: debugger breakpoints, watchpoints, pauses, trace entries, and pollable operation results are intentionally process/session state and are not persisted into user stacks. Pending operations remain until their underlying work completes; completed and failed results expire after five minutes.