Skip to content

Commit b2c8fca

Browse files
committed
table groups default to the deployed version and refuse a dispatch without one; column rename reports unmigrated Table-block filters; lint checks table fields against the live schema; runCount counts every settled run; runs cancel is honest about no-ops; dry-run apply answers with previewBlockIds; conditionResult is the chosen test's boolean with selectedTitle; workflows run --select-output keys blockOutputs by the selector and rejects unknown heads; knowledge search exposes rankScore and rank; the multi-trigger error names workflows state get; the Knowledge block declares cost, tokens, model; media writes refuse to fork a moved folder; grep --in knowledge points at knowledge search
1 parent a830552 commit b2c8fca

78 files changed

Lines changed: 2799 additions & 164 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/docs/openapi-v2-knowledge.json

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5937,9 +5937,21 @@
59375937
},
59385938
"similarity": {
59395939
"type": "number",
5940-
"description": "Similarity score for vector search; tag-only matches use 1.",
5940+
"description": "Cosine similarity between the query embedding and the chunk (1 - cosine distance), reported the same way in `vector` and `hybrid` mode; tag-only matches use 1. In `hybrid` mode results are not ordered by this value — see `rankScore`.",
59415941
"examples": [0.8423]
59425942
},
5943+
"rankScore": {
5944+
"type": "number",
5945+
"description": "The score results are ordered by, descending. In `vector` mode it equals `similarity`; in `hybrid` mode it is the reciprocal-rank-fusion score (a sum of 1/(60 + rank) over the lexical and vector legs, so a chunk both legs ranked first scores 2/61); when a reranker ordered the results it is `rerankerScore`.",
5946+
"examples": [0.0328]
5947+
},
5948+
"rank": {
5949+
"type": "integer",
5950+
"exclusiveMinimum": 0,
5951+
"maximum": 9007199254740991,
5952+
"description": "1-based position in the returned order.",
5953+
"examples": [1]
5954+
},
59435955
"rerankerScore": {
59445956
"description": "Relevance score assigned by the reranker, present only on results a reranker ordered. Results are ordered by this score when it is present, which is why it can disagree with `similarity`.",
59455957
"examples": [0.9312],
@@ -5954,7 +5966,9 @@
59545966
"content",
59555967
"chunkIndex",
59565968
"metadata",
5957-
"similarity"
5969+
"similarity",
5970+
"rankScore",
5971+
"rank"
59585972
],
59595973
"additionalProperties": false,
59605974
"title": "Knowledge search result",

apps/docs/openapi-v2-tables.json

Lines changed: 182 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,7 @@
577577
"patch": {
578578
"operationId": "updateTableColumn",
579579
"summary": "Update Column",
580-
"description": "Update a column by name and return the complete resulting table schema.",
580+
"description": "Update a column by name and return the complete resulting table schema.\n\nA rename follows the column everywhere the table keys by column id — rows, views, workflow-group references. Workflow Table blocks are the exception: their `filter`, `order`, and `data` are authored JSON that names columns by name, and this endpoint never rewrites workflow state. Blocks bound to this table that still name the old column come back in `unmigrated`; edit them (`POST /api/v2/workflows/{workflowId}/operations`) or their next run fails on the old name.",
581581
"tags": ["Tables"],
582582
"parameters": [
583583
{
@@ -605,7 +605,7 @@
605605
},
606606
"responses": {
607607
"200": {
608-
"description": "The updated table columns.",
608+
"description": "The updated table columns, plus any unmigrated workflow Table blocks.",
609609
"headers": {
610610
"X-RateLimit-Limit": {
611611
"$ref": "#/components/headers/X-RateLimit-Limit"
@@ -620,7 +620,7 @@
620620
"content": {
621621
"application/json": {
622622
"schema": {
623-
"$ref": "#/components/schemas/V2TableColumnsResponse"
623+
"$ref": "#/components/schemas/V2UpdateTableColumnResponse"
624624
}
625625
}
626626
}
@@ -5640,6 +5640,182 @@
56405640
}
56415641
]
56425642
},
5643+
"V2UnmigratedTableBlockReference": {
5644+
"type": "object",
5645+
"properties": {
5646+
"workflowId": {
5647+
"type": "string",
5648+
"description": "Workflow holding the Table block."
5649+
},
5650+
"workflowName": {
5651+
"type": "string",
5652+
"description": "Display name of that workflow."
5653+
},
5654+
"blockId": {
5655+
"type": "string",
5656+
"description": "Table block whose configuration still names the old column."
5657+
},
5658+
"blockName": {
5659+
"type": "string",
5660+
"description": "Display name of that block."
5661+
},
5662+
"fields": {
5663+
"type": "array",
5664+
"items": {
5665+
"type": "string",
5666+
"enum": ["filter", "order", "data"]
5667+
},
5668+
"description": "Sub-block fields that still reference the old column name."
5669+
}
5670+
},
5671+
"required": ["workflowId", "workflowName", "blockId", "blockName", "fields"],
5672+
"additionalProperties": false,
5673+
"title": "Unmigrated table block reference",
5674+
"description": "A workflow Table block still configured against a renamed column."
5675+
},
5676+
"V2UpdateTableColumnData": {
5677+
"type": "object",
5678+
"properties": {
5679+
"columns": {
5680+
"type": "array",
5681+
"items": {
5682+
"type": "object",
5683+
"properties": {
5684+
"id": {
5685+
"description": "Stable server-assigned column identifier.",
5686+
"type": "string"
5687+
},
5688+
"name": {
5689+
"type": "string",
5690+
"minLength": 1,
5691+
"maxLength": 50,
5692+
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
5693+
"description": "Column name used as the public row-data key."
5694+
},
5695+
"type": {
5696+
"type": "string",
5697+
"enum": [
5698+
"string",
5699+
"number",
5700+
"currency",
5701+
"boolean",
5702+
"date",
5703+
"ttl",
5704+
"json",
5705+
"select"
5706+
],
5707+
"description": "Data type of values stored in the column."
5708+
},
5709+
"required": {
5710+
"default": false,
5711+
"description": "Whether inserts require a value for this column.",
5712+
"type": "boolean"
5713+
},
5714+
"unique": {
5715+
"default": false,
5716+
"description": "Whether values must be unique across table rows.",
5717+
"type": "boolean"
5718+
},
5719+
"workflowGroupId": {
5720+
"description": "Workflow group whose output populates this column.",
5721+
"type": "string"
5722+
},
5723+
"options": {
5724+
"description": "Options declared for a select column.",
5725+
"maxItems": 100,
5726+
"type": "array",
5727+
"items": {
5728+
"type": "object",
5729+
"properties": {
5730+
"id": {
5731+
"type": "string",
5732+
"minLength": 1,
5733+
"description": "Stable select-option identifier."
5734+
},
5735+
"name": {
5736+
"type": "string",
5737+
"minLength": 1,
5738+
"maxLength": 100,
5739+
"description": "Display name of the select option."
5740+
}
5741+
},
5742+
"required": ["id", "name"],
5743+
"additionalProperties": false
5744+
}
5745+
},
5746+
"multiple": {
5747+
"description": "Whether a select column accepts multiple options.",
5748+
"type": "boolean"
5749+
},
5750+
"currencyCode": {
5751+
"description": "ISO 4217 code for a currency column, normalized to uppercase.",
5752+
"type": "string",
5753+
"pattern": "^[A-Za-z]{3}$"
5754+
}
5755+
},
5756+
"required": ["name", "type", "required", "unique"],
5757+
"additionalProperties": false,
5758+
"description": "A typed column in a table schema."
5759+
},
5760+
"description": "Current table columns."
5761+
},
5762+
"unmigrated": {
5763+
"type": "array",
5764+
"items": {
5765+
"$ref": "#/components/schemas/V2UnmigratedTableBlockReference"
5766+
},
5767+
"description": "Workflow Table blocks bound to this table whose `filter`, `order`, or `data` still name the column by its previous name. Only populated by a rename; empty otherwise. Workflow state is never rewritten by this endpoint — edit those blocks (`POST /api/v2/workflows/{workflowId}/operations`) or their next run fails on the old name."
5768+
}
5769+
},
5770+
"required": ["columns", "unmigrated"],
5771+
"additionalProperties": false,
5772+
"title": "Update table column data",
5773+
"description": "The table column list after the update, plus any workflow Table blocks a rename left pointing at the old column name."
5774+
},
5775+
"V2UpdateTableColumnResponse": {
5776+
"type": "object",
5777+
"properties": {
5778+
"data": {
5779+
"description": "Response data.",
5780+
"$ref": "#/components/schemas/V2UpdateTableColumnData"
5781+
}
5782+
},
5783+
"required": ["data"],
5784+
"additionalProperties": false,
5785+
"title": "Update table column response",
5786+
"description": "The table column list after the update, plus workflow Table blocks a rename left on the old column name.",
5787+
"examples": [
5788+
{
5789+
"data": {
5790+
"columns": [
5791+
{
5792+
"id": "col_name",
5793+
"name": "name",
5794+
"type": "string",
5795+
"required": true,
5796+
"unique": false
5797+
},
5798+
{
5799+
"id": "col_plan",
5800+
"name": "subscriptionPlan",
5801+
"type": "string",
5802+
"required": false,
5803+
"unique": false
5804+
}
5805+
],
5806+
"unmigrated": [
5807+
{
5808+
"workflowId": "3b1f7c92-8d4e-4a6b-9c0d-5e2f8a714b36",
5809+
"workflowName": "Weekly digest",
5810+
"blockId": "blk_9c1d3f5a7e2b4068a0c2e4f6b8d0f193",
5811+
"blockName": "Query plans",
5812+
"fields": ["filter"]
5813+
}
5814+
]
5815+
}
5816+
}
5817+
]
5818+
},
56435819
"UpdateTableColumnRequest": {
56445820
"type": "object",
56455821
"properties": {
@@ -7222,16 +7398,16 @@
72227398
}
72237399
},
72247400
"deploymentMode": {
7225-
"description": "Workflow execution mode.",
72267401
"type": "string",
7227-
"enum": ["live", "deployed"]
7402+
"enum": ["live", "deployed"],
7403+
"description": "Which workflow state per-cell runs execute against. `deployed` (the default when a group was created without one) runs the latest active deployment and refuses to run while the workflow is undeployed; `live` runs the editable draft."
72287404
},
72297405
"autoRun": {
72307406
"description": "Whether the group automatically runs for new rows.",
72317407
"type": "boolean"
72327408
}
72337409
},
7234-
"required": ["id", "workflowId", "outputs"],
7410+
"required": ["id", "workflowId", "outputs", "deploymentMode"],
72357411
"additionalProperties": false,
72367412
"title": "Table workflow group",
72377413
"description": "A workflow or enrichment producer and the columns it populates."

0 commit comments

Comments
 (0)