Skip to content

Harden composer crash paths and large-paste attachments#19

Merged
dovvnloading merged 1 commit into
mainfrom
agent/composer-crash-paste-hardening
Jul 17, 2026
Merged

Harden composer crash paths and large-paste attachments#19
dovvnloading merged 1 commit into
mainfrom
agent/composer-crash-paste-hardening

Conversation

@dovvnloading

Copy link
Copy Markdown
Owner

Summary

  • Harden Qt popup and QWebEngine shutdown lifecycles.
  • Fix Ollama settings signal initialization ordering.
  • Restore large-paste attachment staging so long code/text is represented as context instead of being dumped into the composer.
  • Add regression coverage for popup lifecycle safety, settings initialization, bridge routing, and paste behavior.

Root cause

The recurring failures came from multiple independent lifecycle defects: popup event filters and queued callbacks could run after their Qt wrappers had started closing, Ollama model selection could emit before its paired input existed, and the React composer bypassed the legacy large-paste attachment path. WebEngine shutdown also lacked an explicit stop/hide phase before Qt teardown.

Validation

  • python -m pytest graphlink_app/tests: 482 passed
  • python -m compileall ... graphlink_app: passed
  • npm.cmd run typecheck: passed
  • npm.cmd run build: passed
  • Controlled QWebEngine create/load/shutdown smoke test: exited 0

The patch remains conservative: it preserves the existing bridge contract and native popup ownership while making teardown idempotent and defensive.

@dovvnloading
dovvnloading merged commit 7eef95e into main Jul 17, 2026
6 of 8 checks passed
@dovvnloading
dovvnloading deleted the agent/composer-crash-paste-hardening branch July 17, 2026 14:43
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