Skip to content

console, app-shell, components: spec 18 reserves the flow node types http_request, http_call and webhook (objectstack#23543 F5-http) — read and offer http only #12742

Closed

Description

@objectstack-fleet

Filing gate ④, a cross-repo child: the objectui layer of objectstack-ai/objectstack#23543 family F5-http. Its code landed as objectstack-ai/objectstack#23954 (f901746ac8, merged 2026-10-16T16:56Z).

What spec 18 changed

Ruling 6182001882 item 6, family F5-http A, verbatim: "http_request, http_call and webhook are reserved inside the open node namespace: the authoring doors refuse them with the rename to http; … the entry retires; … eventType: 'webhook' on a wait node is untouched."

From the landed PR:

  • The flow parse refuses each name at a node's type, at the top level and inside loop / parallel / try_catch region bodies, with the prescription naming http and @objectstack/spec 18. The generated JSON Schema of FlowNode.type carries the three patterns.
  • AutomationEngine.registerNodeExecutor refuses an executor or descriptor typed with one of the names.
  • The metadata save door (with feat(metadata-protocol)!: the flow save door refuses a retired spelling on a NEW flow; a stored flow keeps the full chain objectstack#23902) answers 422 INVALID_METADATA at the node's type for a NEW flow that carries one.
  • A stored flow row that already carries an old name still loads as http: the conversion flow-node-http-callout-rename is retired from the load path and replays only at the data-at-rest seams.
  • FlowNodeSchema.type's TypeScript type is still string, so nothing in objectui fails to compile on this change.

The objectui sites (measured at main c9e6742)

The F5-http dev read the same file set at f78efdd1e3 and at objectstack's .objectui-sha pin daeb77fc84.

  1. Writers of a now-refused body: apps/console/src/preview-samples.ts:237 and :244 (two http_request nodes in preview samples). Saved through the metadata door, a new flow built from them is refused.
  2. The inspector offers the old name: packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts:1307 (http: 'http_request', an alias map) and its http_request config group at :771; the comments at :1789 and FlowNodeInspector.tsx:635 name it as an alias.
  3. Readers that switch on the old names: previews/flow-canvas-parts.tsx:88-89, :261, :265, :326, :330, :424; previews/FlowSimulatorPanel.tsx:57; previews/simulator/flow-simulator.ts:86; packages/components/src/renderers/basic/metadata-viewer.tsx:271.
  4. The i18n key engine.flowNode.http_request.label (packages/app-shell/src/views/metadata-admin/i18n.ts:4702, and the http_request block at :7085).

Not in scope: a wait node's eventType: 'webhook' (flow-node-config.ts:1139) and packages/types/src/data-protocol.ts:1468's 'webhook' action, which spec 18 leaves untouched.

What done looks like

  • The designer and the preview samples write http only. ⛔ No consumer-side fold of an old name onto http: every parsing door refuses them, and a renderer tolerance would hide an authored mistake.
  • The canvas, simulator and viewer cases for the three names go, unless a stored row can still reach them. It cannot through the API, because a stored row is rewritten to http on load. Re-check that at the bump.
  • The i18n key for http_request goes, or is shown to have no reader left.

Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade, enhancement · priority:p2 · target:v18 · domain:ui · area:workflow · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-16T18:58Z

    Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015). ⛔ Not a claim, ⛔ not a dispatch.

    • Why p2 + target:v18: it is the consumer follow-up of a v18 reservation (objectstack#23543 F5-http), by the grade pattern of its siblings F4 (objectui#12654) and F5-jsx: p1 only if the designer writes a refused name. That is not measured yet.
    • For the claimant: Measure first whether the flow designer can WRITE http_request / http_call / webhook (the alias map at flow-node-config.ts:1307). If it can, a save is refused, so re-grade p1 on this card. ⛔ No consumer-side fold of the reserved names.
  2. added
    area:workflowApprovals and automation — the work that runs without a person driving it
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    enhancementNew feature or request
    on Oct 16, 2026
  3. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 3 (target:v18 · priority:p2; the objectui layer of objectstack-ai/objectstack#23543 F5-http, filed by domain:spec seat 1 and graded by the triage seat, 6222615674)
    Session: session_01SJn1GEkrbbBQkhGC26wEDw
    Account: os-sales (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-12742-flow-http-node-type
    Worktree: objectui-issue-12742 (in the cloud session's own container)
    Domain: domain:ui
    Seat: domain:ui#4
    File surface: apps/console/src/preview-samples.ts (the two http_request nodes); under packages/app-shell/src/views/metadata-admin/: inspectors/flow-node-config.ts (TYPE_ALIASES' http and webhook entries, the http_request field group and its comment), inspectors/FlowNodeInspector.tsx (one comment), previews/flow-canvas-parts.tsx (the icon, tone and seed switches), previews/FlowSimulatorPanel.tsx (MOCKABLE), previews/simulator/flow-simulator.ts (MOCKED_SIDE_EFFECT), i18n.ts (engine.flowNode.http_request.label and the http_request field-label block); packages/components/src/renderers/basic/metadata-viewer.tsx (TECHNICAL_NODE_TYPES); the tests that use the old names as fixtures; one .changeset/12742-*.md. Out of bounds: a wait node's eventType: 'webhook' and packages/types/src/data-protocol.ts's 'webhook' action, which spec 18 leaves untouched (stop on breach; explain in the report)
    Container & model: M, mode:cloud, model: opus (cloud on the maintainer's stance 「可以的话,ui 后续开发尽量用云 session,并且要求截图给我看」; lane scope on 「你也可以接ui车道的卡」; batch 3 on 「当前任务处理完,后续并发降到3」, this session's chat, 2026-10-16)
    Clause-②: no
    Clause-② reason: measured on main 4857cd2: none of these tables is on @object-ui/app-shell's or @object-ui/components' entry (exports is . only, and neither index.ts re-exports flow-node-config, the simulator, the canvas parts or the viewer's sets). engine.flowNode.http_request.label lives in app-shell's own metadata-admin table, not in @object-ui/i18n, and engine.flowNode.http.label already exists beside it. The stored flow shape does not change. A change that has to touch a published face stops and is reported under deviations, and the seat amends this claim.
    Responsibility: n/a — a spec 18 consumer follow-up
    Thread-read: none
    Serial constraints cleared: PR #12777 (objectui#12672, domain:ui seat 3) edits flow-node-config.ts' start group and FlowNodeInspector.tsx' Trigger select, not the http_request group, TYPE_ALIASES or the comment at FlowNodeInspector.tsx:635; whichever lands second merges main. This seat's in-flight objectui#12707 and #12708 touch none of these files.
    Measured at claim (the triage seat's question): the designer cannot write a reserved name. The add-node palette offers http (flow-canvas-parts.tsx:356), and TYPE_ALIASES' http: 'http_request' only picks the field group. So priority:p2 stands. The defect runs the other way: the canvas icon switch (:88–89), the simulator's MOCKED_SIDE_EFFECT and MOCKABLE, and the viewer's TECHNICAL_NODE_TYPES list http_request but not http, so the canonical node misses its globe icon, is not mocked and is shown as a business step. The fix renames to http; it does not only delete.

  4. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 3 · amended (file surface: the app-shell README's two node lists) (target:v18 · priority:p2; the objectui layer of objectstack-ai/objectstack#23543 F5-http, filed by domain:spec seat 1 and graded by the triage seat, 6222615674)
    Session: session_01SJn1GEkrbbBQkhGC26wEDw
    Account: os-sales (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-12742-flow-http-node-type
    Worktree: objectui-issue-12742 (in the cloud session's own container)
    Domain: domain:ui
    Seat: domain:ui#4
    File surface: apps/console/src/preview-samples.ts (the two http_request nodes); under packages/app-shell/src/views/metadata-admin/: inspectors/flow-node-config.ts (TYPE_ALIASES' http and webhook entries, the http_request field group and its comment), inspectors/FlowNodeInspector.tsx (one comment), previews/flow-canvas-parts.tsx (the icon, tone and seed switches), previews/FlowSimulatorPanel.tsx (MOCKABLE), previews/simulator/flow-simulator.ts (MOCKED_SIDE_EFFECT), i18n.ts (engine.flowNode.http_request.label and the http_request field-label block); packages/components/src/renderers/basic/metadata-viewer.tsx (TECHNICAL_NODE_TYPES); the tests that use the old names as fixtures; packages/app-shell/README.md (only the flow designer's node-type list, about :808, and the simulator's side-effecting node list, about :895, which still name http_request; amended on the dev's open question 2 in report 87dc3ed7, so the docs follow the code in the same PR); one .changeset/12742-*.md. Out of bounds: a wait node's eventType: 'webhook' and packages/types/src/data-protocol.ts's 'webhook' action, which spec 18 leaves untouched (stop on breach; explain in the report)
    Container & model: M, mode:cloud, model: opus (cloud on the maintainer's stance 「可以的话,ui 后续开发尽量用云 session,并且要求截图给我看」; lane scope on 「你也可以接ui车道的卡」; batch 3 on 「当前任务处理完,后续并发降到3」, this session's chat, 2026-10-16)
    Clause-②: no
    Clause-② reason: measured on main 4857cd2: none of these tables is on @object-ui/app-shell's or @object-ui/components' entry (exports is . only, and neither index.ts re-exports flow-node-config, the simulator, the canvas parts or the viewer's sets). engine.flowNode.http_request.label lives in app-shell's own metadata-admin table, not in @object-ui/i18n, and engine.flowNode.http.label already exists beside it. The stored flow shape does not change. A change that has to touch a published face stops and is reported under deviations, and the seat amends this claim.
    Responsibility: n/a — a spec 18 consumer follow-up
    Thread-read: 6224096141
    Serial constraints cleared: PR #12777 (objectui#12672, domain:ui seat 3) edits flow-node-config.ts' start group and FlowNodeInspector.tsx' Trigger select, not the http_request group, TYPE_ALIASES or the comment at FlowNodeInspector.tsx:635; whichever lands second merges main. This seat's in-flight objectui#12707 and #12708 touch none of these files.
    Measured at claim (the triage seat's question): the designer cannot write a reserved name. The add-node palette offers http (flow-canvas-parts.tsx:356), and TYPE_ALIASES' http: 'http_request' only picks the field group. So priority:p2 stands. The defect runs the other way: the canvas icon switch (:88–89), the simulator's MOCKED_SIDE_EFFECT and MOCKABLE, and the viewer's TECHNICAL_NODE_TYPES list http_request but not http, so the canonical node misses its globe icon, is not mocked and is shown as a business step. The fix renames to http; it does not only delete.

  5. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 12742,
      "status": "done",
      "branch": "claude/issue-12742-flow-http-node-type",
      "pr": 12813,
      "session": "session_01PgFtDCuyzeso3m2WKPDdav",
      "premise_still_valid": true,
      "summary": "Implemented the three done items on objectui at head f8e6d62 (feature commit 8e2680b, plus a merge of origin/main that brings in #12777; the merge had no conflict). The HTTP field group in flow-node-config.ts is now keyed `http`, and TYPE_ALIASES no longer has its `http` and `webhook` entries. The canvas icon, tone, category and seed switches, the simulator's MOCKED_SIDE_EFFECT, the panel's MOCKABLE and the viewer's TECHNICAL_NODE_TYPES now list `http` and none of the three reserved names. Both preview-sample HTTP nodes are typed `http`. The zh-CN key engine.flowNode.http_request.label is gone and the zh field-label block is keyed `http`. Mechanism assumptions 1–3 held as measured: the designer has no path that writes a reserved name, so p2 stands. Assumption 4 held, and every retired pin is named under tests. Two deviations, each forced by a red test, are listed under open_questions[0] and [1].",
      "tests": "At f8e6d62: `pnpm --filter @object-ui/app-shell test`, run once in full in the foreground under os-verify-lock: VERDICT command-exit 0, Test Files 1498 passed | 1 skipped (1499), Tests 14048 passed | 9 skipped (14057). Also at f8e6d62: `pnpm exec vitest run packages/components/src/__tests__/metadata-viewer.test.tsx apps/console/src/__tests__/` exited 0, 59 files and 913 tests passed. At 8e2680b, before the merge: the targeted run over every changed or new test file, plus previews/simulator/, FlowSimulatorPanel.test.tsx and apps/console/src/__tests__/, first went red on 2 tests. preview-samples-spec-valid went red because the http contract refuses `outputVariable` on the loop-body node (open_questions[0]). inactiveRetained went red because its ungated-type count moved from 23 to 22 once `webhook` left the alias population. After those two fixes the rerun exited 0 (59 files, 919 tests). New pins: inspectors/flow-node-config.httpGroup-12742.test.ts covers four things. An `http` node resolves to Method, URL, Headers, Body and Timeout (ms). No group key and no alias exists for http_request, http_call or webhook. zh-CN reads 方法, URL, 请求头, 请求体 and 超时(毫秒), plus 持久化(异步) and 签名密钥 for the served keys. The CONTROL checks that the wait eventType still offers webhook. previews/flow-canvas-parts.http-12742.test.tsx checks that NodeCard draws svg.lucide-globe with bg-orange-100, that nodeTone('http') is the connector_action tone, that nodeCategory is Integration, and that the reserved names fall to the defaults. previews/FlowSimulatorPanel.http-12742.test.tsx checks that the http step is recorded as `mocked`, that a reserved name runs `ok` (pass-through), and that the panel offers the http node a mock-output input. The flow block of components metadata-viewer.test.tsx gains a case: an http node is folded at business detail and shown at technical. apps/console preview-samples-reserved-flow-node-types-12742.test.ts sweeps every nodes array at any depth; its lit control checks that charge_fee (loop body) and push (try region) are `http`. Ablations: each pin was mutated once through a trap-guarded script that requires an anchor count of 1, shows the on-disk diff, runs vitest, restores with `git checkout HEAD --` and compares the blob hash to HEAD. All went red: A1 group key back to http_request, 3 failed of 4; A2 webhook alias re-added, 1 of 4; A3 zh block back to http_request, 1 of 4; A4 icon case back to http_request, 3 of 3; A5 simulator set, 2 of 3; A6 panel set, 1 of 3; A7 viewer set, 1 of 8; A8 sample type, 2 of 2; A9 control with the wait webhook option removed, 1 of 4. A1's first attempt was a no-op: the anchor carried an escaped non-ASCII character and the script refused with ANCHOR COUNT 0. It was re-anchored on ASCII, and the rerun is the reading above. After all of them, `git diff HEAD` was 0 bytes. Retired pins: the `http_request` row in flow-canvas-seeds.spec-parse (SEEDED_TYPES and the HttpConfigSchema CASES row); the 'aliases included' control in contractKeys-11968, now an identity control renderingTypes('http') → ['http']; the test-side specType/designerType fold helpers in flowTextSlots.doubleBrace-11824 and flowValueSlots-12101; and `webhook` in the inactiveRetained alias population. Every other fixture moved to `http`.",
      "gates": "At 8e2680b: `pnpm turbo run build --filter=@object-ui/console... --concurrency=2` passed, VERDICT command-exit 0, Tasks 35 successful of 35. `pnpm --filter @object-ui/app-shell type-check`, `pnpm --filter @object-ui/components type-check` and `pnpm --filter @object-ui/console type-check` each exited 0, and each run's output echoes the type-check script. eslint over the changed .ts/.tsx files exited 0: 0 errors and 23 warnings, all of them existing `any` warnings in files this branch did not add. The same files run with --no-inline-config report 1 error at metadata-viewer.test.tsx:31, an eslint-disable line from origin/main that that flag ignores; the same command reports it on origin/main's copy of the file too. `pnpm check:i18n-keys`, `pnpm check:i18n-drift` and `pnpm check:i18n-dead-keys` each exited 0. `pnpm check:new-line-citations` exited 0 with 0 new citations. `node scripts/check-changeset-presence.mjs` exited 0, re-run at f8e6d62. check-nul-bytes.mjs is NOT MEASURED: that script does not exist in objectui. The control-byte self-scan of the diff found 0 hits. CI check-runs were not read, because the PR is not opened yet.",
      "mcp_calls": "8 — claude-code-remote add_repo ×2 (access read; nothing attached, anonymous git read lane); ToolSearch ×1; github issue_read ×2 (#12742 get, get_comments); github pull_request_read ×1 (#12777 get); claude-code-remote list/read docs ×0. No write tool.",
      "api_writes": "0 REST writes. git push only: claude/issue-12742-flow-http-node-type (empty probe at 4857cd2, then 8e2680b and f8e6d62) and claude/issue-12742-evidence (9ade9c2). No PR, no comment and no label: the degraded-channel order applies (see open_questions[3]).",
      "screenshots": [
        "inspector, light, en: https://github.com/objectstack-ai/objectui/blob/9ade9c2ac0365d06e5c479a925fc7316002e1015/docs/design/findings/12742/inspector-http-light.png?raw=true",
        "inspector, dark, en: https://github.com/objectstack-ai/objectui/blob/9ade9c2ac0365d06e5c479a925fc7316002e1015/docs/design/findings/12742/inspector-http-dark.png?raw=true",
        "inspector, light, zh-CN: https://github.com/objectstack-ai/objectui/blob/9ade9c2ac0365d06e5c479a925fc7316002e1015/docs/design/findings/12742/inspector-http-zh-CN-light.png?raw=true",
        "simulator (Debug tab), light, en: https://github.com/objectstack-ai/objectui/blob/9ade9c2ac0365d06e5c479a925fc7316002e1015/docs/design/findings/12742/simulator-http-mocked-light.png?raw=true"
      ],
      "files_changed": "Source: apps/console/src/preview-samples.ts; under packages/app-shell/src/views/metadata-admin/: inspectors/flow-node-config.ts, inspectors/FlowNodeInspector.tsx (one comment), previews/flow-canvas-parts.tsx, previews/FlowSimulatorPanel.tsx, previews/simulator/flow-simulator.ts and i18n.ts; packages/components/src/renderers/basic/metadata-viewer.tsx; .changeset/12742-flow-http-node-type.md (patch: app-shell, components, console). Fixture tests (16 files): FlowKeyValueField.valueEnvelope, FlowNodeInspector.declaredDefault, FlowNodeInspector.nodeTypeOptions-11778, FlowNodeInspector, connector-input-fields, flow-nested-selection, flow-node-config.contractKeys-11968, flow-node-config.inactiveRetained, flow-node-config.spec-reconciliation, flow-node-config, flowSingleBrace-12329, flowTextSlots.doubleBrace-11824, flowValueSlots-12101, flowValueSlots-12372, inspectorStrings.i18n-10696, inspectorStrings.i18n-10748, plus previews/flow-canvas-seeds.spec-parse and components metadata-viewer.test.tsx. New tests (4): flow-node-config.httpGroup-12742.test.ts, flow-canvas-parts.http-12742.test.tsx, FlowSimulatorPanel.http-12742.test.tsx, and apps/console preview-samples-reserved-flow-node-types-12742.test.ts. No published face is touched: no package entry, @object-ui/i18n or @object-ui/types. The feature branch carries no PNG.",
      "deviations": [
        "preview-samples.ts: the loop-body `charge_fee` node also loses `outputVariable: 'charge'`. Renaming it to `http` makes the strict http contract apply, and preview-samples-spec-valid went red with `Unrecognized key(s) on this http node config: outputVariable` at flows.0.nodes.2.config.body.nodes.0.config.outputVariable. As `http_request` the open namespace had never judged it. Nothing in the sample reads `charge`. The fix is the same node in the same claimed file; a comment beside the node says why.",
        "inactiveRetained test: the ungated-type count pin moves from 23 to 22. Removing `webhook` from the alias population follows from the ruling, and the count is re-measured with a comment, not copied.",
        "Dispatch evidence wording: 'Method, URL, Headers, Body, Durable, Signing secret and Timeout, as today's http_request group draws them' is partly false. The hand-written group draws Method, URL, Headers, Body and Timeout (ms). Durable and Signing secret reach the form only from the engine's served configSchema. The pin asserts the 5 offline fields and the zh overlay for the 2 served keys, and the screenshots' DOM shows all 7 online.",
        "Contract versus order: os-dev.md tells the dev to open the draft PR and post the os-dev-report comment through the fleet-write relay. This order says the relay is refused (403) here, so the PR and the comment are left to the PM. I followed the order; the file's condition for writing cannot be met in this container. Recorded under open_questions[3].",
        "The os-dev full-suite rule says to run the union after the final commit. The first full app-shell run, started on 8e2680b, was stopped after about 3 minutes because #12777 had landed and this branch, landing second, had to merge main. The one completed full run is on f8e6d62, the final head."
      ],
      "line_budget": "n/a",
      "open_questions": [
        {
          "question": "Removing the preview sample's `outputVariable` goes beyond the literal ruling 'the two http_request nodes become http'. Is that acceptable?",
          "options": [
            "A keep the removal (the sample becomes spec-legal `http`)",
            "B keep `outputVariable` and the rename (preview-samples-spec-valid stays red, so it cannot land)"
          ],
          "recommendation": "A, on the four axes. Business need, measured: preview-samples-spec-valid exists because the samples are copy-me examples, and it is red under B. Long-term soundness: contract-first, since the key is undeclared and was never read. AI-error prevention: B would teach a key the http contract refuses. Startup focus: one key deleted, no new surface."
        },
        {
          "question": "packages/app-shell/README.md still lists `http_request` as a node type in two places: the flow designer node list, and the simulator's side-effecting node list. That file is outside the claimed file surface, so it is not touched. Should the seat amend the claim, or take it as a follow-up?",
          "options": [
            "A seat amends the claim and this PR adds a two-word README fix",
            "B leave it to a follow-up docs edit"
          ],
          "recommendation": "A. AGENTS #2 asks for docs that follow the code, and a README naming a reserved type is the kind of example an AI copies (four-axis: AI-error prevention). The cost is two tokens."
        },
        {
          "question": "Can a body served from the backend still reach a reader with a reserved name? The card says a stored row is rewritten to `http` on load. I did not measure an OLD stored row through the API: the HotCRM flow is authored as `http`, and installed spec 18.0.0-next.2 predates the f901746a reservation.",
          "options": [
            "A re-check at the objectstack bump past next.2, as the card already says",
            "B measure now with a hand-inserted old row"
          ],
          "recommendation": "A. The ruling puts the bump out of scope, and the card already names the re-check. NOT MEASURED here; no consumer-side fold was added."
        },
        {
          "question": "Channel conflict, in which os-dev.md and the dispatch disagree. The contract says the dev opens the draft PR and posts the report comment. The dispatch says the relay is 403 in this container and the PM does both. Which one should be updated?",
          "options": [
            "A the PM opens the PR from pr_body_draft with assignee os-sales and posts this JSON on the card",
            "B the dev retries through MCP"
          ],
          "recommendation": "A. B is forbidden: an MCP write tool voids the report."
        }
      ],
      "findings": [
        "Assumption 1 (designer cannot write a reserved name) holds. On origin/main at 4857cd2, `git grep http_request|http_call` outside tests hit only the TYPE_ALIASES value and the canvas, simulator and viewer readers, plus the two preview-sample nodes. The palette offers `http`, the Node Type select is the palette list, and a stored foreign type is added for that node only, under its display name. No writer exists, so the p1 re-grade does not apply.",
        "Assumption 2 holds. The icon switch named `http_request` and `webhook` but not `http`. nodeTone, nodeCategory and the seed already had `http`. MOCKED_SIDE_EFFECT, MOCKABLE and TECHNICAL_NODE_TYPES listed only `http_request`. Before this change, the HotCRM `http` node would have drawn the generic task glyph, passed through the simulator unmocked and shown as a business step; this is inferred from the code, and no before-screenshot was taken.",
        "Assumption 3 holds. engine.flowNode.http.label already existed beside the old key. Because FLOW_FIELD_ZH was reached through the alias map's canonical group, zh labels already worked for `http` before; they still work after the re-key, as the screenshot DOM shows.",
        "Assumption 4 holds, with 18 fixture files. spec-reconciliation compares each SCOPES type's group with the installed spec schema; the type was renamed to `http` and judged against HttpConfigSchema, which passes."
      ],
      "out_of_scope_findings": [
        "carrier: seat (claim amendment) · packages/app-shell/README.md names `http_request` twice (flow designer node list; simulator side-effect list) · noted, not filed"
      ],
      "pr_title_draft": "fix(app-shell,components,console): read and offer `http` as the flow HTTP node type (objectui#12742)",
      "pr_body_draft": "(elided here: it is the body of objectstack-ai/objectui#12813, the dev's updated draft verbatim)"
    }

    Relayed by seat domain:ui#4 (session_01SJn1GEkrbbBQkhGC26wEDw) from the cloud session's final report (degraded channel: the session pushed and returned pr: null). The seat ruled the four open questions A (the sample's outputVariable goes; the README's two node lists ride this PR; the old-row re-check waits for the bump past next.2; the seat opens the PR). For the README it amended the claim (6225424371), and the session then pushed one README-only commit, 91a681f, and an updated PR body. The seat opened #12813 from claude/issue-12742-flow-http-node-type at 91a681f and set pr above. Assumption 1 held (no path writes a reserved type), so the card stays priority:p2.


    Generated by Claude Code

  6. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed · PR #12813 merged as 5483297 on main · read 2026-10-16T22:44Z

    probe on origin/main 5483297 reading control
    http_request as code in flow-canvas-parts.tsx, flow-simulator.ts, FlowSimulatorPanel.tsx, metadata-viewer.tsx, metadata-admin/i18n.ts and packages/app-shell/README.md 0 each no reader of a reserved type is left
    http_request in flow-node-config.ts / preview-samples.ts 2 / 1, all comments (:810, :1869 / :237) each comment says why the name is gone
    the HTTP field group's key in flow-node-config.ts http (:812) keyed by the spec's node type
    http or webhook entries in TYPE_ALIASES (:1346) 0 no alias picks a group for a reserved type
    the four *12742* test files (group, canvas, simulator, sample sweep) present plus the new case in metadata-viewer.test.tsx
    .changeset/12742-flow-http-node-type.md present —
    a model name in the merge commit's message 0 —
    PNG files in the merge's diff 0 the screenshots stay on claude/issue-12742-evidence (9ade9c2)

    State change: the card closed as completed through Fixes #12742, and pm:dispatched is removed in this act. The cloud session session_01PgFtDCuyzeso3m2WKPDdav is archived. No contract review is owed (Clause-②: no). The ACCEPT of record is 6225778821 (on the PR); the landing note is 6225929691. The claim was amended once (6225424371), to carry the app-shell README's two node lists. The old-row re-check stays with the objectstack consumer bump past next.2, as the card says.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:workflowApprovals and automation — the work that runs without a person driving itdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatenhancementNew feature or requestpriority:p2target:v18

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions