[object Object]

← back to Boomer Calculator

Verify live calculator and retain local iOS build 8 signing handoff

2395cbf9b3a62ad379cbbc374dc6f8a7d027b301 · 2026-09-11 10:05:26 -0700 · Steve Abrams

Files touched

Diff

commit 2395cbf9b3a62ad379cbbc374dc6f8a7d027b301
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Fri Sep 11 10:05:26 2026 -0700

    Verify live calculator and retain local iOS build 8 signing handoff
---
 .gitignore                                         |   3 +
 ios/App/App.xcodeproj/project.pbxproj              |   4 +-
 .../TK-11230/calculator-decision/VERDICT.md        |   7 ++
 .../TK-11230/calculator-decision/claude.txt        |   1 +
 .../TK-11230/calculator-decision/codex-debate.txt  |   9 +++
 .../TK-11230/calculator-decision/codex.txt         |   3 +
 verification/TK-11230/calculator-decision/grok.txt |   1 +
 verification/TK-11230/calculator-decision/kimi.txt |   1 +
 verification/TK-11230/calculator-decision/muse.txt |   1 +
 verification/TK-11230/calculator-decision/qwen.txt |   2 +
 .../TK-11230/calculator-live/browser-proof.json    |  78 +++++++++++++++++++++
 .../calculator-live/chrome-desktop-arithmetic.png  | Bin 0 -> 373230 bytes
 .../calculator-live/chrome-desktop-tip.png         | Bin 0 -> 394260 bytes
 .../calculator-live/chrome-touch-arithmetic.png    | Bin 0 -> 115767 bytes
 .../TK-11230/calculator-live/chrome-touch-tip.png  | Bin 0 -> 139410 bytes
 .../video/3e770b63cc75aee7cacaab67886f63c5.webm    | Bin 0 -> 256855 bytes
 .../video/4346793692e82a0c3a8316705ceecf46.webm    | Bin 0 -> 209658 bytes
 .../video/577e8f7d137469bc9acd021e414d4387.webm    | Bin 0 -> 371088 bytes
 .../TK-11230/calculator-live/webkit-arithmetic.png | Bin 0 -> 215855 bytes
 .../TK-11230/calculator-live/webkit-tip.png        | Bin 0 -> 263622 bytes
 .../TK-11230/calculator-parent/browser-proof.json  |  61 ++++++++++++++++
 .../chrome-desktop-arithmetic.png                  | Bin 0 -> 373230 bytes
 .../calculator-parent/chrome-desktop-tip.png       | Bin 0 -> 394260 bytes
 .../calculator-parent/chrome-touch-arithmetic.png  | Bin 0 -> 115767 bytes
 .../calculator-parent/chrome-touch-tip.png         | Bin 0 -> 139410 bytes
 .../video/49b875a65b651b4d1d2f867e8bc6650f.webm    | Bin 0 -> 226225 bytes
 .../video/6f5659067ffc82ee4ec98527a3762c8b.webm    | Bin 0 -> 341521 bytes
 .../TK-11230/calculator-webkit/browser-proof.json  |  61 ++++++++++++++++
 .../chrome-desktop-arithmetic.png                  | Bin 0 -> 373230 bytes
 .../calculator-webkit/chrome-desktop-tip.png       | Bin 0 -> 394260 bytes
 .../calculator-webkit/chrome-touch-arithmetic.png  | Bin 0 -> 115767 bytes
 .../calculator-webkit/chrome-touch-tip.png         | Bin 0 -> 139410 bytes
 .../video/56bb235ec492dc0a7b1dc3022605ecd8.webm    | Bin 0 -> 217111 bytes
 .../video/ad7355e24816314c6681184c6ebeb5e1.webm    | Bin 0 -> 324280 bytes
 verification/TK-11230/native-build8/e2e-proof.json |  69 ++++++++++++++++++
 .../TK-11230/native-build8/export-failure.txt      |   3 +
 36 files changed, 302 insertions(+), 2 deletions(-)

diff --git a/.gitignore b/.gitignore
index a04f60f..8ab1d9c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,6 @@ dist/
 
 # CocoaPods (vendored)
 ios/App/Pods/
+
+# Local signed archives and exports may contain provisioning/device identifiers.
+/artifacts/
diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj
index a3473a7..1d9b0af 100644
--- a/ios/App/App.xcodeproj/project.pbxproj
+++ b/ios/App/App.xcodeproj/project.pbxproj
@@ -362,7 +362,7 @@
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 6;
+				CURRENT_PROJECT_VERSION = 8;
 				DEVELOPMENT_TEAM = 3VAV3KMNZK;
 				INFOPLIST_FILE = App/Info.plist;
 				IPHONEOS_DEPLOYMENT_TARGET = 14.0;
@@ -383,7 +383,7 @@
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 6;
+				CURRENT_PROJECT_VERSION = 8;
 				DEVELOPMENT_TEAM = 3VAV3KMNZK;
 				INFOPLIST_FILE = App/Info.plist;
 				IPHONEOS_DEPLOYMENT_TARGET = 14.0;
diff --git a/verification/TK-11230/calculator-decision/VERDICT.md b/verification/TK-11230/calculator-decision/VERDICT.md
new file mode 100644
index 0000000..a40eaae
--- /dev/null
+++ b/verification/TK-11230/calculator-decision/VERDICT.md
@@ -0,0 +1,7 @@
+# DTD: accurate calculations
+
+Decision A. Confidence moderate. Codex and Qwen voted A (2/2 valid, 2/6 available).
+Claude disabled by zero-cost policy; Grok, Kimi and Muse unavailable. No votes invented.
+Mandatory Codex adversarial follow-up: FINAL KEEP. Existing description promises ordinary
+calculations; no affirmative joke-product requirement overrides it. User delegated judgment.
+Resubmission remains dependent on an accurate built binary and device evidence.
diff --git a/verification/TK-11230/calculator-decision/claude.txt b/verification/TK-11230/calculator-decision/claude.txt
new file mode 100644
index 0000000..19b5d16
--- /dev/null
+++ b/verification/TK-11230/calculator-decision/claude.txt
@@ -0,0 +1 @@
+[claude disabled: DTD_ZERO_COST=1]
diff --git a/verification/TK-11230/calculator-decision/codex-debate.txt b/verification/TK-11230/calculator-decision/codex-debate.txt
new file mode 100644
index 0000000..b26bfe6
--- /dev/null
+++ b/verification/TK-11230/calculator-decision/codex-debate.txt
@@ -0,0 +1,9 @@
+**PROSECUTOR:** A assumes the description expresses the intended product. Returning 67 for every calculation could be deliberate comedy, making the description—not the implementation—the defect. Rebranding could preserve that concept with less work. “Do for me” authorizes execution but does not establish which product Steve wanted. Moreover, only two models voted; their agreement supplies no additional evidence of intent.
+
+**DEFENDER:** Intentional comedy is a plausible hypothesis, but the supplied evidence establishes a promise of a “normal simple calculator” and behavior that contradicts it. Nothing supplied establishes a joke-product requirement. B would therefore replace the documented purpose based on speculation. A restores the documented behavior, requires arithmetic verification, and holds resubmission until the binary matches the description. That separates an authorized repair from the release decision.
+
+**JUDGE:** The prosecutor successfully challenges the panel’s apparent breadth and exposes uncertainty about intent. Neither establishes that rebranding better satisfies the known requirement. The documented functionality controls until contrary evidence exists; the verification requirement addresses the risk of an incomplete repair.
+
+FINAL: KEEP
+
+A has the strongest evidentiary basis: repair the calculator to fulfill its stated purpose, verify arithmetic in the built binary, and retain the separate release check. Overturning A would require affirmative evidence that always returning 67 is the intended product; the supplied record provides none.
\ No newline at end of file
diff --git a/verification/TK-11230/calculator-decision/codex.txt b/verification/TK-11230/calculator-decision/codex.txt
new file mode 100644
index 0000000..aa7366a
--- /dev/null
+++ b/verification/TK-11230/calculator-decision/codex.txt
@@ -0,0 +1,3 @@
+VERDICT: A
+
+Fix the calculator to return accurate results, matching its existing App Store description, and verify the arithmetic with tests. Steve’s “do for me” authorizes proceeding without asking again. Hold resubmission until the built binary demonstrably matches the description; uploads remain separately verified.
\ No newline at end of file
diff --git a/verification/TK-11230/calculator-decision/grok.txt b/verification/TK-11230/calculator-decision/grok.txt
new file mode 100644
index 0000000..7b3ad95
--- /dev/null
+++ b/verification/TK-11230/calculator-decision/grok.txt
@@ -0,0 +1 @@
+[grok unavailable]
diff --git a/verification/TK-11230/calculator-decision/kimi.txt b/verification/TK-11230/calculator-decision/kimi.txt
new file mode 100644
index 0000000..ea4b5a5
--- /dev/null
+++ b/verification/TK-11230/calculator-decision/kimi.txt
@@ -0,0 +1 @@
+[kimi unavailable]
diff --git a/verification/TK-11230/calculator-decision/muse.txt b/verification/TK-11230/calculator-decision/muse.txt
new file mode 100644
index 0000000..3a84ae1
--- /dev/null
+++ b/verification/TK-11230/calculator-decision/muse.txt
@@ -0,0 +1 @@
+[muse unavailable]
diff --git a/verification/TK-11230/calculator-decision/qwen.txt b/verification/TK-11230/calculator-decision/qwen.txt
new file mode 100644
index 0000000..5d460f6
--- /dev/null
+++ b/verification/TK-11230/calculator-decision/qwen.txt
@@ -0,0 +1,2 @@
+VERDICT: A  
+The correct choice is to prioritize accurate calculations that align with the App Store description, as the current behavior (returning 67 for all math) directly contradicts the promised functionality of a "normal simple calculator." This discrepancy risks user trust and App Store compliance. While Option B offers a quick fix by rebranding the bug as a joke, it fails to address the core issue and could lead to long-term reputational harm. Option C delays resolution, which contradicts the user's preference for action. Option A, though requiring testing and verification, ensures the app functions as intended, aligns with the description, and avoids misleading users. Since uploads are separately verified, the process can proceed methodically without compromising quality.
diff --git a/verification/TK-11230/calculator-live/browser-proof.json b/verification/TK-11230/calculator-live/browser-proof.json
new file mode 100644
index 0000000..13609fa
--- /dev/null
+++ b/verification/TK-11230/calculator-live/browser-proof.json
@@ -0,0 +1,78 @@
+{
+  "timestamp": "2026-09-11T17:03:57.628Z",
+  "url": "https://boomercalc.com/",
+  "adRequestsBlocked": true,
+  "results": [
+    {
+      "name": "chrome-desktop",
+      "status": "PASS",
+      "mobile": false,
+      "assertions": [
+        "HTTP 200",
+        "precedence",
+        "continuation",
+        "parentheses",
+        "sine degrees",
+        "division error and recovery",
+        "mortgage valid and zero interest",
+        "missing/invalid inputs",
+        "stale results clear on edits",
+        "BMI imperial and metric",
+        "unit switch reset",
+        "tips and splits",
+        "fractional people rejected",
+        "no overflow",
+        "zero JS errors"
+      ]
+    },
+    {
+      "name": "chrome-touch",
+      "status": "PASS",
+      "mobile": true,
+      "assertions": [
+        "HTTP 200",
+        "precedence",
+        "continuation",
+        "parentheses",
+        "sine degrees",
+        "division error and recovery",
+        "mortgage valid and zero interest",
+        "missing/invalid inputs",
+        "stale results clear on edits",
+        "BMI imperial and metric",
+        "unit switch reset",
+        "tips and splits",
+        "fractional people rejected",
+        "no overflow",
+        "zero JS errors"
+      ]
+    },
+    {
+      "name": "webkit",
+      "status": "PASS",
+      "mobile": true,
+      "assertions": [
+        "HTTP 200",
+        "precedence",
+        "continuation",
+        "parentheses",
+        "sine degrees",
+        "division error and recovery",
+        "mortgage valid and zero interest",
+        "missing/invalid inputs",
+        "stale results clear on edits",
+        "BMI imperial and metric",
+        "unit switch reset",
+        "tips and splits",
+        "fractional people rejected",
+        "no overflow",
+        "zero JS errors"
+      ]
+    },
+    {
+      "name": "firefox",
+      "status": "SKIP",
+      "reason": "browserType.launch: Executable doesn't exist at /Users/macstudio3/Library/Caches/ms-playwright/firefox-1509/firefox/Nightly.app/Contents/MacOS/firefox"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/verification/TK-11230/calculator-live/chrome-desktop-arithmetic.png b/verification/TK-11230/calculator-live/chrome-desktop-arithmetic.png
new file mode 100644
index 0000000..b0e18ee
Binary files /dev/null and b/verification/TK-11230/calculator-live/chrome-desktop-arithmetic.png differ
diff --git a/verification/TK-11230/calculator-live/chrome-desktop-tip.png b/verification/TK-11230/calculator-live/chrome-desktop-tip.png
new file mode 100644
index 0000000..e1db0e6
Binary files /dev/null and b/verification/TK-11230/calculator-live/chrome-desktop-tip.png differ
diff --git a/verification/TK-11230/calculator-live/chrome-touch-arithmetic.png b/verification/TK-11230/calculator-live/chrome-touch-arithmetic.png
new file mode 100644
index 0000000..d7598d7
Binary files /dev/null and b/verification/TK-11230/calculator-live/chrome-touch-arithmetic.png differ
diff --git a/verification/TK-11230/calculator-live/chrome-touch-tip.png b/verification/TK-11230/calculator-live/chrome-touch-tip.png
new file mode 100644
index 0000000..e1821c5
Binary files /dev/null and b/verification/TK-11230/calculator-live/chrome-touch-tip.png differ
diff --git a/verification/TK-11230/calculator-live/video/3e770b63cc75aee7cacaab67886f63c5.webm b/verification/TK-11230/calculator-live/video/3e770b63cc75aee7cacaab67886f63c5.webm
new file mode 100644
index 0000000..0ca3a64
Binary files /dev/null and b/verification/TK-11230/calculator-live/video/3e770b63cc75aee7cacaab67886f63c5.webm differ
diff --git a/verification/TK-11230/calculator-live/video/4346793692e82a0c3a8316705ceecf46.webm b/verification/TK-11230/calculator-live/video/4346793692e82a0c3a8316705ceecf46.webm
new file mode 100644
index 0000000..e487d7b
Binary files /dev/null and b/verification/TK-11230/calculator-live/video/4346793692e82a0c3a8316705ceecf46.webm differ
diff --git a/verification/TK-11230/calculator-live/video/577e8f7d137469bc9acd021e414d4387.webm b/verification/TK-11230/calculator-live/video/577e8f7d137469bc9acd021e414d4387.webm
new file mode 100644
index 0000000..d7bc3de
Binary files /dev/null and b/verification/TK-11230/calculator-live/video/577e8f7d137469bc9acd021e414d4387.webm differ
diff --git a/verification/TK-11230/calculator-live/webkit-arithmetic.png b/verification/TK-11230/calculator-live/webkit-arithmetic.png
new file mode 100644
index 0000000..da4e9ea
Binary files /dev/null and b/verification/TK-11230/calculator-live/webkit-arithmetic.png differ
diff --git a/verification/TK-11230/calculator-live/webkit-tip.png b/verification/TK-11230/calculator-live/webkit-tip.png
new file mode 100644
index 0000000..9b291ff
Binary files /dev/null and b/verification/TK-11230/calculator-live/webkit-tip.png differ
diff --git a/verification/TK-11230/calculator-parent/browser-proof.json b/verification/TK-11230/calculator-parent/browser-proof.json
new file mode 100644
index 0000000..b60a9f2
--- /dev/null
+++ b/verification/TK-11230/calculator-parent/browser-proof.json
@@ -0,0 +1,61 @@
+{
+  "timestamp": "2026-09-11T16:47:16.004Z",
+  "url": "http://127.0.0.1:18764/",
+  "adRequestsBlocked": true,
+  "results": [
+    {
+      "name": "chrome-desktop",
+      "status": "PASS",
+      "mobile": false,
+      "assertions": [
+        "HTTP 200",
+        "precedence",
+        "continuation",
+        "parentheses",
+        "sine degrees",
+        "division error and recovery",
+        "mortgage valid and zero interest",
+        "missing/invalid inputs",
+        "stale results clear on edits",
+        "BMI imperial and metric",
+        "unit switch reset",
+        "tips and splits",
+        "fractional people rejected",
+        "no overflow",
+        "zero JS errors"
+      ]
+    },
+    {
+      "name": "chrome-touch",
+      "status": "PASS",
+      "mobile": true,
+      "assertions": [
+        "HTTP 200",
+        "precedence",
+        "continuation",
+        "parentheses",
+        "sine degrees",
+        "division error and recovery",
+        "mortgage valid and zero interest",
+        "missing/invalid inputs",
+        "stale results clear on edits",
+        "BMI imperial and metric",
+        "unit switch reset",
+        "tips and splits",
+        "fractional people rejected",
+        "no overflow",
+        "zero JS errors"
+      ]
+    },
+    {
+      "name": "webkit",
+      "status": "SKIP",
+      "reason": "browserType.launch: Executable doesn't exist at /Users/macstudio3/Library/Caches/ms-playwright/webkit-2248/pw_run.sh"
+    },
+    {
+      "name": "firefox",
+      "status": "SKIP",
+      "reason": "browserType.launch: Executable doesn't exist at /Users/macstudio3/Library/Caches/ms-playwright/firefox-1509/firefox/Nightly.app/Contents/MacOS/firefox"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/verification/TK-11230/calculator-parent/chrome-desktop-arithmetic.png b/verification/TK-11230/calculator-parent/chrome-desktop-arithmetic.png
new file mode 100644
index 0000000..b0e18ee
Binary files /dev/null and b/verification/TK-11230/calculator-parent/chrome-desktop-arithmetic.png differ
diff --git a/verification/TK-11230/calculator-parent/chrome-desktop-tip.png b/verification/TK-11230/calculator-parent/chrome-desktop-tip.png
new file mode 100644
index 0000000..e1db0e6
Binary files /dev/null and b/verification/TK-11230/calculator-parent/chrome-desktop-tip.png differ
diff --git a/verification/TK-11230/calculator-parent/chrome-touch-arithmetic.png b/verification/TK-11230/calculator-parent/chrome-touch-arithmetic.png
new file mode 100644
index 0000000..d7598d7
Binary files /dev/null and b/verification/TK-11230/calculator-parent/chrome-touch-arithmetic.png differ
diff --git a/verification/TK-11230/calculator-parent/chrome-touch-tip.png b/verification/TK-11230/calculator-parent/chrome-touch-tip.png
new file mode 100644
index 0000000..e1821c5
Binary files /dev/null and b/verification/TK-11230/calculator-parent/chrome-touch-tip.png differ
diff --git a/verification/TK-11230/calculator-parent/video/49b875a65b651b4d1d2f867e8bc6650f.webm b/verification/TK-11230/calculator-parent/video/49b875a65b651b4d1d2f867e8bc6650f.webm
new file mode 100644
index 0000000..40d424e
Binary files /dev/null and b/verification/TK-11230/calculator-parent/video/49b875a65b651b4d1d2f867e8bc6650f.webm differ
diff --git a/verification/TK-11230/calculator-parent/video/6f5659067ffc82ee4ec98527a3762c8b.webm b/verification/TK-11230/calculator-parent/video/6f5659067ffc82ee4ec98527a3762c8b.webm
new file mode 100644
index 0000000..caf84c7
Binary files /dev/null and b/verification/TK-11230/calculator-parent/video/6f5659067ffc82ee4ec98527a3762c8b.webm differ
diff --git a/verification/TK-11230/calculator-webkit/browser-proof.json b/verification/TK-11230/calculator-webkit/browser-proof.json
new file mode 100644
index 0000000..6691ad0
--- /dev/null
+++ b/verification/TK-11230/calculator-webkit/browser-proof.json
@@ -0,0 +1,61 @@
+{
+  "timestamp": "2026-09-11T16:53:57.311Z",
+  "url": "http://127.0.0.1:18764/",
+  "adRequestsBlocked": true,
+  "results": [
+    {
+      "name": "chrome-desktop",
+      "status": "PASS",
+      "mobile": false,
+      "assertions": [
+        "HTTP 200",
+        "precedence",
+        "continuation",
+        "parentheses",
+        "sine degrees",
+        "division error and recovery",
+        "mortgage valid and zero interest",
+        "missing/invalid inputs",
+        "stale results clear on edits",
+        "BMI imperial and metric",
+        "unit switch reset",
+        "tips and splits",
+        "fractional people rejected",
+        "no overflow",
+        "zero JS errors"
+      ]
+    },
+    {
+      "name": "chrome-touch",
+      "status": "PASS",
+      "mobile": true,
+      "assertions": [
+        "HTTP 200",
+        "precedence",
+        "continuation",
+        "parentheses",
+        "sine degrees",
+        "division error and recovery",
+        "mortgage valid and zero interest",
+        "missing/invalid inputs",
+        "stale results clear on edits",
+        "BMI imperial and metric",
+        "unit switch reset",
+        "tips and splits",
+        "fractional people rejected",
+        "no overflow",
+        "zero JS errors"
+      ]
+    },
+    {
+      "name": "webkit",
+      "status": "SKIP",
+      "reason": "browserType.launch: Executable doesn't exist at /Users/macstudio3/Library/Caches/ms-playwright/webkit-2248/pw_run.sh"
+    },
+    {
+      "name": "firefox",
+      "status": "SKIP",
+      "reason": "browserType.launch: Executable doesn't exist at /Users/macstudio3/Library/Caches/ms-playwright/firefox-1509/firefox/Nightly.app/Contents/MacOS/firefox"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/verification/TK-11230/calculator-webkit/chrome-desktop-arithmetic.png b/verification/TK-11230/calculator-webkit/chrome-desktop-arithmetic.png
new file mode 100644
index 0000000..b0e18ee
Binary files /dev/null and b/verification/TK-11230/calculator-webkit/chrome-desktop-arithmetic.png differ
diff --git a/verification/TK-11230/calculator-webkit/chrome-desktop-tip.png b/verification/TK-11230/calculator-webkit/chrome-desktop-tip.png
new file mode 100644
index 0000000..e1db0e6
Binary files /dev/null and b/verification/TK-11230/calculator-webkit/chrome-desktop-tip.png differ
diff --git a/verification/TK-11230/calculator-webkit/chrome-touch-arithmetic.png b/verification/TK-11230/calculator-webkit/chrome-touch-arithmetic.png
new file mode 100644
index 0000000..d7598d7
Binary files /dev/null and b/verification/TK-11230/calculator-webkit/chrome-touch-arithmetic.png differ
diff --git a/verification/TK-11230/calculator-webkit/chrome-touch-tip.png b/verification/TK-11230/calculator-webkit/chrome-touch-tip.png
new file mode 100644
index 0000000..e1821c5
Binary files /dev/null and b/verification/TK-11230/calculator-webkit/chrome-touch-tip.png differ
diff --git a/verification/TK-11230/calculator-webkit/video/56bb235ec492dc0a7b1dc3022605ecd8.webm b/verification/TK-11230/calculator-webkit/video/56bb235ec492dc0a7b1dc3022605ecd8.webm
new file mode 100644
index 0000000..1f331bd
Binary files /dev/null and b/verification/TK-11230/calculator-webkit/video/56bb235ec492dc0a7b1dc3022605ecd8.webm differ
diff --git a/verification/TK-11230/calculator-webkit/video/ad7355e24816314c6681184c6ebeb5e1.webm b/verification/TK-11230/calculator-webkit/video/ad7355e24816314c6681184c6ebeb5e1.webm
new file mode 100644
index 0000000..5234b6d
Binary files /dev/null and b/verification/TK-11230/calculator-webkit/video/ad7355e24816314c6681184c6ebeb5e1.webm differ
diff --git a/verification/TK-11230/native-build8/e2e-proof.json b/verification/TK-11230/native-build8/e2e-proof.json
new file mode 100644
index 0000000..58efe4c
--- /dev/null
+++ b/verification/TK-11230/native-build8/e2e-proof.json
@@ -0,0 +1,69 @@
+{
+  "ticket": "TK-11230",
+  "timestamp": "2026-09-11T17:05:26.395395+00:00",
+  "intent": "Replace fixed67 outputs with real calculations in web and iOS app",
+  "authorization": "Steve: ungate and run; do for me",
+  "sourceCommit": "91a9312",
+  "testHarnessCommit": "90c4eaa",
+  "build": {
+    "CFBundleIdentifier": "com.boomercalc67.app",
+    "CFBundleShortVersionString": "1.0.1",
+    "CFBundleVersion": "8"
+  },
+  "archivePath": "/Users/macstudio3/Projects/boomer-calculator/artifacts/TK11230-BoomerCalc-8.xcarchive",
+  "embeddedFileCount": 39,
+  "embeddedBundleMismatch": [],
+  "checks": [
+    {
+      "name": "Current-source math tests via npm run test:math",
+      "verdict": "PASS",
+      "count": 7
+    },
+    {
+      "name": "Production Next build",
+      "verdict": "PASS"
+    },
+    {
+      "name": "Parent independent desktop/touch Chrome calculator journeys",
+      "verdict": "PASS",
+      "evidence": "../calculator-parent/browser-proof.json"
+    },
+    {
+      "name": "Live desktop/touch Chrome and mobile WebKit journeys",
+      "verdict": "PASS",
+      "evidence": "../calculator-live/browser-proof.json"
+    },
+    {
+      "name": "Local iOS archive",
+      "verdict": "PASS"
+    },
+    {
+      "name": "Native embedded files equal tested web bundle",
+      "verdict": "PASS",
+      "files": 39
+    },
+    {
+      "name": "App Store distribution export",
+      "verdict": "FAIL",
+      "reason": "No signing certificate iOS Distribution found"
+    },
+    {
+      "name": "Physical iPhone build8 journey and TestFlight upload",
+      "verdict": "SKIP",
+      "reason": "Distribution export blocked; no device-install proof claimed"
+    },
+    {
+      "name": "Firefox",
+      "verdict": "SKIP",
+      "reason": "runtime unavailable; Chrome and WebKit tested"
+    }
+  ],
+  "webDeployment": {
+    "id": "dpl_9v5fJKkW3dP4H6tBAwrCCGRWRuCx",
+    "url": "https://boomercalc.com",
+    "rollback": "vercel rollback https://67-ogvt2976f-stevemdrs-projects.vercel.app --yes"
+  },
+  "negativeChecks": "Division-by-zero, missing inputs, invalid down payments, zero interest, invalid BMI height, fractional people, stale-result clearing, no overflow/JS errors.",
+  "signing": "Only Apple Development identity available. No existing distribution .p12 in app credential locations or registered distribution-signing key names. No identity created/revoked.",
+  "verdict": "Web correction PASS; native archive PASS; App Store release BLOCKED by distribution signing and physical-device evidence."
+}
diff --git a/verification/TK-11230/native-build8/export-failure.txt b/verification/TK-11230/native-build8/export-failure.txt
new file mode 100644
index 0000000..5365b47
--- /dev/null
+++ b/verification/TK-11230/native-build8/export-failure.txt
@@ -0,0 +1,3 @@
+xcodebuild -exportArchive: exit70
+No signing certificate "iOS Distribution" found
+No IPA exported; no upload or submission performed.

← 90c4eaa Compile current calculator source before math tests  ·  back to Boomer Calculator  ·  Record signing export blocker after approval relay f7093c7 →