fix(ci): configure runtime models and MCP test fixtures - #715
Closed
kamilio wants to merge 8 commits into
Closed
Conversation
Provide navigator.language in the Node-hosted browser bundle and Worker fixtures. Consume async stream results with for-await so Node20 executes the existing lifecycle, schema failure, and cleanup assertions. ### Tests Updated | Test group | Verifies | | --- | --- | | Real safe-bash browser kernel, execution, filesystem, and session cohorts | Actual browser engine and Worker behavior with explicit browser globals. | | defineStreamCommand SDK lifecycle | Lazy consumption, status separation, schema rejection, and exactly-once cleanup without Array.fromAsync. | Validation: Node20.20.0 passed all four browser files (134 tests) and the stream lifecycle file (5 tests). No production runtime or deadline changes.
Cache only collected root references for groups backed entirely by tracked property tables. Successful property/prototype changes and baseline completion invalidate the cache; untracked and restored tables retain conservative scans. Nested values are still recursively measured on every reconciliation. Validation: 248 focused accounting/snapshot tests; maintained 24-workspace agent-harness build closure; unchanged five-second Node20 coverage-demo replay passed in 1.29s. Six new regressions cover allocation reuse, nested budget failure, descriptor/prototype changes, rejected mutations, restored aliases, and retained callback snapshots. Focused test typing and ESLint gate this commit. ### Tests Added | Test | Verifies | | --- | --- | | reuses the collected roots while still rejecting nested growth above the memory limit | Reference reuse preserves recursive budget rejection | | refreshes collected roots after define, delete, accessors, prototype changes and baseline completion | Successful mutations invalidate root collection | | remeasures mutations through an untracked restored property-table alias | Restored aliases keep conservative scanning | | keeps committed roots after failed definitions and deletions | Rejected mutations preserve committed state | | keeps both budgets current and ignores rejected prototype mutations | Shared objects invalidate each live budget correctly | | keeps root snapshots stable when a retained callback mutates the next collection | Callback mutation affects the next capture without changing prior snapshots | Cherry-picked-from: 344ddf4
Member
Author
|
Integrated unique runtime-model, MCP fixture and Goose configuration commits as f70d76a, 9bf87a7, 6ffb8b4, c49e60b and 67ee43c. Preserved newer main Node20 fixes, applied the shared retained-root cache once via #717, and used actionlint instead of the prohibited workflow-YAML unit test. Verified on remote main at 4da2a66 after local validation and final installed-package qualification. Closing after cherry-pick/reconciliation rather than merging obsolete branch history. Release is in progress: https://github.com/poe-platform/poe-code/actions/runs/34500155547 ; scoped packages: https://github.com/poe-platform/poe-code/actions/runs/34500155125 . |
This was referenced Sep 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The review workflow and live-agent checks omit runtime model selection, so native CLI defaults can select models unavailable on Poe. Fresh Kimi configuration also lacks a registered model, and Goose rejects its generated provider configuration because the required
modelsfield is absent.Pass explicit supported runtime models while preserving review and per-agent overrides. Reviews use the repository variable
POE_CODE_REVIEW_MODELwithgpt-5.4as fallback; live checks honorPOE_CODE_E2E_<AGENT>_MODEL. Kimi forwards its local alias unchanged and registers the selected model only in the isolated fixture, preserving existing provider/model entries. Goose's ACP fixture receives its selectedGOOSE_MODEL; normal Goose configuration now supplies an empty required catalog only when absent, preserving user catalog entries and headers. No global model default is written.Host E2E backends invoke the built MCP fixture through Node and an absolute path because installation before build can leave the workspace bin link missing. Podman retains its installed executable. A separate test-only commit retains the HTTP server's subtype during registration without changing its runtime assertions.
The runtime defaults were verified with the read-only Poe catalog. Kimi follows its registered-alias contract. The installer-selected Goose stable asset digest matches v1.50.0: its pinned provider schema requires
models, and its model resolver honorsGOOSE_MODEL.This branch also includes the exact Node20 test prerequisite from #716 (
8e9fbc92113c2fe1456c6a6e03db244392a90776) through a normal branch merge. It supplies the browser locale in test realms and uses async iteration to collect stream values while preserving existing assertions. PR716 itself still needs these runtime-model corrections; neither PR has been merged.Validation:
missing field models→Provider not set. Adding the required catalog makes it reach the localhost endpoint with the selected model and MCP tools. No external model/API call was used for diagnosis.792300fbb382deaca1be6d83665bae7a06d094a7passed all 13 live E2E tests, Node22, packed APIs, and exact-head review; its E2E-blocking thread was resolved. General CI failed in the Node20 compatibility cases and two test deadlines.106f9f7a044a28c84a586d02d1394f175cc96a18passes all 139 affected browser/stream tests under Node20.20.0 and full guarded lint. Fresh combined CI passes live E2E (13/13), Node22, and packed APIs, with exact-head review approved and no unresolved review threads. The general check fails only the coverage-demo replay and tiny-MCP NodeNext DOM compiler-test deadlines (both 5000ms): 22,465 tests pass, 2 fail, and 1 is skipped. Both failures remain separately owned, without deadline changes or a flake waiver. This required check keeps the PR unready for merge.This branch now also carries the exact two-file retained-root optimization from #717 (
344ddf40439da30819085a58d8bc94a8f301bda7), preserving its author and source attribution. The source parent and this branch had identicalobject-model.tsblobs, so only that commit was replayed; newer release ancestry was not merged. It reuses unchanged intrinsic root references while still recursively measuring retained data on every reconciliation, with conservative fallback for restored/untracked objects.At combined head
17400f2451dc4452cd8af953f5a788ef62fff5b8, all 24 maintained workspace builds, 93 focused Node20 tests (including the unchanged five-second replay), and full guarded lint pass (10,577 files, zero errors/warnings, types and workflows). Fresh combined CI passes live E2E (13/13), Node22, packed public APIs, and exact-head review. General CI still fails the unchanged five-second tiny-MCP NodeNext DOM compiler test (5411ms) and coverage-demo replay (6823ms): 22,465 tests pass, 2 fail, and 1 is skipped. The hosted replay failure remains after this optimization; both failures are routed to their existing owners. This required check keeps the PR unready. The exact run uses Node20.20.2 and npm10.8.2; no rerun or deadline waiver was applied.The curl metadata change remains separate in #714. PR #712 also depends on the reviewer model correction: its review run failed on the unsupported native model default. Product Goose ACP model propagation remains separate. No timeout changes, skipped tests, manual paid reruns, merge, or release are included.
Offline runtime configuration diagnostic
Actual output captured at
42d8622629cbc8170091bdf7217d05003286c408from configuration helpers, the Kimi argument builder, and a command recorder exercising the generated reviewer invocation. This shows default/override handling and isolated Kimi registration, not a live agent/model execution, CI pass, or product-browser screenshot.