Skip to content

ci: add dependency-aware impact routing and release-oriented Pages (#216) - #218

Merged
miso-develop merged 14 commits into
mainfrom
task/216
Sep 19, 2026
Merged

miso-develop merged 14 commits into
mainfrom
task/216

Conversation

@miso-develop

@miso-develop miso-develop commented Sep 19, 2026

Copy link
Copy Markdown
Owner

Closes #216
Parent: #215
Release preparation parent: #213

Scope

  • add repository-owned fail-safe change-impact classifier
  • route Foundation Web/Windows/Firmware heavy jobs from complete changed-path impact
  • keep required security:scan unconditional and add routing regression coverage under that required context
  • add local production-equivalent Web/Flash/Help Chrome smoke for Web/Shared changes without ESP-IDF
  • remove automatic Pages deployment from ordinary main pushes
  • retain protected SemVer tag Pages deploys
  • retain a Human-approved exact-current-main manual candidate Pages path
  • split Issue117 lightweight snapshot contracts from diagnostics ESP-IDF builds
  • document the durable CI/Pages operating contract in docs/CI.md

Fresh bootstrap evidence

Baseline current main: 49de696f3a75a1afa100606bce2b072ec5148c98

Impact classifier

scripts/ci_change_impact.py owns deterministic PR/push diff acquisition and routing.

It:

  • uses PR base SHA..head SHA for pull requests;
  • uses event before..after for main pushes;
  • counts deletes and both old/new rename paths;
  • verifies both commits are available in checkout history;
  • writes routing values through GITHUB_OUTPUT;
  • treats unknown paths as Shared;
  • treats unavailable/malformed/all-zero/empty/failed diff state as uncertain all-heavy.

Output categories are:

  • web
  • firmware
  • pages
  • security_release_shared
  • snapshot_contract
  • snapshot_build
  • process_docs_only
  • uncertain

The focused regression matrix covers docs/process-only, Web-only, Firmware-only, shared release/CI, unknown paths, all-zero push base, unavailable diff, rename/delete behavior, and snapshot contract/build boundaries.

Foundation and Security

Foundation still triggers on every PR and main push.

The lightweight classify job always runs. Heavy jobs are conditional:

  • Linux Web + Windows Chrome => Web/Shared
  • Firmware => Firmware/Shared
  • docs/process-only => classify only

This PR changes routing workflows/classifier and therefore classified Shared on exact HEAD. All Web, Windows, and Firmware jobs ran.

Security remains unfiltered on every PR and main push:

  • exact job/check context remains security:scan;
  • no job-level skip was added;
  • full existing security/release/supply-chain suite remains;
  • routing/Pages regression tests now run inside this required check.

Production-equivalent local Web smoke

Web/Shared changes run a real Vite production-style build with:

  • base /m5authenticator/;
  • production Provisioner/Firmware/Help HTML and CSP;
  • normal Firmware Flash surface enabled;
  • synthetic, non-secret same-origin target/manifests/tiny firmware fixture assets;
  • local Vite preview;
  • Chrome verification of Provisioner/Firmware/Help initialization and same-origin firmware target/manifests/assets.

The synthetic fixture plugin is enabled only for qr-smoke / production-smoke modes and is not emitted by the normal Pages production build.

Existing QR/Argon2 production-bundle coverage remains.

Pages cadence

.github/workflows/pages.yml no longer has an ordinary main push trigger.

Automatic deployment remains:

  • protected SemVer tag push v*.*.*

Manual candidate deployment remains:

  • explicit workflow_dispatch;
  • requires exact 40-character candidate_sha;
  • requires explicit candidate acknowledgement;
  • requires invocation from refs/heads/main;
  • freshly fetches origin/main;
  • requires workflow source GITHUB_SHA == current main;
  • requires candidate_sha == current main;
  • records source/build identity in the job summary;
  • forces exact_release=false;
  • explicitly identifies the deployment as a mutable pre-release candidate, not an immutable GitHub Release.

Tag/manual paths preserve release validation, immutable ESP-IDF identity, isolated firmware build, package/image validation, same-origin firmware assets, production Web build, one Pages staging artifact with retention-days: 1, and exact artifact-ID deletion after deploy.

Issue117 split

Issue117 now has:

  • lightweight snapshot contract job;
  • independent diagnostics test-only screen snapshot profile build job.

Snapshot docs, AGENTS.md, Windows scripts, host helper, and snapshot contract tests do not require the ESP-IDF diagnostics build. True firmware/profile/CMake/sdkconfig/device/time/session/vault-runtime/image/workflow-build inputs still do.

Because this PR changes the workflow itself, exact-head classification intentionally exercised both jobs.

Authorized Release boundary

.github/workflows/release-authorized.yml is byte-for-byte unchanged from current main (blob d126d260b05c56556cb2e83017ee21086a362490).

No Pages/OIDC deployment authority was added to it. Existing raw/verified artifact handoffs, checksums, attest-before-publish, one-day retention, exact-ID cleanup, publisher permissions, and legacy Release tombstone boundary remain intact.

Exact-head verification

HEAD: c64b5ff836bf7ce4ca6c89f740dc4fdd777cb3e4

  • Security #948: SUCCESS
    • exact required context security:scan;
    • full existing security/release suite green;
    • CI impact/workflow regression suite green (27 tests).
  • Foundation #945: SUCCESS
    • classifier: SUCCESS;
    • exact PR classifier output: Web=true, Firmware=true, Pages=true, Shared=true, snapshot contract/build=true, uncertain=false;
    • complete changed-path set contained all ten effective PR files;
    • Linux Web: SUCCESS;
    • Windows Chrome QR/Argon2: SUCCESS;
    • production-equivalent Web/Flash/Help Chrome smoke: SUCCESS;
    • Firmware: SUCCESS;
    • release validation / supply-chain checks: SUCCESS;
    • isolated ESP-IDF build: SUCCESS;
    • firmware image/package validation: SUCCESS;
    • candidate package remains v1.0.0.
  • Issue 117 Screen Snapshot [Decision][Release] Retire deleted legacy workflow via disabled tombstone identity #200: SUCCESS
    • classifier: SUCCESS;
    • lightweight snapshot contract: SUCCESS;
    • diagnostics ESP-IDF profile build: SUCCESS;
    • dependency lock unchanged.
  • no Pages workflow run is created for this PR.
  • current main remains exact base 49de696f3a75a1afa100606bce2b072ec5148c98;
  • branch is behind 0 and PR is mergeable;
  • PR ci: add dependency-aware impact routing and release-oriented Pages (#216) #218 is the only open PR;
  • main Ruleset still requires only security:scan from GitHub Actions integration 15368;
  • v1.0.0 tag remains absent;
  • GitHub Release v1.0.0 remains absent.

Safety boundaries

  • no Product/Protocol/Storage/Vault behavior changes
  • no release-authority/attestation/provenance weakening
  • no Pages/OIDC authority added to release-authorized.yml
  • no tag or Release creation
  • Authorized Release bounded artifact handoffs remain unchanged
  • manual candidate Pages is explicitly mutable/pre-release and exact-main only

Post-merge Integration boundary

Integration must verify on the exact merged main SHA:

  • canonical Product/Firmware remains 1.0.0;
  • security:scan succeeds;
  • Foundation routing behaves as expected for the shared workflow merge;
  • the ordinary merge push creates no Pages build/deploy workflow run;
  • the ordinary merge push creates no Pages staging artifact;
  • Authorized Release and legacy tombstone contracts remain unchanged;
  • v1.0.0 tag remains absent.

After that, return to #213. The manual public Pages candidate is a separate Human Gate and must not be run merely as part of integrating this PR.

@miso-develop
miso-develop marked this pull request as ready for review September 19, 2026 11:41

Copy link
Copy Markdown
Owner Author

Implementation for #216 is complete at exact HEAD c64b5ff836bf7ce4ca6c89f740dc4fdd777cb3e4.

Exact-head routing evidence:

  • Security #948: SUCCESS under required context security:scan; full security/release suite plus CI-routing regressions passed.
  • Foundation #945: SUCCESS.
    • classify: SUCCESS, uncertain=false.
    • this Shared workflow/classifier PR correctly routed Web=true and Firmware=true, so Linux Web, Windows Chrome, and Firmware all ran.
    • production-equivalent Provisioner/Firmware/Help Chrome smoke with same-origin synthetic firmware fixtures: SUCCESS.
    • isolated ESP-IDF build and CI-built firmware package validation: SUCCESS.
  • Issue 117 Screen Snapshot [Decision][Release] Retire deleted legacy workflow via disabled tombstone identity #200: SUCCESS.
    • lightweight snapshot contract job: SUCCESS.
    • diagnostics ESP-IDF build job: SUCCESS because the workflow/build semantics themselves changed.
  • no Pages workflow run is created for the PR.

Contract evidence:

  • ordinary main push was removed from Pages triggers; SemVer tag + explicit manual candidate remain.
  • manual candidate requires refs/heads/main, explicit acknowledgement, exact 40-char candidate SHA, freshly fetched current main, and exact equality among workflow source/current main/candidate SHA.
  • manual candidate forces non-exact build identity and is labeled pre-release/mutable.
  • Pages retention-days: 1 and exact consumed artifact-ID deletion remain.
  • .github/workflows/release-authorized.yml is byte-for-byte unchanged from main (blob d126d260b05c56556cb2e83017ee21086a362490).
  • protected-main Ruleset still requires exactly security:scan from GitHub Actions integration 15368.
  • current main remains 49de696f3a75a1afa100606bce2b072ec5148c98; branch behind 0; PR mergeable; no overlapping open PR.
  • v1.0.0 tag and GitHub Release remain absent.

No merge, tag creation, Release publication, repository dispatch, or manual public Pages candidate deployment was performed.

Post-merge evidence belongs to Integration: verify the ordinary merge push has Security/Foundation as expected and creates no Pages run/artifact, then return to #213 for the separate explicit Human-approved manual candidate Pages gate.

Copy link
Copy Markdown
Owner Author

HANDOFF
FROM: implementation
TO: review
DOMAIN: infra
ISSUE: #216
PR: #218
HEAD: c64b5ff
STATE: READY_FOR_REVIEW

@miso-develop miso-develop left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review disposition: REWORK_REQUIRED

Reviewed exact PR head c64b5ff836bf7ce4ca6c89f740dc4fdd777cb3e4 against Issue #216, parent #215, and the revised v1.0.0 release sequence in #213.

One blocking deterministic-routing finding identified.

Blocking finding — Issue117 routing does not treat the canonical classifier itself as a snapshot build-semantics dependency

.github/workflows/issue117-screen-snapshot.yml now delegates its contract/build decision to:

scripts/ci_change_impact.py

However, that exact classifier path is absent from the Issue117 workflow-level pull_request.paths trigger.

In addition, scripts/ci_change_impact.py is in SHARED_EXACT, but it is not in SNAPSHOT_BUILD_EXACT or SNAPSHOT_BUILD_PREFIXES. Therefore:

classify_paths(["scripts/ci_change_impact.py"])

sets Shared/Web/Firmware/Pages impact, but does not set snapshot_build=true.

This creates a future false-skip boundary:

  1. a PR changes only scripts/ci_change_impact.py;
  2. that change can alter the exact logic used by Issue117 to decide whether diagnostics firmware should build;
  3. the Issue117 workflow does not start at all because its workflow-level path filter does not include the classifier;
  4. even if invoked independently, the classifier currently does not classify its own change as snapshot_build;
  5. Foundation/Security can still be green without the diagnostics-ON ESP-IDF profile being exercised.

The current exact-head Issue117 #200 run does not expose this hole because this PR also changes .github/workflows/issue117-screen-snapshot.yml, which is in both the workflow trigger and SNAPSHOT_BUILD_EXACT, so both snapshot jobs ran.

This conflicts with #216's explicit Issue117 contract that diagnostics ESP-IDF build must run for:

  • workflow build-semantics changes;
  • other true diagnostics-firmware build dependencies.

The canonical classifier is now directly part of Issue117 workflow build/routing semantics and must not be able to change without exercising that boundary.

Required completion condition:

  • make scripts/ci_change_impact.py itself trigger the Issue117 workflow;
  • classify a change to that file as snapshot_contract=true and snapshot_build=true;
  • add focused regression coverage proving classifier-only change exercises the diagnostics-build path;
  • preferably pin the workflow trigger dependency mechanically in tests/ci_change_impact_test.py so this cannot silently regress.

No broad change to the snapshot dependency set is required for this finding.

Other reviewed areas

The rest of #216 is consistent with the current contract.

Foundation routing

  • Foundation still triggers on every PR and main push.
  • Always-run classify job uses complete-history checkout and repository-owned Git/Python classification.
  • PR uses base SHA -> head SHA; push uses before -> after.
  • rename/copy handling includes both old and new paths; delete paths are retained.
  • malformed/all-zero/unavailable/empty diff state fails safe to uncertain=true and all-heavy.
  • unknown paths fail safe to Shared/all-heavy.
  • heavy jobs are conditioned only after classification:
    • Web/Windows on web=true;
    • Firmware on firmware=true.
  • this workflow/classifier PR correctly exercised all heavy jobs.

Required Security invariant

  • Security workflow still runs on every PR and main push without workflow path filtering.
  • exact required job/check context remains security:scan.
  • no job-level conditional skip was added to security:scan.
  • full security/release/supply-chain suite remains.
  • CI routing/Pages regression suite is now executed inside the required Security job.

Production-equivalent local Web smoke

  • real Vite build with repository production base /m5authenticator/;
  • real Provisioner/Firmware/Help route HTML and CSP;
  • normal Firmware Flash surface enabled;
  • synthetic non-secret same-origin target/manifests/firmware parts emitted only under dedicated smoke modes;
  • production-smoke output is separate from normal dist;
  • normal Pages production build does not enable the fixture plugin;
  • Chrome verifies route initialization, CSP, same-origin target/manifests, and every synthetic firmware part;
  • existing QR/Argon2 production-bundle coverage remains.

Pages cadence / manual candidate

  • ordinary main push trigger is removed.
  • automatic tag path remains v*.*.*.
  • manual candidate requires:
    • refs/heads/main;
    • explicit acknowledgement;
    • exact 40-character candidate SHA;
    • fresh origin/main;
    • workflow source SHA == fresh current main;
    • candidate SHA == fresh current main.
  • manual candidate forces exact_release=false and records mutable/pre-release identity in the summary.
  • tag/manual path retains release validation, pinned ESP-IDF identity, isolated firmware build, image/package validation, same-origin firmware assets, production Web build, one-day Pages staging artifact, deploy, and exact artifact-ID deletion.
  • no Pages/OIDC authority is added to Authorized Release.

Release/security boundary

  • .github/workflows/release-authorized.yml is byte-for-byte unchanged from exact base/current main (blob d126d260b05c56556cb2e83017ee21086a362490).
  • canonical Product/Firmware version remains 1.0.0 / 1.0.0 / 1.0.0.
  • Protocol / Storage / Vault remain 2 / 2 / 1.
  • production_release_allowed remains true.
  • v1.0.0 tag is absent.
  • GitHub Release v1.0.0 is absent.
  • no Product/Protocol/Storage/Vault runtime behavior or release authority is changed.

Exact-head evidence

  • Security #948: SUCCESS.
  • Foundation #945: SUCCESS:
    • classify: SUCCESS;
    • Web: SUCCESS;
    • Windows Chrome: SUCCESS;
    • Firmware: SUCCESS;
    • production-equivalent Web/Flash/Help smoke: SUCCESS;
    • isolated ESP-IDF/package validation: SUCCESS.
  • Issue117 Screen Snapshot #200: SUCCESS:
    • classifier: SUCCESS;
    • snapshot contract: SUCCESS;
    • diagnostics ESP-IDF profile: SUCCESS.
  • no Pages workflow is created for this PR.

Staleness/collision

  • handoff HEAD matches current PR HEAD.
  • PR is open, non-draft, mergeable.
  • current main remains exact PR base 49de696f3a75a1afa100606bce2b072ec5148c98.
  • PR #218 is the only open PR at final Review check.

#216 must not advance to Integration until the Issue117 classifier-dependency hole above is corrected and re-reviewed on a new exact HEAD.

No manual public Pages candidate, protected tag creation, or Release publication belongs in this rework.

Copy link
Copy Markdown
Owner Author

HANDOFF
FROM: review
TO: implementation
DOMAIN: infra
ISSUE: #216
PR: #218
HEAD: c64b5ff
STATE: REWORK_REQUIRED

Copy link
Copy Markdown
Owner Author

Rework for the blocking Review finding is complete at exact HEAD ee1b38d004265d7b325e2e0cd53e20a81d98d82f.

Resolved boundary:

  • scripts/ci_change_impact.py is now an explicit Issue117 workflow trigger dependency.
  • classifier changes now classify snapshot_contract=true and snapshot_build=true.
  • focused regression coverage pins classifier-only snapshot build semantics and mechanically checks the Issue117 workflow trigger.

Exact-head verification:

  • Security #949: SUCCESS (security:scan).
  • Issue 117 Screen Snapshot [Task][Infra] Add disabled legacy Release workflow tombstone #201: SUCCESS.
    • classify snapshot impact: SUCCESS.
    • snapshot contract: SUCCESS.
    • test-only screen snapshot profile: SUCCESS.
  • Foundation #946: SUCCESS.
    • classify: SUCCESS.
    • Web: SUCCESS.
    • Windows Chrome: SUCCESS.
    • Firmware: SUCCESS.
  • current main remains 49de696f3a75a1afa100606bce2b072ec5148c98.
  • PR is open, non-draft, mergeable, and 0 commits behind main.
  • v1.0.0 tag and GitHub Release remain absent.

The rework is limited to the Review finding; no Pages candidate deployment, tag creation, Release publication, or merge was performed.

Copy link
Copy Markdown
Owner Author

HANDOFF
FROM: implementation
TO: review
DOMAIN: infra
ISSUE: #216
PR: #218
HEAD: ee1b38d
STATE: READY_FOR_REVIEW

@miso-develop miso-develop left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review disposition: READY_FOR_INTEGRATION

Re-reviewed exact PR head ee1b38d004265d7b325e2e0cd53e20a81d98d82f against Issue #216, parent #215, and the release sequencing in #213.

No blocking finding remains.

Resolution of prior Review finding

The Issue117 classifier-dependency false-skip boundary is closed.

  • .github/workflows/issue117-screen-snapshot.yml now explicitly includes:
    scripts/ci_change_impact.py
    in its pull_request.paths trigger.
  • scripts/ci_change_impact.py now includes its own path in SNAPSHOT_BUILD_EXACT.
  • Therefore a classifier-only change sets:
    • snapshot_contract=true;
    • snapshot_build=true;
    • Shared/Web/Firmware routing as expected.
  • Focused unit coverage asserts exactly that classifier-only behavior.
  • Workflow contract coverage mechanically asserts that the classifier path remains present in the Issue117 trigger.

This means future changes to the canonical routing logic itself cannot silently bypass the diagnostics-ON ESP-IDF profile.

Exact-head runtime evidence

Foundation #946:

  • classify job: SUCCESS;
  • exact impact output:
    • web=true;
    • firmware=true;
    • pages=true;
    • security_release_shared=true;
    • snapshot_contract=true;
    • snapshot_build=true;
    • uncertain=false;
  • complete changed-path set includes all ten effective PR files;
  • Linux Web: SUCCESS;
  • Windows Chrome: SUCCESS;
  • Firmware: SUCCESS;
  • production-equivalent Provisioner/Firmware/Help Chrome smoke: SUCCESS;
  • isolated ESP-IDF build/package validation: SUCCESS.

Security #949:

  • exact required check context security:scan: SUCCESS;
  • CI impact/workflow regression suite: 15 tests passed;
  • full existing security/release/supply-chain suite remains green;
  • repository scan: SUCCESS.

Issue117 Screen Snapshot #201:

  • classify snapshot impact: SUCCESS;
  • exact classifier output includes snapshot_contract=true and snapshot_build=true;
  • snapshot contract: SUCCESS;
  • test-only diagnostics ESP-IDF profile: SUCCESS;
  • dependency lock unchanged.

Remaining #216 contract

Previously-reviewed areas remain acceptable and unchanged by the rework:

  • Foundation still triggers on every PR and main push.
  • Heavy Web/Windows/Firmware jobs are conditional only after deterministic classification.
  • unknown/unclassified paths and diff uncertainty fail safe to all-heavy.
  • PR base->head and push before->after diff semantics remain.
  • rename/delete handling remains complete.
  • security:scan remains unconditional and unfiltered on PR/main push.
  • Pages no longer deploys on ordinary main pushes.
  • SemVer tag-triggered Pages deployment remains.
  • manual Pages candidate remains explicit, mutable/pre-release, and fail-closed to exact current main through:
    • main ref requirement;
    • explicit acknowledgement;
    • exact 40-character candidate SHA;
    • fresh origin/main fetch;
    • workflow source SHA == current main;
    • candidate SHA == current main.
  • manual candidate forces exact_release=false.
  • Pages retains production firmware/package/Web build, one-day staging artifact retention, deployment, and exact artifact-ID deletion.
  • production-equivalent local Web smoke uses real production base/CSP/routes and same-origin synthetic non-secret firmware fixtures isolated to smoke build modes.
  • Authorized Release workflow remains outside this optimization boundary and unchanged.
  • no Pages/OIDC authority was added to Authorized Release.

Release/security boundary

Current exact base/main remains 49de696f3a75a1afa100606bce2b072ec5148c98.

The PR preserves:

  • Product/Firmware version = 1.0.0;
  • Protocol = 2;
  • Storage Schema = 2;
  • Vault Format = 1;
  • production_release_allowed=true;
  • release authorization/provenance/attestation boundaries;
  • legacy Release tombstone retirement;
  • ESP-IDF identity;
  • Product/Vault/crypto/Recovery/Lock behavior.

v1.0.0 tag remains absent.
GitHub Release v1.0.0 remains absent.

Staleness / collision

  • handoff HEAD matches current PR HEAD;
  • PR is open, non-draft, mergeable;
  • current main remains exact PR base;
  • rework delta from prior reviewed HEAD is limited to:
    • .github/workflows/issue117-screen-snapshot.yml;
    • scripts/ci_change_impact.py;
    • tests/ci_change_impact_test.py;
  • PR #218 remains the only open PR at final Review check.

Integration boundary

#216 is ready for Integration.

After merge, Integration must still perform the required post-merge evidence on the exact merged main SHA:

  • canonical Product/Firmware remains 1.0.0;
  • security:scan succeeds;
  • Foundation routing for the shared workflow merge behaves as expected;
  • ordinary main merge push creates no Pages workflow run;
  • ordinary main merge push creates no Pages staging artifact;
  • Authorized Release and tombstone contracts remain unchanged;
  • v1.0.0 tag remains absent.

Only after that should control return to #213 for the separate explicit Human-approved manual public Pages candidate gate.

No manual Pages candidate, tag creation, or Release publication is authorized as part of merging #216.

Copy link
Copy Markdown
Owner Author

HANDOFF
FROM: review
TO: integration
ISSUE: #216
PR: #218
HEAD: ee1b38d
STATE: READY_FOR_INTEGRATION

Copy link
Copy Markdown
Owner Author

READY_TO_MERGE

HEAD: ee1b38d004265d7b325e2e0cd53e20a81d98d82f
Current main / PR base: 49de696f3a75a1afa100606bce2b072ec5148c98

Integration reconstruction:

STATE: READY_TO_MERGE

@miso-develop
miso-develop merged commit 6f008c6 into main Sep 19, 2026
8 checks passed
@miso-develop
miso-develop deleted the task/216 branch September 19, 2026 14:19

Copy link
Copy Markdown
Owner Author

INTEGRATED

PR: #218
Pre-merge HEAD: ee1b38d004265d7b325e2e0cd53e20a81d98d82f
Squash merge commit / current main: 6f008c6864d3b080106f53d51eb7cbe1f2b4c150

Pre-merge Integration evidence:

Required post-merge evidence on exact merged main:

  • Security #950: SUCCESS
  • Foundation #947: SUCCESS
    • classify: SUCCESS
    • web: SUCCESS
    • web QR Windows Chrome: SUCCESS
    • firmware: SUCCESS
  • ordinary main push created exactly Security + Foundation workflow runs and no Pages workflow run
  • Security/Foundation produced no Actions artifacts; no Pages staging artifact path was entered
  • canonical CMake/runtime/profile Product/Firmware versions remain 1.0.0
  • Protocol / Storage / Vault remain 2 / 2 / 1
  • production_release_allowed: true
  • .github/workflows/release-authorized.yml remains blob d126d260b05c56556cb2e83017ee21086a362490
  • retired .github/workflows/release.yml tombstone remains present
  • v1.0.0 tag: absent
  • v1.0.0 GitHub Release: absent
  • Issue [Task][Infra] Add dependency-aware CI impact routing and release-oriented Pages deploys #216 auto-closed as completed

STATE: INTEGRATED

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.

[Task][Infra] Add dependency-aware CI impact routing and release-oriented Pages deploys

1 participant