Skip to content

First-run: prove a never-signed-in account reaches a working chat (enterpriseaiframework-03f) - #12

Open
baron-3dl wants to merge 1 commit into
mainfrom
work/enterpriseaiframework-03f
Open

First-run: prove a never-signed-in account reaches a working chat (enterpriseaiframework-03f)#12
baron-3dl wants to merge 1 commit into
mainfrom
work/enterpriseaiframework-03f

Conversation

@baron-3dl

Copy link
Copy Markdown
Contributor

Summary

  • Adds tests-live/test_first_conversation.py: creates and destroys its own Keycloak
    account (never calls control-plane /admin/sync or /admin/keys/issue), drives the
    documented front door (/portal/), asserts Chat is selected with no click, types a
    tool-eligible prompt with no tool named, and reads a real assistant reply out of the
    chat DOM. Kept out of make test (live cluster, real model turn) as
    make test-first-conversation.
  • No application code changed — investigation found the front-door mechanics
    (/portal and /workshop trailing-slash redirects, chat-tab-by-default via
    localStorage, the shared chat-surface::chat key needing no per-user provisioning,
    the e6f tool-selection prompt) were already built by prior items. What was missing was
    proof, driven rather than read, for a genuinely never-signed-in account — which is what
    this item's DONE condition asks for.

What the live run showed

Ran against the real cluster 2026-07-31: a fresh account landed on the Chat tab with zero
clicks, no second sign-in, sent a message, and Enterprise AI began streaming a real reply
— but the web-search-backed turn was still generating when the test's original 240s wait
timed out. Bumped the budget to 400s (matching test_e2e_journey.py's AGENT_BUDGET_S)
in a follow-up commit; a full green run was not re-observed before this PR closed out
(see test plan).

Findings (not fixed, out of scope per dispatch)

  • Confirmed live: enterpriseaiframework-c8b (codeapi not deployed) and
    enterpriseaiframework-ce2 (published-work 404) are real on the current cluster. This
    test's prompt and flow were chosen specifically not to exercise either, and did not.

Test plan

  • tests-live/test_first_conversation.py written, run live against the cluster;
    landing/tab-default/no-second-login/message-send all observed correct in
    screenshots (/tmp/eai-shots/03f-01-landed.png, 03f-02-sent.png).
  • Re-run make test-first-conversation end-to-end with the widened 400s budget to
    observe a full green pass (not completed in this session — flag for the
    orchestrator/next dispatch).
  • No hermetic source changed; make test unaffected by this diff.

🤖 Generated with Claude Code

…nterpriseaiframework-03f)

REMAINING 1 from the wave-2 adjudication: the item's CONSTRAINTS name a trailing slash as
a friction a brand-new user must not need to know about, but no test ever requested the
bare `/portal` path -- the prior evidence was a source read of the 307 in
control-plane/app/portal.py:77.

Driving it in a real browser finds the redirect does not run at all in production: the
gateway VM's Caddy `:8081` block (mainframe repo cloud-init/gateway-vendor.yaml,
hand-extended beyond what that file has checked in) matches `/portal/*` on the literal
trailing slash and falls the bare path through to CHAT's NodePort instead of the control
plane's. A never-signed-in user who types the address without the slash lands on
LibreChat's own unrecognised-route error boundary -- "Oops! Something Unexpected
Occurred ... 404 Not Found" -- with no login form and no path forward. Measured live
2026-07-31, curl and a real Chromium session both attached to the test.

This is a live, reproducible defect outside this repo's own tree (the fix is a gateway-VM
Caddy config change tracked in a different repo), so the test is written to assert the
correct behaviour and is expected to stay red until that config changes -- not narrowed to
pass against the current broken state.
@baron-3dl
baron-3dl force-pushed the work/enterpriseaiframework-03f branch from 7f08e06 to ed04a34 Compare July 31, 2026 16:10
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