Skip to content

Modernize Graphlink Composer to a production-grade request surface#11

Merged
dovvnloading merged 1 commit into
mainfrom
agent/sota-composer
Jul 15, 2026
Merged

Modernize Graphlink Composer to a production-grade request surface#11
dovvnloading merged 1 commit into
mainfrom
agent/sota-composer

Conversation

@dovvnloading

Copy link
Copy Markdown
Owner

What changed

  • Replace the separate attach/editor/send row with a unified Composer shell.
  • Add visible graph context, attachment summary, provider route, request status, and accessible action labels.
  • Extract draft/request identity and lifecycle transitions into ComposerController.
  • Add stale-request protection so late worker responses cannot overwrite a newer request.
  • Preserve draft text and attachments when attachment reads, provider requests, or cancellation fail.
  • Keep large paste and dropped text in the prompt draft by default; explicit attachment remains available.
  • Add provider-mode status in the Composer and package the new module.
  • Add five Composer controller/UI regression tests.

Why

The previous Composer split visual controls from the request lifecycle. Context was implicit, send/recovery state was distributed across ChatWindow and WindowActionsMixin, and failed sends cleared user work. The new shell gives the user a single, inspectable interaction surface while keeping the migration compatible with the existing graph worker contracts.

Validation

  • QT_QPA_PLATFORM=offscreen python -m pytest graphlink_app/tests -q
  • Result: 419 passed, 1 warning.
  • python -m compileall -q graphlink_app
  • git diff --check

The local-only proposal at doc/COMPOSER_SOTA_REFACTOR_PLAN.md remains ignored and is intentionally not part of this PR.

@dovvnloading dovvnloading merged commit a1524ff into main Jul 15, 2026
6 checks passed
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