Skip to content

test(validation): exercise one-shot resume fix - #2

Closed
SE87H wants to merge 8 commits into
mainfrom
validation/fix-oneshot-resume-ci
Closed

test(validation): exercise one-shot resume fix#2
SE87H wants to merge 8 commits into
mainfrom
validation/fix-oneshot-resume-ci

Conversation

@SE87H

@SE87H SE87H commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Disposable internal validation PR for NousResearch#74397.

This branch contains the exact upstream fix head b5123936cb13005ba446835ee46b5da5d24564f7 plus one attribution-only commit required by this fork's CI governance. It exists solely to run the complete repository suite against the same main base used by the upstream PR.

Do not merge. After CI evidence is recorded, this PR will be closed.

Validation target:

  • one-shot resume identity/history/workspace contract
  • TERMINAL_CWD synchronization after successful chdir
  • no environment/session mutation on failed restore
  • explicit --no-restore-cwd preservation
  • all repository regressions, lints, E2E, and governance checks

SE87H commented Jul 31, 2026

Copy link
Copy Markdown
Owner Author

Validation closed successfully.

Validated code target: b5123936cb13005ba446835ee46b5da5d24564f7, the exact head of NousResearch#74397.

Validation branch delta beyond that target: two attribution-only files required by this fork's contributor-governance check. No runtime, test, dependency, workflow, or product code differed from the upstream PR head.

Full CI run NousResearch#19 (30620826444) concluded success:

  • all 8 Python test slices
  • Python E2E
  • desktop Playwright E2E
  • ruff enforcement and ruff/ty differential checks
  • Windows footgun checks
  • OSV and supply-chain scans
  • uv lock verification
  • contributor attribution and common-history checks

This disposable PR is now ready to be closed without merge. It provided evidence only and is not a deployment or promotion source.

@SE87H SE87H closed this Jul 31, 2026
SE87H pushed a commit that referenced this pull request Aug 4, 2026
… a broken chat

A completely unconfigured install previously booted into a working-looking
chat (banner showed model 'unknown'), accepted a message, spun ~30s, then
failed with 'Set OPENROUTER_API_KEY' — a provider the user never chose —
and never offered setup.

- HermesCLI.run() now probes provider readiness at startup (TTY only) and
  offers the shared provider picker (hermes model flow, which fronts Quick
  Setup / Nous Portal OAuth) when nothing is configured. Decline is
  respected; picker state re-syncs into the live CLI so the next turn works
  without a restart.
- New silent probe _runtime_credentials_ready(): no printing, no state
  mutation; handles keyless local endpoints and callable bearer providers.
- The empty-api-key error is provider-aware: names the actual resolved
  provider and points at 'hermes model' / 'hermes setup' instead of
  hardcoding OPENROUTER_API_KEY.
- Banner: unconfigured installs render 'no model configured — run /model'
  in red instead of the silent 'unknown' model slug.

Consumer-onboarding audit finding #2 (sev 5), Aug 2026.
SE87H pushed a commit that referenced this pull request Aug 4, 2026
A wedged adapter transport (network hang, dead websocket) previously
blocked _check_session_stalls forever: sibling candidates in the same
pass were never evaluated and the watcher stopped ticking. Wrap the
send in asyncio.wait_for (15s); on timeout log a WARNING and do NOT
latch, so the next tick retries. Regression uses a never-resolving fake
adapter and proves the pass completes, a healthy sibling candidate is
still notified in the same pass, and the watcher ticks again
(sabotage-verified against the unbounded send).
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