René's URL Explorer Experiment


Title: Adapt to the @rstest/core 1.0 reporter contract: status literals, payload fields, onTestRunStart payload · Issue #115 · rstackjs/rstack-editor · GitHub

Open Graph Title: Adapt to the @rstest/core 1.0 reporter contract: status literals, payload fields, onTestRunStart payload · Issue #115 · rstackjs/rstack-editor

X Title: Adapt to the @rstest/core 1.0 reporter contract: status literals, payload fields, onTestRunStart payload · Issue #115 · rstackjs/rstack-editor

Description: Background web-infra-dev/rstest#1875 (draft, feat/reporter-contract) stabilizes the reporter contract for @rstest/core 1.0. It is a deliberate pre-1.0 break, and this extension resolves @rstest/core from the user's project, so a project ...

Open Graph Description: Background web-infra-dev/rstest#1875 (draft, feat/reporter-contract) stabilizes the reporter contract for @rstest/core 1.0. It is a deliberate pre-1.0 break, and this extension resolves @rstest/cor...

X Description: Background web-infra-dev/rstest#1875 (draft, feat/reporter-contract) stabilizes the reporter contract for @rstest/core 1.0. It is a deliberate pre-1.0 break, and this extension resolves @rstest/cor...

Opengraph URL: https://github.com/rstackjs/rstack-editor/issues/115

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Adapt to the @rstest/core 1.0 reporter contract: status literals, payload fields, onTestRunStart payload","articleBody":"## Background\n\n`web-infra-dev/rstest#1875` (draft, `feat/reporter-contract`) stabilizes the reporter contract for `@rstest/core` 1.0. It is a deliberate pre-1.0 break, and this extension resolves `@rstest/core` from the user's project, so a project that upgrades to core 1.0 while the extension stays on today's code degrades **silently**: `SUPPORT_MATRIX['@rstest/core'] = '>=0.12.0'` is satisfied by `1.0.0`, no version-mismatch status fires, and the status `switch`es below simply stop matching.\n\nFiled from the rstest PR side, per its AGENTS rule that a change touching this API surface must be linked in both repos in the same PR cycle.\n\n## Upstream changes (verified against `feat/reporter-contract` @ `dd061a1d`)\n\n- `TestResultStatus`: `pass | fail | skip | todo` → `passed | failed | skipped | todo`.\n- API `TestRunResult['status']` (now the shared `TestRunStatus`): `pass | fail | error` → `passed | failed | error`. The value is computed by the host and carried on `TestRunEndPayload`; `api/result.ts` no longer derives it.\n- All reporter hooks return `MaybePromise\u003cvoid>`; events fire in arrival order and the host joins pending hooks before `onTestFileResult` (per file) and `onTestRunEnd` (whole run).\n- `onTestRunStart(payload)` now receives `{ files: { testPath, project, testId }[] }`. Implementations that take no argument stay assignable.\n- Required payload additions: `TestCaseInfo` / `TestSuiteInfo` / `TestResult` gain `fullName` and `relativeTestPath`; `TestFileInfo` gains `relativeTestPath`; `TestFileResult` gains `relativeTestPath` and a required `summary` (`TestRunSummary.tests` also gains `flaky`).\n- `parseErrorStacktrace` in `packages/core/src/utils/error.ts` changed: `stackIgnores` is now `RegExp[]` (`/(^|\\/)node:/`, `/\u003canonymous>/`), `file://` paths are unwrapped, sourcemapped frames keep the mapped `methodName`, and the post-sourcemap filter now always runs (a custom ignore list no longer disables it).\n- CLI flags are unchanged; the blob format version is bumped (the editor does not use the blob reporter or `merge-reports` — verified).\n- The main `@rstest/core` entry re-exports the new public types (`TestRunStatus`, `TestRunStartPayload`, `TestRunEndPayload`, `TestRunSummary`, `Duration`, `MaybePromise`, …).\n\n## Impact in this repo\n\n1. Status switches silently no-op against 1.0:\n   - `packages/vscode/src/stacks/test/testRunReporter.ts` — `onTestFileResult` and `onTestCaseResult` switch on `pass` / `fail` / `skip`. With 1.0 values no case matches, so file and case items are never marked passed/failed/skipped and errors never reach the run.\n   - `packages/vscode/src/stacks/test/worker/index.ts` — `result.status === 'fail'` guard for \"failed without test-level failures\" stops firing, so an operation-level failure (coverage threshold, report error) can be swallowed.\n2. Old literals in unit tests: `packages/vscode/tests/stacks/test/master.test.ts` fake `run()` results (`'pass'` / `'fail'`, several sites) and the `0.12.0` default in its `writeCoreInstall` helper; `packages/vscode/tests/versionCheck.test.ts` pins the matrix strings.\n3. Vendored core internals need a re-sync: `packages/vscode/src/stacks/test/vendored/coreInternals.ts`. Its header says the stack-frame filtering is kept byte-identical because it decides the editor's failure location, so the 1.0 `error.ts` changes belong in the next sync. (The editor calls `parseErrorStacktrace({ stack })` without `getSourcemap`; the `file://` unwrap, the regex set and the unconditional post-filter still apply.)\n4. Support matrix / dependency wiring:\n   - `packages/vscode/src/shared/versionCheck.ts`: `SUPPORT_MATRIX['@rstest/core'] = '>=0.12.0'`. Semver-wise 1.0 passes, so nothing gates the break.\n   - `packages/vscode/package.json` devDependency `@rstest/core: ^0.12.4`; the E2E fixture roots pin `0.12.4` in four `package.json` files under `packages/vscode/e2e/`.\n   - `packages/vscode/AGENTS.md` → `stacks/test` \"Tracked upstream state\" points at rstest `packages/vscode` `e1607861`; that reference should move to the commit that ships 1.0 support.\n   - If the floor is raised, `SUPPORT_MATRIX.rstack = '>=0.7.6'` moves with it: its rationale is \"the first rstack release pinning `@rstest/core ~0.12.0`\", so the new floor needs the first rstack release pinning 1.0 (cross-repo, rstack-cli).\n\n## Compatibility decision needed\n\n- **A. Keep `>=0.12.0` and normalize at the boundary.** Map legacy literals (`pass`/`fail`/`skip` → `passed`/`failed`/`skipped`) in one reporter-side normalizer; 1.0 is otherwise additive (new required fields, new hooks signature, new run-start payload), so the rest is forward-compatible. Bump the devDependency to 1.x to compile against the real types, and keep the normalizer total for unknown values so a future literal change cannot silently half-work. 0.12 projects keep working after the extension auto-updates; no rstack-cli release needed for the floor.\n- **B. Raise the floor to `>=1.0.0`.** Update the matrix, its tests, the devDependency, the fixtures and the rstack floor (needs an rstack release pinning 1.0). Cleaner, but projects still on 0.12 get an unsupported-version status, and the frozen standalone extension (`^0.12.0` only, see #75) is no longer a fallback.\n\nRecommendation: **A**. The extension updates itself, `@rstest/core` is project-resolved, and 0.12 projects will exist for a long time after 1.0 lands.\n\n## Proposed work (option A)\n\n1. Add one normalizer (e.g. `stacks/test/shared/status.ts` or beside `TestRunReporter`) for test-result and run-result statuses; use it in both reporter switches and in the worker's `run()`-result guard.\n2. Bump `@rstest/core` devDependency to the 1.0 line once published so type-checking sees the real literals; before that, test against a local build via `rstack.rstest.corePath`.\n3. Re-sync `vendored/coreInternals.ts` against the 1.0 `error.ts`.\n4. Update unit tests and fakes to the new literals and required payload fields, keeping legacy literals covered through the normalizer.\n5. Bump E2E fixture pins; point at least one fixture at a 1.0 core so both lines are exercised (or widen the Renovate range and rely on the `rstack toolchain` group).\n6. Update the `AGENTS.md` tracked-upstream note and the support-matrix comments/tests.\n7. Verify: `pnpm lint && pnpm test:unit`, then `pnpm test:e2e:rstest`. `rstackjs/rstack-ecosystem-ci#99` builds `@rstest/core` from rstest `main` and runs this repo's `test:unit` + `lint`, so opening the adaptation PR in the same cycle as #1875 gives the cross-repo signal before the release.\n\n## Out of scope (checked)\n\n- Blob reporter / `merge-reports` format: not used here.\n- `reporters` accepting module specifiers: the editor passes reporter instances, unaffected.\n- `listTests()`: unchanged for callers (the collector's raw types changed internally).\n\n## References\n\n- rstest PR: https://github.com/web-infra-dev/rstest/pull/1875\n- rstest tracker: web-infra-dev/rstest#1294 (items 21–23)\n- Precedent: #40 (toolchain drift), #75 (frozen standalone extension supports `^0.12.0` only)\n","author":{"url":"https://github.com/fi3ework","@type":"Person","name":"fi3ework"},"datePublished":"2026-10-27T06:46:49Z","url":"https://github.com/rstackjs/rstack-editor/issues/115"}

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:34f4cd34-d58a-271d-2d8e-7166805451fe
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idCAEE:1F56F4:222E91:2FE055:6AECF5B8
html-safe-noncea7dd885ad53ffe23c3e3abe201ea1136b41c68cb5d1226d292d855f586e0f281
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQUVFOjFGNTZGNDoyMjJFOTE6MkZFMDU1OjZBRUNGNUI4IiwidmlzaXRvcl9pZCI6IjMxMTU4MzIyODkyMjQ2MTk0NDgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac6092753e6708f57a3241d20aa7e7e6452242c1377ed095c97a75d1370a59c316
hovercard-subject-tagissue:6054346158
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/rstackjs/rstack-editor/115/issue_layout
twitter:imagehttps://opengraph.githubassets.com/b430e11d9fe9a34d45ae50fa42346edb88811f44f3b0cbae271e1580dd450c50/rstackjs/rstack-editor/issues/115
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/b430e11d9fe9a34d45ae50fa42346edb88811f44f3b0cbae271e1580dd450c50/rstackjs/rstack-editor/issues/115
og:image:altBackground web-infra-dev/rstest#1875 (draft, feat/reporter-contract) stabilizes the reporter contract for @rstest/core 1.0. It is a deliberate pre-1.0 break, and this extension resolves @rstest/cor...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamefi3ework
hostnamegithub.com
expected-hostnamegithub.com
None80acd59cd7735dad62df7be8125e1689bc132c07bc46e7498af0fcc391b80b4f
turbo-cache-controlno-preview
go-importgithub.com/rstackjs/rstack-editor git https://github.com/rstackjs/rstack-editor.git
octolytics-dimension-user_id129049372
octolytics-dimension-user_loginrstackjs
octolytics-dimension-repository_id1316963958
octolytics-dimension-repository_nworstackjs/rstack-editor
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1316963958
octolytics-dimension-repository_network_root_nworstackjs/rstack-editor
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release711407b7c0a9167a19a52f516c0bf848416bbd1f
ui-targetfull
theme-color#1e2327
color-schemelight dark
react-app-nameissues

Links:

Skip to contenthttps://github.com/rstackjs/rstack-editor/issues/115#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Frstackjs%2Frstack-editor%2Fissues%2F115
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Frstackjs%2Frstack-editor%2Fissues%2F115
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=rstackjs%2Frstack-editor
Reloadhttps://github.com/rstackjs/rstack-editor/issues/115
Reloadhttps://github.com/rstackjs/rstack-editor/issues/115
Reloadhttps://github.com/rstackjs/rstack-editor/issues/115
rstackjshttps://github.com/rstackjs
rstack-editorhttps://github.com/rstackjs/rstack-editor
Codehttps://github.com/rstackjs/rstack-editor
Issues4 (4)https://github.com/rstackjs/rstack-editor/issues
Pull requests1 (1)https://github.com/rstackjs/rstack-editor/pulls
Actionshttps://github.com/rstackjs/rstack-editor/actions
Projectshttps://github.com/rstackjs/rstack-editor/projects
Security and qualityhttps://github.com/rstackjs/rstack-editor/security
Insightshttps://github.com/rstackjs/rstack-editor/pulse
https://github.com/rstackjs/rstack-editor
New issuehttps://github.com/login?return_to=https://github.com/rstackjs/rstack-editor/issues/115
New issuehttps://github.com/login?return_to=https://github.com/rstackjs/rstack-editor/issues/115
Adapt to the @rstest/core 1.0 reporter contract: status literals, payload fields, onTestRunStart payloadhttps://github.com/rstackjs/rstack-editor/issues/115#top
enhancementNew feature or requesthttps://github.com/rstackjs/rstack-editor/issues?q=state%3Aopen%20label%3A%22enhancement%22
https://github.com/fi3ework
fi3eworkhttps://github.com/fi3ework
on Oct 27, 2026https://github.com/rstackjs/rstack-editor/issues/115#issue-6054346158
Rstest extension sunset checklist #75https://github.com/rstackjs/rstack-editor/issues/75
feat(core)!: stabilize reporter contract for 1.0 web-infra-dev/rstest#1875https://github.com/web-infra-dev/rstest/pull/1875
API stabilization of 1.0.0 web-infra-dev/rstest#1294https://github.com/web-infra-dev/rstest/issues/1294
Track the latest @rslint/core / @rstest/core: verify 0.9.0, join rstack-ecosystem-ci, un-pin E2E fixtures #40https://github.com/rstackjs/rstack-editor/issues/40
Rstest extension sunset checklist #75https://github.com/rstackjs/rstack-editor/issues/75
fi3eworkhttps://github.com/fi3ework
enhancementNew feature or requesthttps://github.com/rstackjs/rstack-editor/issues?q=state%3Aopen%20label%3A%22enhancement%22
on Oct 27, 2026https://github.com/rstackjs/rstack-editor/issues/115#event-34338213450
https://github.com/fi3ework
fi3eworkhttps://github.com/fi3ework
on Nov 5, 2026https://github.com/rstackjs/rstack-editor/issues/115#issuecomment-6653087518
#127https://github.com/rstackjs/rstack-editor/pull/127
web-infra-dev/rstest#1875https://github.com/web-infra-dev/rstest/pull/1875
fi3eworkhttps://github.com/fi3ework
completedhttps://github.com/rstackjs/rstack-editor/issues?q=is%3Aissue%20state%3Aclosed%20archived%3Afalse%20reason%3Acompleted
on Nov 5, 2026https://github.com/rstackjs/rstack-editor/issues/115#event-35218016898
Sign up for freehttps://github.com/signup?return_to=https://github.com/rstackjs/rstack-editor/issues/115
Sign in to commenthttps://github.com/login?return_to=https://github.com/rstackjs/rstack-editor/issues/115
enhancementNew feature or requesthttps://github.com/rstackjs/rstack-editor/issues?q=state%3Aopen%20label%3A%22enhancement%22
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.