Repository navigation
Commit fdacffa
committed
fix(daemon): decode legacy device claims kindless instead of guessing a kind
r4295744998: released v1/v2 recorded a command-scoped claim and an open
session literally named `transient:<command>` as the same record, so the
label is not a kind proof, and stamping a guessed kind made the schema
version alone decide whether a colon-named session's claim covered its
commands. Legacy records now decode kindless, which is safe by
construction rather than by guess: every consumer of a claim's kind first
requires `isClaimOwnedByThisDaemon` (same stateDir, pid, and process start
time), a live process writes only v3 records whose kind is stored, and the
pid+start-time-reuse window settlement already classifies as
`owner-process-reused` and refuses to release. No migration guesses, no
recovery path beyond the principal-based stale release legacy records
already had, and no public-name reservation.
The record test now pins the kind assertions directly (ordinary legacy and
current claims decode `transientCommand` undefined; the v3 kind comes only
from its stored field; malformed kinds fail closed) and the
android-lifecycle provenance comment states what the no-cwd client calls
actually record: the daemon-side fallback workspace at the routed `default`
address, joined explicitly by the pushes whose checkout-child cwd exists
for relative payload resolution, not as a workspace-authority test
(r4295745008, r4295745014).1 parent 1c8f3e5 commit fdacffa
4 files changed
Lines changed: 72 additions & 34 deletions
File tree
- packages
- daemon-contracts/src
- daemon/src/resources/device/__tests__
- test/integration/provider-scenarios
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| 45 | + | |
45 | 46 | | |
46 | 47 | | |
47 | 48 | | |
48 | | - | |
49 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
50 | 57 | | |
51 | 58 | | |
52 | | - | |
| 59 | + | |
53 | 60 | | |
54 | | - | |
55 | | - | |
56 | | - | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
57 | 64 | | |
58 | | - | |
59 | | - | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
60 | 71 | | |
61 | 72 | | |
62 | 73 | | |
63 | 74 | | |
64 | 75 | | |
65 | 76 | | |
66 | | - | |
67 | 77 | | |
68 | 78 | | |
69 | 79 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
35 | | - | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
| |||
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
63 | 75 | | |
64 | 76 | | |
65 | 77 | | |
66 | | - | |
67 | | - | |
| 78 | + | |
| 79 | + | |
68 | 80 | | |
69 | 81 | | |
70 | 82 | | |
| |||
147 | 159 | | |
148 | 160 | | |
149 | 161 | | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | 162 | | |
167 | 163 | | |
168 | 164 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
211 | 242 | | |
212 | 243 | | |
213 | 244 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
433 | 433 | | |
434 | 434 | | |
435 | 435 | | |
436 | | - | |
437 | | - | |
438 | | - | |
439 | | - | |
440 | | - | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
441 | 442 | | |
442 | 443 | | |
443 | 444 | | |
| |||
0 commit comments