Skip to content

Commit ea06473

Browse files
committed
docs(firestore): confirm substring unsupported on iOS SDK 12.15
Runtime verification on the pinned iOS SDK shows pipeline execute failure; guard and reduced e2e remain correct. Update parity registry and SDK audit.
1 parent 45e6791 commit ea06473

3 files changed

Lines changed: 11 additions & 10 deletions

File tree

okf-bundle/packages/firestore/pipeline-coverage-work-queue.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ timestamp: 2026-06-25T12:00:00Z
88

99
# Pipeline coverage and parity — work queue
1010

11-
> **IN PROGRESS (2026-06-25):** **J0-1…J0-4**all gates closed. **J0-5** `round` `5b4717d0c`all gates closed. **Next pickup:** **J0-6** `substring` **`implementation`**. **J0b** queued after J0 complete.
11+
> **IN PROGRESS (2026-06-25):** **J0-1…J0-5**guard removals committed. **J0-6** `substring` `8b76d8bc4`**sdk-unsupported-confirmed** (guard retained). **Next pickup:** **J0-7** `timestampAdd` **`implementation`**. **J0b** queued after J0 complete.
1212
> **Goal/order:** platform parity first; then TS/native coverage toward intractable limits. Links: [parity](pipeline-platform-parity.md), [SDK audit](pipeline-sdk-support-audit.md), [coverage](../../testing/coverage-design.md), [e2e](../../testing/running-e2e.md), [architecture](pipelines.md).
1313
1414
---
@@ -76,7 +76,7 @@ Gate prerequisites before any `:test-cover` ([host rule](../../testing/iteration
7676

7777
## Current snapshot
7878

79-
**Label:** `after-j0-1-j0-2-j0-3-j0-4-j0-5`; **harness:** full test app (`tests/app.js` — all platform modules restored for push)
79+
**Label:** `after-j0-1-j0-2-j0-3-j0-4-j0-5-j0-6`; **harness:** full test app (`tests/app.js` — all platform modules restored for push)
8080

8181
**E2e counts (Phase H baseline):** macOS **141**, iOS **146**, Android **146***(full app load; re-verify before merge)*
8282

@@ -89,7 +89,7 @@ Gate prerequisites before any `:test-cover` ([host rule](../../testing/iteration
8989

9090
*Phase H baseline only; not J0 review gate.*
9191

92-
**Next item:** **J0-6** `substring``next_work_type`: **`implementation`**; `validation_tier`: **focused**; `platform`: ios. **J0b** blocked until J0-9 complete.
92+
**Next item:** **J0-7** `timestampAdd``next_work_type`: **`implementation`**; `validation_tier`: **focused**; `platform`: ios. **J0b** blocked until J0-9 complete.
9393

9494
**Arbiter gate (2026-06-25):**
9595

@@ -101,7 +101,8 @@ Gate prerequisites before any `:test-cover` ([host rule](../../testing/iteration
101101
| **J0-3** `trunc` | `138e45690` | closed | **closed** |||| Area review 2026-06-25: 100/100/100; trunc unified iOS path |
102102
| **J0-4** `conditional` | `cde7b812c` | closed | **closed** |||| Area review 100/100/100; iOS wire `conditional`; unified e2e |
103103
| **J0-5** `round` | `5b4717d0c` | closed | **closed** |||| Area review 100/100/100; round unified iOS path (TS-only) |
104-
| **J0-6** `substring` |||| **`implementation`** | focused | ios | **unblocked** (J0-5 committed) |
104+
| **J0-6** `substring` | `8b76d8bc4` | closed | **closed** |||| **sdk-unsupported-confirmed** — iOS 12.15 `invalid-argument`; guard retained |
105+
| **J0-7** `timestampAdd` |||| **`implementation`** | focused | ios | **unblocked** (J0-6 probe complete) |
105106

106107

107108

@@ -249,8 +250,8 @@ Per [SDK audit §6](pipeline-sdk-support-audit.md): one function/commit; remove
249250
| J0-3 | `trunc` | iOS CHANGELOG 12.11.0 | closed | **closed** ||
250251
| J0-4 | `conditional` | `ConditionalExpression` 12.11.0; iOS wire `conditional` | closed | **closed** ||
251252
| J0-5 | `round` | No CHANGELOG; Android + bridge ok | closed | **closed** ||
252-
| J0-6 | `substring` | No CHANGELOG; docs list function | || **`implementation`** |
253-
| J0-7 | `timestampAdd` | No CHANGELOG; likely SDK gap or receiver shape | | | |
253+
| J0-6 | `substring` | No CHANGELOG; docs list function | closed | **closed** | |
254+
| J0-7 | `timestampAdd` | No CHANGELOG; likely SDK gap or receiver shape | | | **`implementation`** |
254255
| J0-8 | `timestampSubtract` | Same | | | |
255256
| J0-9 | `arrayGet` | No CHANGELOG; likely needs iOS receiver parity if SDK ok | | | |
256257

@@ -286,7 +287,7 @@ Per [SDK audit §6](pipeline-sdk-support-audit.md): one function/commit; remove
286287

287288
**Gate for Phase K+:** J0 complete + **J0b** committed + J1–J6 bridge commits + parity **Resolved** updated.
288289

289-
**Current gates:** **J0-1** + **J0-2** + **J0-3** + **J0-4** + **J0-5** committed; all gates closed. **J0-6** next **`implementation`**. **J0b** queued (blocked on J0 complete).
290+
**Current gates:** **J0-1J0-6** probe iterations complete (**J0-6** guard retained). **J0-7** next **`implementation`**. **J0b** queued (blocked on J0 complete).
290291

291292
---
292293

okf-bundle/packages/firestore/pipeline-platform-parity.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ Durable per-function status. **Live probes:** [work queue](pipeline-coverage-wor
9898
| `conditional` ||| L1344 | **Added 12.11****sdk-supported-bridge-ok**; guard removed; wire name `conditional`; unified e2e |
9999
| `switchOn` ||| L1471 | **Added 12.12****sdk-supported-bridge-ok**; guard removed; unified e2e |
100100
| `trunc` ||| L1758 | **Added 12.11****sdk-supported-bridge-ok**; guard removed; unified e2e |
101-
| `substring` | Yes | Yes | L1891 | No CHANGELOG entry — **pending-probe** |
101+
| `substring` | Yes | Yes | L1770 | No CHANGELOG entry — **sdk-unsupported-confirmed**; guard + reduced e2e retained |
102102
| `stringRepeat` ||| L1985 | **Added 12.12****sdk-supported-bridge-ok**; guard removed; unified e2e |
103103
| `arrayGet` | Yes | Yes | L2265, L2648 | No CHANGELOG entry — **pending-probe** (+ possible RNFB receiver gap) |
104104
| `timestampAdd` / `timestampSubtract` | Yes | Yes | L2903 | No CHANGELOG entry — **pending-probe** |

okf-bundle/packages/firestore/pipeline-sdk-support-audit.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ Live probes/gates: [work queue](pipeline-coverage-work-queue.md#j0--ios-runtime-
193193
| `trunc` | No | Generic `trunc` | raw | **Added 12.11** | **sdk-supported-bridge-ok** | Guard removed; unified cross-platform e2e |
194194
| `conditional` | No | `conditional` wire | `Expression.conditional()` | **ConditionalExpression 12.11** | **sdk-supported-bridge-ok** | Guard removed; iOS wire `cond``conditional`; unified e2e |
195195
| `round` | No | Generic `round` | raw | Not listed | **sdk-supported-bridge-ok** | Guard removed; unified cross-platform e2e |
196-
| `substring` | Yes | Generic `substring` | raw | Not listed | **pending-probe** | Runtime probe pending |
196+
| `substring` | Yes | Generic `substring` | raw | Not listed | **sdk-unsupported-confirmed** | Runtime verification failed on pinned iOS SDK; guard retained |
197197
| `timestampAdd` | Yes | Generic `timestamp_add` only | receiver chain | Not listed | **pending-probe**; suspect real SDK gap | Runtime probe pending; if fail → document SDK gap |
198198
| `timestampSubtract` | Yes | Generic `timestamp_sub` | receiver chain | Not listed | Same as timestampAdd | Runtime probe pending |
199199
| `arrayGet` | Yes | Generic `array_get` only | receiver chain | Not listed | **rnfb-bridge-gap** + **pending-probe** | Runtime probe pending; if SDK ok → iOS receiver parity |
@@ -202,7 +202,7 @@ Live probes/gates: [work queue](pipeline-coverage-work-queue.md#j0--ios-runtime-
202202

203203
| Registry row | Reconciliation finding |
204204
|--------------|------------------------|
205-
| **P-003** (umbrella iOS unsupported) | **Partially stale**`stringRepeat`, `switchOn`, `trunc`, `conditional`, and `round` confirmed supported (guards removed); remaining guarded names need runtime verification |
205+
| **P-003** (umbrella iOS unsupported) | **Partially stale**`stringRepeat`, `switchOn`, `trunc`, `conditional`, and `round` confirmed supported (guards removed); `substring` **sdk-unsupported-confirmed** (guard correct); remaining guarded names need runtime verification |
206206
| **P-003a** (per-function e2e) | Ten iOS reduced/throw tests may shrink after runtime guard probes |
207207
| **P-013** (iOS aggregate skip L3740) | Unrelated to guard list — separate SDK/bridge investigation |
208208
| **P-001, P-005, P-010–P-012** (bridge gaps) | Unchanged — operand coercion is independent of function guard list |

0 commit comments

Comments
 (0)