Skip to content

Commit 0345222

Browse files
committed
Merge remote-tracking branch 'origin/main' into codex/release-backport-policy
* origin/main: Agents: automate public demo fleet standing health (#4751) Tolerate lone UTF-16 surrogates in renderer JSON (#4710) (#4745) Agents: add fleet validation lifecycle closeout (#4747) CI: split generator specs into setup-safe subshards (#4746) Add react_on_rails:install_rsc_agent_guardrails: ship RSC agent-safety skill + hook into apps (#4606) Revert "Fix SSR crash on unpaired UTF-16 surrogates from JS JSON output (#4710) (#4726)"
2 parents e51825a + 613c6c2 commit 0345222

37 files changed

Lines changed: 12402 additions & 418 deletions

.agents/skills/run-fleet-validation/SKILL.md

Lines changed: 173 additions & 22 deletions
Large diffs are not rendered by default.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
interface:
22
display_name: "Run Fleet Validation"
3-
short_description: "Generate parallel release fleet validation lanes"
4-
default_prompt: "Use $run-fleet-validation to generate and coordinate the latest RC or beta fleet-validation prompts."
3+
short_description: "Run release lifecycle or standing fleet-health validation"
4+
default_prompt: "Use $run-fleet-validation to generate either a candidate lifecycle pack through durable closeout or a public-only stable standing-health evidence pack."
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
manifest:
2+
schema_version: 1
3+
standing_health:
4+
schema_version: 1
5+
stable_release: v17.0.0
6+
rsc_version: 19.2.1
7+
max_minor_lag: 1
8+
max_default_age_days: 45
9+
dependabot_policy: v1
10+
archived_targets:
11+
- name: sanitized/archived
12+
headline: Archived demo
13+
packages: []
14+
repos:
15+
- name: sanitized/active-current
16+
headline: Active current demo
17+
tier: hard_gate
18+
packages:
19+
- { ecosystem: gem, name: react_on_rails }
20+
- { ecosystem: npm, name: react-on-rails }
21+
standing_health:
22+
public: true
23+
disposition: active
24+
review_app: required
25+
review_app_workflow: .github/workflows/cpflow-deploy-review-app.yml
26+
- name: sanitized/active-drifted
27+
headline: Active drifted demo
28+
tier: hard_gate
29+
packages:
30+
- { ecosystem: gem, name: react_on_rails }
31+
- { ecosystem: npm, name: react-on-rails }
32+
- { ecosystem: npm, name: react-on-rails-rsc }
33+
standing_health:
34+
public: true
35+
disposition: active
36+
review_app: required
37+
review_app_workflow: .github/workflows/cpflow-deploy-review-app.yml
38+
- name: sanitized/report-only
39+
headline: Report-only historical demo
40+
tier: soft_track
41+
packages:
42+
- { ecosystem: gem, name: react_on_rails }
43+
standing_health:
44+
public: true
45+
disposition: report_only
46+
review_app: not_required
47+
- name: sanitized/not-in-public-health
48+
headline: Excluded target
49+
tier: hard_gate
50+
packages:
51+
- { ecosystem: gem, name: react_on_rails }
52+
53+
observations:
54+
sanitized-active-current:
55+
default_branch: main
56+
default_commit: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
57+
default_commit_at: "2026-07-17T12:00:00Z"
58+
repository_archived: false
59+
observed_at: "2026-07-18T12:00:00Z"
60+
package_versions:
61+
- { ecosystem: gem, name: react_on_rails, version: 17.0.0, source: lockfile }
62+
- { ecosystem: npm, name: react-on-rails, version: 17.0.0, source: lockfile }
63+
default_ci: { status: passed, evidence: "sanitized current-head CI" }
64+
smoke: { status: passed, shared_contract: true, evidence: "sanitized exact-head smoke" }
65+
review_app: { status: passed, evidence: "sanitized review-app smoke" }
66+
dependabot:
67+
status: passed
68+
policy: v1
69+
evidence: "sanitized Dependabot ecosystems and weekly groups"
70+
sanitized-active-drifted:
71+
default_branch: main
72+
default_commit: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
73+
default_commit_at: "2026-03-01T12:00:00Z"
74+
repository_archived: false
75+
observed_at: "2026-07-18T12:00:00Z"
76+
package_versions:
77+
- { ecosystem: gem, name: react_on_rails, version: 16.6.0, source: lockfile }
78+
- { ecosystem: npm, name: react-on-rails, version: 16.6.0, source: lockfile }
79+
- { ecosystem: npm, name: react-on-rails-rsc, version: 19.2.1-rc.0, source: lockfile }
80+
default_ci: { status: blocked, evidence: "sanitized baseline gate failure" }
81+
smoke: { status: blocked, shared_contract: false, evidence: "sanitized interaction drift" }
82+
review_app: { status: unknown, evidence: "sanitized inconclusive deployed smoke" }
83+
dependabot:
84+
status: blocked
85+
policy: v1
86+
evidence: "sanitized missing ecosystem coverage"
87+
sanitized-report-only:
88+
default_branch: main
89+
default_commit: cccccccccccccccccccccccccccccccccccccccc
90+
default_commit_at: "2024-01-01T12:00:00Z"
91+
repository_archived: false
92+
observed_at: "2026-07-18T12:00:00Z"
93+
package_versions:
94+
- { ecosystem: gem, name: react_on_rails, version: 14.0.3, source: lockfile }
95+
default_ci: { status: unknown, evidence: "sanitized report-only CI" }
96+
smoke: { status: unknown, shared_contract: false, evidence: "sanitized report-only smoke" }
97+
review_app: { status: not_applicable, evidence: "report-only" }
98+
dependabot:
99+
status: blocked
100+
policy: v1
101+
evidence: "sanitized report-only missing config"
102+
sanitized-archived:
103+
default_branch: main
104+
default_commit: dddddddddddddddddddddddddddddddddddddddd
105+
default_commit_at: "2023-01-01T12:00:00Z"
106+
repository_archived: true
107+
observed_at: "2026-07-18T12:00:00Z"
108+
package_versions: []
109+
default_ci: { status: not_applicable, evidence: "archived" }
110+
smoke: { status: not_applicable, shared_contract: false, evidence: "archived" }
111+
review_app: { status: not_applicable, evidence: "archived" }
112+
dependabot:
113+
status: not_applicable
114+
policy: v1
115+
evidence: "archived"
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
schema_version: 1
2+
3+
lifecycle:
4+
required_paths:
5+
- id: standard-generator
6+
evidence_source: core_generator
7+
- id: pro-ssr
8+
evidence_source: core_generator
9+
- id: pro-rsc
10+
evidence_source: core_generator
11+
- id: rspack
12+
evidence_source: fleet
13+
- id: webpack-rsc-production
14+
evidence_source: release_must_have
15+
- id: ssr-rsc-html
16+
evidence_source: fleet
17+
- id: client-navigation-interaction
18+
evidence_source: fleet
19+
20+
defaults:
21+
package_manager: pnpm
22+
ruby_test: bundle exec rspec
23+
build: bin/build
24+
review_app: null
25+
26+
repos:
27+
- name: sanitized/hard-01
28+
headline: Sanitized hard gate 01
29+
tier: hard_gate
30+
needs_pro: false
31+
packages: [{ ecosystem: gem, name: example-package }]
32+
smoke: [/]
33+
verify: false
34+
- name: sanitized/hard-02
35+
headline: Sanitized hard gate 02
36+
tier: hard_gate
37+
needs_pro: false
38+
packages: [{ ecosystem: gem, name: example-package }]
39+
smoke: [/]
40+
verify: false
41+
- name: sanitized/hard-03
42+
headline: Sanitized hard gate 03
43+
tier: hard_gate
44+
needs_pro: false
45+
packages: [{ ecosystem: npm, name: example-package }]
46+
smoke: [/]
47+
verify: false
48+
- name: sanitized/hard-04
49+
headline: Sanitized hard gate 04
50+
tier: hard_gate
51+
needs_pro: false
52+
packages: [{ ecosystem: npm, name: example-package }]
53+
smoke: [/]
54+
verify: false
55+
- name: sanitized/hard-05
56+
headline: Sanitized hard gate 05
57+
tier: hard_gate
58+
needs_pro: false
59+
packages: [{ ecosystem: gem, name: example-package }]
60+
smoke: [/]
61+
verify: false
62+
- name: sanitized/hard-06
63+
headline: Sanitized hard gate 06
64+
tier: hard_gate
65+
needs_pro: false
66+
packages: [{ ecosystem: npm, name: example-package }]
67+
smoke: [/]
68+
verify: false
69+
- name: sanitized/hard-07
70+
headline: Sanitized hard gate 07
71+
tier: hard_gate
72+
needs_pro: false
73+
packages: [{ ecosystem: gem, name: example-package }]
74+
smoke: [/]
75+
verify: false
76+
- name: sanitized/soft-01
77+
headline: Sanitized soft track 01
78+
tier: soft_track
79+
- name: sanitized/soft-02
80+
headline: Sanitized soft track 02
81+
tier: soft_track
82+
- name: sanitized/soft-03
83+
headline: Sanitized soft track 03
84+
tier: soft_track
85+
- name: sanitized/soft-04
86+
headline: Sanitized soft track 04
87+
tier: soft_track
88+
- name: sanitized/soft-05
89+
headline: Sanitized soft track 05
90+
tier: soft_track

0 commit comments

Comments
 (0)