Skip to content

fix(pixel): keep advice insertion within composer capacity - #5494

Closed
tang-vu wants to merge 4 commits into
Osmantic:public-betafrom
tang-vu:fix/beta-advice-composer-capacity-20260916
Closed

tang-vu wants to merge 4 commits into
Osmantic:public-betafrom
tang-vu:fix/beta-advice-composer-capacity-20260916

Conversation

@tang-vu

@tang-vu tang-vu commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Why this matters

The completed-advice action could append up to 64 KiB of returned text to Pixel's 16,384-character composer. HTML maxLength does not bound programmatic state updates, so clicking Paste could create an unsendable, oversized draft. The advisory wrapper and the existing draft also consume capacity.

Pass the current draft into the advice panel and account for the exact wrapper and two-newline separator before enabling Paste. Explain the capacity conflict and keep the complete answer readable for manual selection. Exact-fit insertion remains available. No text is silently truncated and pasting never sends a model request.

Overlap check

Searched all upstream PR states for advice composer and advice oversized, and inspected all public-beta PRs touching PixelAdvice.jsx or Pixel.jsx. #4951 fixes prompt/file insertion separators, not advice. Same-component #4457 changes modal isolation, #4229 inspection ownership, #4228 HTTP UUID generation and #4102 terminal receipts. None implements the advice capacity contract. A synthetic merge with the older #4457 branch identified a modal/stale-inspection conflict; the qualified resolution and test receipt are recorded below. This PR is independently based on current public-beta.

Regression coverage and validation

The tests mount the real Pixel page, recover a completed advisory job over its HTTP boundary, edit the actual composer and click Paste. Before the fix, oversized combinations and an oversized answer were insertable. Afterward they are disabled with text preserved; exact-fit drafts, including trailing newlines, still insert successfully and no chat request is sent.

  • npm test -- --maxWorkers=2 src/pages/PixelAdviceCapacity.test.jsx src/pages/PixelInsertionBoundaries.test.jsx src/components/PixelAdvice.test.jsx: 23 passed.
  • Focused ESLint, pre-commit hooks and git diff --check: passed.
  • Shared public-beta baseline: dashboard 1,232 tests passed, lint/build passed. The full repository make gate has an existing no-sudo Docker fallback test failure; all-files pre-commit has existing private-key test-fixture findings and the Windows-only missing awk executable. These are not presented as green checks for this change.

Compatibility and rollback

Browser-only behavior applies equally to dashboards hosted on Linux, macOS and Windows. Backend advice generation, billing approval, job tracking and composer send semantics are unchanged. Reverting restores the unsafe insertion; no stored schema changes. The advisory answer remains available even if it cannot fit in one outgoing message. Ready for independent review; no merge requested.

Follow-up and shared-file compatibility

Follow-up 8d7af4db8fd5f0cbe77ecd0ac1a1239eadef62a9 adds jsdom native-dialog lifecycle stubs to the capacity regression so it composes with existing #4457; the focused 23 tests pass again. Pair branch integration/beta-advice-pair-20260916 includes this head and #4457 at 9473778ed9347eed477e30fab88c175d30026df0. Resolve the close handler by retaining providerVersion.current += 1, adopting the native-dialog lifecycle and removing the superseded manual key trap. Capacity, PixelAdvice and AdviceRuntime suites: 30 passed, ESLint zero errors/two warnings on the same source/test tree before the final ancestry-only merge. Native browser focus behavior is not proven by mocked jsdom dialog APIs. Neither upstream PR was merged or closed.

Final beta-batch receipt — 2026-09-16

Candidate: 8d7af4db8fd5f0cbe77ecd0ac1a1239eadef62a9. GitHub check audit at 11:07:47 UTC: 37 successful, 4 skipped, 0 failed, 0 pending, matching this exact head; OPEN, public-beta base, Ready (not Draft). Skipped checks are not counted as passed tests.

The combined integration head, 5b9877184ceab0751c6c9fe3564c73303e78f0a3, contains all 30 exact candidate heads on public-beta 3c186f3f12ba21dad7b7266ec5449393529abb00. At this exact final SHA: full dashboard 171 files / 1,274 tests passed; full dashboard API 3,124 passed, 2 skipped; advice boundary suite 23 passed; Bark request/legacy-empty cases 9 passed; changed-file secret/key/size hooks and diff check passed. Shell-only hooks had no matching changed files.

Additional combined checks ran at predecessor 28adf1aa5c0710d3c0de13df7870629e24977fec: Token Spy 130 passed, 1 skipped; CLI contracts 16 passed; real backup/restore round trip passed; Open Interpreter HTTP/runner cases 4 passed; make lint smoke simulate, frontend lint (zero errors, 624 warnings) and production build passed. The only final-head differences are two test files (advice dialog fixtures and Bark's empty-text expectation); production files are identical. These results are not live GPU/model or service rollout qualification.

Qualified merge order: #5490 → #5494 → #5495 → #3848 → #3846 → #3845 → #3844 → #3843 → #3841 → #3838 → #3837 → #3836 → #3835 → #3834 → #3809 → #3808 → #3807 → #3806 → #3804 → #3803 → #3802 → #3801 → #3800 → #3712 → #3711 → #3710 → #3709 → #3708 → #3852 → #3849. Branches are independently useful. Shared-file merging required only preserving the union of four adjacent Makefile registrations: provider-probe redirects, healthcheck error-body, Milvus persistence and healthcheck latency. Production code in these 30 merged without manual conflict resolution. External advice/Bark overlaps have separate pairwise receipts in #5494/#3808. Recheck the combined tree if other shared-file PRs land first; do not drop test registrations.

Full release qualification remains not green: baseline make gate fails a no-sudo Docker fallback fixture; 5 of 428 BATS cases fail in this environment; all-files private-key scanning flags two pre-existing dummy-key fixtures. No checks were disabled. CI success and Ready status do not replace independent human review, especially for auth backups and Milvus data migration. No upstream merge or deployment was performed.

This was referenced Sep 16, 2026
root added 2 commits September 17, 2026 11:21
# Conflicts:
#	ods/extensions/services/dashboard/src/pages/Pixel.jsx
Upstream moved PixelAdvice inside the collapsed 'Advanced tools'
details, so the capacity hint rendered but failed toBeVisible. Expand
the section in the test flow to match the new page structure.
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