Commit b8471d5
chore(showcase): seed Field Zoo with all field types + guard budget hook (#2005)
The Field Zoo declared all 48 field types but shipped NO seed data, so no
field type was ever exercised with a real value — which is exactly why the
array-serialization and Field.time bugs (fixed in #2004) went unnoticed.
- Seed two field-zoo specimens ("Full" + "Minimal") covering every input-able
field type with real values: arrays (multiselect/checkboxes/tags/repeater/
vector), objects (composite/address/location/json/record), time (14:30 /
09:05:30), relational (lookup→Account, master_detail→Project by externalId),
and computed (formula=315, autonumber). `f_secret` is intentionally omitted —
the seed path has no CryptoProvider so a secret value is refused fail-closed.
This doubles as a runtime regression guard: a field type that can't persist
now fails the boot seed instead of shipping silently.
- Guard the showcase_warn_over_budget hook condition with has() — a partial
rollup update (task_count recompute) fires afterUpdate with a record lacking
spent/budget, and CEL throws "No such key" on a bare record.spent. has() is
the missing-key-safe macro; the noisy warning is gone.
Verified live: both specimens seed (37 populated f_* fields on Full); coverage
test 20 green; warn_over_budget "No such key" warnings = 0 after a task update.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent bfa3102 commit b8471d5
3 files changed
Lines changed: 53 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
100 | 101 | | |
101 | 102 | | |
102 | 103 | | |
103 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
67 | 71 | | |
68 | 72 | | |
69 | 73 | | |
| |||
0 commit comments