Commit 30d30fd
authored
fix(e2e): separate launch readiness states (#9053)
## Summary
Separate the OpenClaw launch helper's initial readiness text from its
post-reply readiness text. The live TUI first reports `gateway connected
| idle`, then reports `connected | idle` after a reply; the helper now
waits for each exact state before its corresponding input and requires
exact normalized-line equality for the post-reply state.
PR #9034 was externally merged while its live acceptance remained
blocked. This fix-forward repairs acceptance infrastructure only. It
does not retroactively claim that #9034 passed live acceptance; the
exact probe and two-turn PTY acceptance will be rerun for the latest PR
commit.
## Related Issue
Related to #9023. Follow-up to #9034.
## Live acceptance status
On commit `c601bb61675f6561b3fdcd5131b633d9d45bd371`, the repaired
readiness sequence reached the exact reply, post-reply `connected |
idle`, `/exit`, and `gateway disconnected: closed | idle`. Final launch
status remained blocked by the separate portable/rootless-Podman cleanup
recurrence tracked in #9054, which is a recurrence of #8584/#8585 rather
than a defect in this helper.
This PR remains acceptance-infrastructure repair only. It does not claim
that the overall #9023 two-turn live acceptance passed.
## Changes
- Add a distinct optional post-reply readiness value to the native
launch helper.
- Configure OpenClaw live callers with startup `gateway connected |
idle` and post-reply `connected | idle` states.
- Add a realistic regression that rejects `/exit` until the post-reply
state is visible.
- Require the post-reply readiness marker to equal one normalized
terminal line, so a repeated `gateway connected | idle` cannot satisfy
`connected | idle`.
## Type of Change
- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)
## Quality Gates
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: This changes live E2E
orchestration only; it does not change a user command, configuration,
default, diagnostic, runtime contract, or supported workflow.
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:
## Documentation Writer Review
- [x] Documentation writer subagent reviewed the completed changes
- Result: `no-docs-needed`
- Evidence: The exact four-file E2E-helper diff was independently
reviewed. It affects test orchestration only, and its names, test title,
and diagnostic comply with `WRITING.md`.
- Agent: Codex Desktop
<!-- docs-review-head-sha: 1c3a274 -->
<!-- docs-review-agents-blob-sha: e30afb2 -->
## DGX Station Hardware Evidence
- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:
## Verification
- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run validate:pr` passed after refreshing `origin/main` when hooks
were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project e2e-support
test/e2e/support/launch-agent-turn.test.ts`: 5 passed, 1
platform-skipped
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result: Not applicable to this
narrow live-helper correction; focused support tests and all normal
hooks passed.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)
---
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
---------
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>1 parent 6fc834c commit 30d30fd
4 files changed
Lines changed: 20 additions & 5 deletions
File tree
- test/e2e
- live
- support
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| 151 | + | |
151 | 152 | | |
152 | 153 | | |
153 | 154 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
113 | | - | |
| 113 | + | |
114 | 114 | | |
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | | - | |
| 119 | + | |
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
| |||
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
135 | | - | |
| 135 | + | |
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
| 190 | + | |
190 | 191 | | |
191 | 192 | | |
192 | 193 | | |
| |||
210 | 211 | | |
211 | 212 | | |
212 | 213 | | |
| 214 | + | |
213 | 215 | | |
214 | 216 | | |
215 | 217 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| 54 | + | |
54 | 55 | | |
55 | 56 | | |
56 | 57 | | |
| |||
87 | 88 | | |
88 | 89 | | |
89 | 90 | | |
| 91 | + | |
90 | 92 | | |
91 | 93 | | |
92 | 94 | | |
| |||
108 | 110 | | |
109 | 111 | | |
110 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
111 | 120 | | |
112 | 121 | | |
113 | 122 | | |
114 | 123 | | |
115 | | - | |
| 124 | + | |
116 | 125 | | |
117 | 126 | | |
118 | 127 | | |
| |||
136 | 145 | | |
137 | 146 | | |
138 | 147 | | |
| 148 | + | |
139 | 149 | | |
140 | 150 | | |
141 | 151 | | |
142 | 152 | | |
143 | | - | |
| 153 | + | |
144 | 154 | | |
145 | 155 | | |
146 | 156 | | |
| |||
161 | 171 | | |
162 | 172 | | |
163 | 173 | | |
| 174 | + | |
164 | 175 | | |
165 | 176 | | |
166 | 177 | | |
| |||
0 commit comments