Skip to content

[Bug]: Release Artifacts browser smoke hangs after #8003 adds a second research-analysis read #8032

Open

Description

@JasonBuildAI

Impact

The Release Artifacts workflow's build job fails in "Exercise the installed page in a real browser" on recent upstream heads after #8003. The failure skips upload-release and publish-pypi, so maintainers cannot produce release uploads or PyPI artifacts from main. Four recent Release Artifacts runs show the same 30-second timeout, and the scenario fails deterministically after the second sequential research-analysis read was introduced.

Preflight

  • I searched existing issues and discussions for this behavior.
  • This report is not an unpatched security vulnerability.
  • The report and attachments contain no credentials or private/internal material.

Issue origin

Observed or reproduced in a real environment.

LoopX version or commit

Current main at ed2e45913 (the regression entered with merge 2087f540b / #8003). Failing Release Artifacts runs were observed at e726033d, 5ea23c98, 32fba350, and dee5bef2.

Host or runtime surface

Not host-specific (release CI browser smoke).

LoopX area

Build, packaging, installer, or CI.

Problem

#8003 added a second research-analysis read when a pack has no result: readAnalysisSnapshot first reads the language-scoped pack, then reads the original pack without output_language (apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx:51-54). The packaged-browser fixture in examples/personal-workspace-browser/research-route-reading.mjs creates a pending promise for each loading-state research-analysis GET, but releaseLoading retains only the last resolver. With #8003's second read, one request stays blocked after the loading state is released. The analysis button remains disabled and the scenario times out.

Minimal reproduction

cd apps/presentation/dashboard
npm install
npm run build:chat
cd ../..
LOOPX_PERSONAL_WORKSPACE_PACKAGED=1 \
LOOPX_PERSONAL_WORKSPACE_SCENARIO=research-route-reading \
node examples/personal-workspace-browser-smoke.mjs

The command uses the packaged dashboard bundle and the repository's synthetic browser fixture.

Expected behavior

The research-route-reading scenario completes for every language, width, and route state. In the loading state it proves the action is disabled, then releases the state and proves the action becomes enabled.

Actual behavior

The scenario hangs in the loading state and exits after the 30-second locator timeout:

locator.waitFor: Timeout 30000ms exceeded.
waiting for locator('.research-history').locator('.research-analysis-entry-actions > button:not(:disabled)') to be visible

Sanitized diagnostics

Failed Release Artifacts runs (public CI):

The failing job is build; upload-release and publish-pypi are skipped after it fails. The same browser scenario passes locally when both loading reads share one releasable gate.

Additional context

This is a follow-up to merged #8003. The issue is a test-harness regression, not a product behavior change: the production read path and fixture data are unchanged.

Importance

  • Impact scale: release-blocking CI failure in the Release Artifacts workflow; four recent release runs fail at the same step, and downstream publish jobs are skipped.
  • Affected parties: release maintainers and downstream users waiting for GitHub release uploads or PyPI artifacts.
  • Persistence: deterministic reproduction at multiple heads after fix(workspace): ground research reading in real benchmark state #8003, not a one-off flake.
  • Maintainer priority: release packaging is a required maintainer workflow; this prevents a deliverable release rather than adding optional polish.
  • Evidence: public run links above, the exact selector timeout, and the local before/after reproduction.

Activity

  1. added
    bugSomething isn't working
    triageNeeds maintainer triage or routing.
    on Nov 4, 2026
  2. LIHUA919 commented on Nov 8, 2026

    @LIHUA919
    Contributor

    Verified resolved on current main: the regression was fixed by f04ec308f (2026-11-04, "fix(smoke): release original analysis reads after loading") which releases the original-analysis read after loading, and the Release Artifacts workflow has since completed success (2026-11-08 02:53 run on 24ca29f4e; the only non-green runs after the fix were cancelled supersessions). Release uploads and PyPI artifacts are producible from main again. Looks closeable — leaving that to a maintainer.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageNeeds maintainer triage or routing.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions