← WallaCONTENT HISTORY

Update to Walla

Snapshot Oct 8, 2026 · 06:11 UTC · version 1.0.1

WHAT CHANGED · RULE-BASED ANALYSIS

Package or technical metadata updated

Package contents changed in 5 files: .codex-plugin/plugin.json, skills/walla/SKILL.md, skills/walla/references/custom-fields.md, …. Open the file diff to inspect the edits.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Package file

Before

48c08383ec6d2f77e2789758e7f90a8286e0b72ce89304941a3fededad6db9cd

After

23a4a1b1e2f95ccabbbe1e10205a25627c38955f229eb2c9c27f332b27ded079

Package file

Before

2092

After

2512

Package file

Before

352d64abbff68566e2ed1f2581ec7853358ba571ceac1602593b0d788ae6d4ae

After

19e15bf0ea2232221af8d215839864f412ba879c4482407da14e42b14ca393a6

Package file

Before

3806

After

4325

Compare saved observations

Download comparison JSON

skills/walla/references/custom-fields.md

--- before
+++ after
@@ -1,6 +1,6 @@
 # Custom field workflows
 
-Custom fields are an Enterprise capability. Use the MCP's `custom-fields` reference as the authoritative model for data references, output schemas, and host interaction.
+Every Walla plan can use custom fields. Plans differ only in how many custom field types a team can own. Use the MCP's `custom-fields` reference as the authoritative model for data references, output schemas, and host interaction.
 
 ## Reuse an existing type
 
@@ -12,11 +12,12 @@
 
 Follow the state machine exactly:
 
-1. Call `start_custom_field_build` with the team, a clear name, and a concrete description of the field's behavior and saved value.
-2. Poll `get_custom_field_build` until the state is `awaiting_your_code`.
-3. Call `get_custom_field_scaffold`. Treat the returned scaffold and allowed file paths as authoritative; do not invent SDK APIs, imports, or unsupported files.
-4. Implement the smallest complete field, then call `submit_custom_field` with the required files.
-5. Poll `get_custom_field_build`. On `try_again`, retry the same poll. On `build_failed`, use the returned errors to revise and resubmit.
+1. Call `start_custom_field_build` with the team, a clear name, and a concrete description of the field's behavior and saved value. To change an existing type, pass its `customFieldTypeId` as `targetTypeId`; approval then adds a new version to that type.
+   - If the team already owns its plan's maximum number of types, starting or approving a build for a new type returns `payment_required`. Tell the user that an upgrade is necessary, and offer to revise an existing type. A revision does not count against the limit.
+2. Call `get_custom_field_scaffold` immediately. Do not wait for `get_custom_field_build` to show `awaiting_your_code`: only a ready scaffold response moves the build to that state. While the scaffold returns `{ notReady: true, retryAfterMs }`, wait that long and call it again.
+3. Treat the returned contract notes, SDK types, example, and file tree as authoritative. Do not invent SDK APIs, imports, or unsupported files.
+4. Implement the smallest complete field, then call `submit_custom_field`. The submission is a merge patch over the scaffold and must include `outputSchema.json`. A field that reads other fields' answers must also include `observeFields.json` with `{"mode":"configured"}`; without it, the field receives no form context.
+5. Poll `get_custom_field_build`. If `submit_custom_field` returns `try_again`, the build is busy; wait and repeat the same submit. On `build_failed`, use the returned errors to revise and resubmit.
 6. At `ready_to_review`, give the user the returned `previewUrl` and ask them to review the rendered field.
 7. Call `approve_custom_field_build` only after the user has approved the preview. Approval registers a reusable type and immutable version.
 8. Attach the returned `customFieldTypeId` to a form with `form_apply_edits`, then verify with `get_form`.
@@ -30,6 +31,6 @@
 
 ## Build lifecycle
 
-- A team has a limited number of builds in flight. If an abandoned build occupies a slot, offer `cancel_custom_field_build` only after the user confirms they no longer want it.
+- A team can have only a few builds in flight, and an unapproved build expires. If an abandoned build occupies a slot, offer `cancel_custom_field_build` only after the user confirms they no longer want it.
 - Cancellation is irreversible for the build and tears down its preview. It cannot cancel an approved version.
 - Do not start a replacement build merely to work around a transient state. Poll or resubmit within the existing build as the returned state directs.
Full technical diff · 10 changed fields

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"48c08383ec6d2f77e2789758e7f90a8286e0b72ce89304941a3fededad6db9cd"
AFTER
"23a4a1b1e2f95ccabbbe1e10205a25627c38955f229eb2c9c27f332b27ded079"

changed /files/.codex-plugin~1plugin.json/size

BEFORE
2092
AFTER
2512

changed /files/skills~1walla~1SKILL.md/sha256

BEFORE
"352d64abbff68566e2ed1f2581ec7853358ba571ceac1602593b0d788ae6d4ae"
AFTER
"19e15bf0ea2232221af8d215839864f412ba879c4482407da14e42b14ca393a6"

changed /files/skills~1walla~1SKILL.md/size

BEFORE
3806
AFTER
4325

changed /files/skills~1walla~1references~1custom-fields.md/sha256

BEFORE
"8f17abcdc27f720952a572dc7c760509e7ad17aa417d2de2342fae61dd6b6633"
AFTER
"2d576990a1122e6ba49427b2c4e440244f602cb896c542a316645a541fbdb5da"

changed /files/skills~1walla~1references~1custom-fields.md/size

BEFORE
2381
AFTER
3332

changed /files/skills~1walla~1references~1forms.md/sha256

BEFORE
"cb7e467d2aefa9bcb989216f424fa5273681451c2e0d85ccb30c0cdcebe097fc"
AFTER
"6f221b0599309a9b7e9f4a338203456786ad54cf683f8022211868d44276c935"

changed /files/skills~1walla~1references~1forms.md/size

BEFORE
3948
AFTER
4199

changed /files/skills~1walla~1references~1responses-and-automations.md/sha256

BEFORE
"7ade44e059dac90d4e611821c2aac2aefc132c9ed2d5ef1da82588815854b0d7"
AFTER
"77a2c939e09334f1234ed2947b63215e40069295a2168faa2b5270131f60c3a8"

changed /files/skills~1walla~1references~1responses-and-automations.md/size

BEFORE
2854
AFTER
3322
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "3ad51b28e1e6ff65d45fee128ae74fd26994cb0c3f08a682bc5c2b944f72b6fb",
      "size": 127
    },
    ".codex-plugin/plugin.json": {
      "sha256": "23a4a1b1e2f95ccabbbe1e10205a25627c38955f229eb2c9c27f332b27ded079",
      "size": 2512
    },
    "skills/walla/SKILL.md": {
      "sha256": "19e15bf0ea2232221af8d215839864f412ba879c4482407da14e42b14ca393a6",
      "size": 4325
    },
    "skills/walla/agents/openai.yaml": {
      "sha256": "e61ac60df824d272e51109148b8703ae934d73cac189bbf3242cce3a03362760",
      "size": 411
    },
    "skills/walla/references/custom-fields.md": {
      "sha256": "2d576990a1122e6ba49427b2c4e440244f602cb896c542a316645a541fbdb5da",
      "size": 3332
    },
    "skills/walla/references/forms.md": {
      "sha256": "6f221b0599309a9b7e9f4a338203456786ad54cf683f8022211868d44276c935",
      "size": 4199
    },
    "skills/walla/references/responses-and-automations.md": {
      "sha256": "77a2c939e09334f1234ed2947b63215e40069295a2168faa2b5270131f60c3a8",
      "size": 3322
    }
  }
}

SHA-256 of public snapshot: 9c61ee44d5e5a5cd5489363f80d097fc2f05b76230fbd9056a36ea4563bc0542