Skip to content

perf: make loadCodePreviewSettings non-blocking in session_start#14

Open
monotykamary wants to merge 1 commit into
mattleong:mainfrom
monotykamary:perf/non-blocking-session-start
Open

perf: make loadCodePreviewSettings non-blocking in session_start#14
monotykamary wants to merge 1 commit into
mattleong:mainfrom
monotykamary:perf/non-blocking-session-start

Conversation

@monotykamary
Copy link
Copy Markdown
Contributor

Summary

session_start currently awaits loadCodePreviewSettings(), which reads up to 6 JSON settings files from disk. This blocks the serial extension runner dispatch — every extension after pi-code-previews must wait for those file reads to complete before its own session_start handler can run.

Changes

  • await loadCodePreviewSettings(ctx.cwd)loadCodePreviewSettings(ctx.cwd).then(...) (fire-and-forget)
  • Shiki initialization is chained inside the .then() callback (needs settings to be loaded)
  • registerToolRenderers runs immediately — it doesn't depend on settings being loaded, and tool invocations will read settings lazily when called

Impact

Removes one await from the session_start handler chain, allowing the extension runner to proceed to the next extension immediately. On its own this saves ~5ms, but cumulatively across all extensions this pattern eliminates serial blocking that adds up during session startup and resume.

Fire-and-forget loadCodePreviewSettings().then() instead of await
so the session_start handler returns immediately and doesn't block
the serial extension runner dispatch. Tool renderer registration
runs immediately without waiting for settings to load from disk.
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