Skip to content

test(app): cover notes controls in mobile landscape - #17548

Draft
aandreakis wants to merge 1 commit into
elizaOS:developfrom
aandreakis:fix/17114-notes-mobile-landscape
Draft

test(app): cover notes controls in mobile landscape#17548
aandreakis wants to merge 1 commit into
elizaOS:developfrom
aandreakis:fix/17114-notes-mobile-landscape

Conversation

@aandreakis

@aandreakis aandreakis commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Relates to

Relates to #17114.

Definition of Done: full standard in CONTRIBUTING.md.

  • This PR targets develop and is rebased onto the latest origin/develop
    with zero conflicts (git fetch origin && git rebase origin/develop).
  • bun install and bun run verify were run after sync, or any failure is
    recorded below with the exact unrelated blocker.
  • A reviewer can confirm the change works without reading the code, from the
    evidence attached below.

Sync with develop

  • Rebased/merged onto the latest origin/develop; zero conflicts.
  • bun run verify passes post-sync, or the exact unrelated blocker is
    documented in Known gaps / failures below.

Risks

Low. This is a test-only change in one Playwright UI-smoke spec. It adds no production runtime, API, schema, persistence, or dependency changes. The main risk is future fixture drift in the real-bundle test path.

Background

What does this PR do?

Adds a focused 844×390 Notes regression that keeps the real chat overlay visible, scrolls through the root Notes flow, selects the green composer color, saves a note, and proves both controls are pointer-reachable. It also asserts the composer remains position: static, the root actually scrolls, the create-note request payload is correct, the response is 200, the created note renders, and browser diagnostics stay clean.

The production repair is already present on develop; this PR supplies the missing interaction regression and reproducible evidence. A red control temporarily restored the historical sticky composer locally and failed on pointer reachability; that temporary production edit was reverted and is not part of this diff.

What kind of change is this?

Bug-fix regression coverage (non-breaking, test-only).

Documentation changes needed?

My changes do not require a project documentation update.

Testing

Where should a reviewer start?

Start with packages/app/test/ui-smoke/plugin-views-interaction.spec.ts, test notes mobile landscape — composer color and save stay reachable.

Detailed testing steps

  • PASS — ELIZA_UI_SMOKE_SKIP_BUILD=1 E2E_RECORD=1 CI=1 bun run --cwd packages/app test:e2e -- --project=chromium test/ui-smoke/plugin-views-interaction.spec.ts --grep "notes mobile landscape" (1/1, exact committed-head web bundle).
  • RED CONTROL — with the historical position: sticky; top: 12px composer style temporarily restored, the same interaction failed because the green color control was not pointer-reachable. The temporary edit was then reverted.
  • PASS — bun run --cwd packages/app build:web (9,374 modules; 404 assets; chunk-safety verification passed; build revision de5945e7219b).
  • PASS — bun run --cwd plugins/plugin-simple-views test (6 files, 39 tests).
  • PASS — bun run --cwd plugins/plugin-simple-views typecheck.
  • PASS — bun run --cwd plugins/plugin-simple-views lint:check (30 files).
  • PASS — bun run --cwd packages/app typecheck.
  • PASS — bun run build (176/176 tasks; 27/27 authoritative view bundles).
  • PARTIAL / unrelated blockers — CI=1 bun run --cwd packages/app audit:app:verify completed 254 tests and 252 findings: broken=0, needs-work=2, needs-eyeball=25, good=225, minimalism/hover/density probe failures=0. Notes passed all four audited viewports. The final aggregate check failed only for two current-develop mobile-portrait launcher findings listed below.
  • PASS — ELIZA_MVP_OCR_ENGINE=packaged bun run --cwd packages/app audit:ocr (252 views; verified=96, broken=0, needs-eyeball=156).
  • PARTIAL / unrelated blocker — bun run verify completed its main graph at 579/579, then current develop's audit:scripts reported five orphan-file findings listed below. The remaining audits were run individually and passed: script inventory (123 files, 0 orphan), view-bundle inventory (27 targets, 0 exclusions), focused-test audit (8,838 files, 0 focused tests and 0 orphaned skips), and dist typecheck (201 aliases, 28 consumer configs).

Evidence Gate

Any change testable on the frontend is not mergeable without a video walkthrough,
before/after screenshots, and logs. If you did not attach them, say why.

Attach each applicable artifact inline in this PR (drag-and-drop into the
description or a comment), or write N/A - <reason> on the row. Do not leave
evidence rows blank. Videos must be MP4 (GitHub renders them inline);
prefer JPG over PNG for screenshots. Do not commit evidence files to the
repo.

  • before-screenshots
  • after-screenshots
  • N/A - test-only browser coverage uses deterministic route fixtures; no backend production path changes
  • N/A - no agent, action, provider, prompt, or model behavior changes

Evidence Details

Real LLM-call trajectory

N/A - no agent, action, provider, prompt, or model behavior changes.

Backend + frontend logs

Backend: N/A - test-only browser coverage with deterministic route fixtures; no backend production path changes.

Frontend: console log and network log. The network trace includes POST /api/views/notes/interact → 200; the console has no warnings, errors, or uncaught page diagnostics.

Screenshots (before / after) + video walkthrough

All files below are direct GitHub release assets from the author fork; no evidence is committed to the source branch.

Before

Red-control screenshot and red-control MP4. They show the historical sticky composer trapping the lower controls at 844×390 with the chat overlay visible.

After

Reachable controls, created note, and full-audit Notes mobile-landscape capture. They show the green color selector and enabled Add note control reachable in root scroll flow, followed by the rendered green note.

Walkthrough video

Exact-head walkthrough MP4 shows boot, Notes navigation, color selection, save, and the rendered note at 844×390.

Additional machine-readable proof: interaction observations, full app audit report, and packaged OCR triage.

Audio / voice walkthrough

N/A - no voice, transcript, TTS, STT, or omnivoice behavior changes.

Known gaps / failures

  • The strict full-app aggregate is blocked by two unrelated current-develop mobile-portrait launcher findings: builtin-views and builtin-rolodex, where the global chat overlay overlaps the last launcher icons. Notes itself passed desktop landscape, mobile landscape, mobile portrait, and iPad portrait with zero broken/probe/OCR findings.
  • Root bun run verify reaches 579/579 tasks, then audit:scripts flags five untouched current-develop files: packages/scripts/ci-workflow-invariants.test.mjs, develop-pr-aggregate.test.mjs, local-inference-attest.test.mjs, local-inference-performance-check.test.mjs, and script-test-isolation.test.mjs. The immediately rerun canonical script inventory reports 123 files and 0 orphans.
  • The extra mvp:visual-verify -- --strict --require-baseline-states check is also blocked by stale current-develop visual-baseline state: 11 expectation failures, 124 missing required historical states, and 17 screenshots without baselines. This test-only branch does not touch those baselines.
  • Backend logs are N/A because the contribution changes only deterministic browser coverage. LLM trajectory and audio are N/A because those paths are untouched.

AI provider/model: OpenAI / gpt-5.6-sol
Client / agent tooling: Codex desktop
Contribution skill revision: 4b0bad5:packages/skills/skills/contribute-to-eliza
Attribution status: self-reported
— [codex-notes-mobile-landscape]

@aandreakis

Copy link
Copy Markdown
Contributor Author

CI status after publication:

  • Base-trusted Security Advisory Gate and automatic labeling passed.
  • All fork pull_request workflows (Develop PR, gitleaks, check-pr-evidence, check-pr-title, and stale-base guard) are currently action_required, meaning GitHub is waiting for a maintainer to approve workflow execution for this fork contribution.
  • The base-trusted Develop PR Gate is therefore pending while it waits for those required checks; this is an external approval state, not a branch failure.
  • Local evidence-gate verification passes all seven rows, and the branch remains one commit / one test file ahead of current develop.

AI provider/model: OpenAI / gpt-5.6-sol
Client / agent tooling: Codex desktop
Contribution skill revision: 4b0bad5:packages/skills/skills/contribute-to-eliza
Attribution status: self-reported
— [codex-notes-mobile-landscape]

@lalalune lalalune left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed exact draft head de5945e7219bb2d13956aed8d7946d2e0f7becd0 and manually inspected the linked screenshots, both videos, console/network logs, observations, full audit report, and OCR report. The behavioral proof is good: the red control reproduces the trapped composer; the exact test drives the 844x390 real renderer bundle with the overlay present, moves the Notes root to scrollTop=204, reaches/selects green, posts the correct create-note payload, receives 200, and renders the note.

One test assertion should change before promotion: expect(composerPosition).toBe("static") encodes the current CSS implementation, not the acceptance contract. A composer can remain in normal root scroll flow with position: relative, and a future correctly bounded sticky layout could also satisfy reachability. The test already has the stronger behavioral guards: the root actually scrolls, both controls are pointer-reachable, the interaction succeeds, and the note renders. Please remove the exact static requirement (and the corresponding observation), or replace it with a geometry/scroll-owner invariant that fails only when controls become trapped.

The draft is also stale and its own body records repository gates that did not pass. Rebase onto current develop after the audit repair, rerun the focused red/green control, full audit:app, OCR, and root verify, and update the evidence head. Do not promote while any underlying report retains needs-work/broken or repository verification failures. The attached existing visual evidence itself is coherent and supports the scoped behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants