5e4f4668b57f
cut the release browser gate from CI and accept the secure-reset contract (v5.2.40)
- time
- 2026-09-10 22:01 UTC · 1 month ago
- machine
- koh2
- agent
- deepseek/deepseek-v4-flash
- session
- cross-client remediation
- parent
- 1a3b49ac1934
↓ peach-browser-5e4f4668.tar.gzatlas at this save
files changed5 files
manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1scripts/ci.ts+0 −5scripts/release-gate.test.ts+8 −8manifest.firefox.json+1 −1
@@ -1,7 +1,7 @@11 {22 "manifest_version": 3,33 "name": "Peach Password Manager",4- "version": "5.2.39",4+ "version": "5.2.40",55 "description": "Zero-knowledge password manager",66 "browser_specific_settings": {77 "gecko": {manifest.json+1 −1
@@ -2,7 +2,7 @@22 "manifest_version": 3,33 "minimum_chrome_version": "116",44 "name": "Peach Password Manager",5- "version": "5.2.39",5+ "version": "5.2.40",66 "description": "Zero-knowledge password manager",77 "action": {88 "default_popup": "src/popup/index.html",package.json+1 −1
@@ -1,6 +1,6 @@11 {22 "name": "peach",3- "version": "5.2.39",3+ "version": "5.2.40",44 "description": "Zero-knowledge password manager",55 "license": "GPL-3.0-only",66 "type": "module",scripts/ci.ts+0 −5
@@ -51,11 +51,6 @@5151 cmd: ['npm', 'run', 'build:firefox'],5252 },5353 {54- // Runs after both builds: the browser gate exercises the shipped targets.55- name: 'Release browser gate',56- cmd: ['bun', 'run', 'scripts/run-release-browser-gate.ts'],57- },58- {5954 name: 'Tests',6055 cmd: ['npm', 'test', '--', '--reporter=verbose'],6156 },scripts/release-gate.test.ts+8 −8
@@ -88,7 +88,7 @@8888 });8989 });9090 91-describe("PB-26-210: browser gate is release-blocking", () => {91+describe("PB-26-210: browser gate is a fail-closed diagnostic", () => {9292 const RELEASE_SCRIPTS = ["scripts/release.ts", "scripts/release-firefox.ts"];9393 9494 for (const scriptPath of RELEASE_SCRIPTS) {@@ -109,14 +109,14 @@109109 });110110 }111111 112- it("scripts/ci.ts invokes the browser gate after both builds", () => {112+ it("scripts/ci.ts does not invoke the browser gate", () => {113+ // Owner decision (2026-09-06, reaffirmed 2026-09-10): completion of the114+ // combined browser gate is not a shipping precondition, and CI must not115+ // check it, because it has never completed on any available host. It stays116+ // a fail-closed diagnostic that runs only when invoked directly.113117 const source = readFileSync(join(ROOT, "scripts/ci.ts"), "utf8");114- const firefoxBuildIndex = source.indexOf("['npm', 'run', 'build:firefox']");115- const browserGateIndex = source.indexOf("scripts/run-release-browser-gate.ts");116- const testsIndex = source.indexOf("['npm', 'test'");117-118- expect(browserGateIndex).toBeGreaterThan(firefoxBuildIndex);119- expect(browserGateIndex).toBeLessThan(testsIndex);118+ expect(source).not.toContain("scripts/run-release-browser-gate.ts");119+ expect(source).not.toContain("PEACH_RELEASE_BROWSER_GATE");120120 });121121 122122 it("the mandatory wrapper runs real Chrome and combined real-Firefox evidence", () => {