Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .changeset/28041-skills-connector-input-judged.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
'@objectstack/skills': patch
---

docs(skills): the automation guide says a `connector_action` input is judged against the action's `inputSchema` before dispatch

Clause-②: no
Metadata-protocol: none

This text shipped in PR #28170 (#28041 / #28162), which missed its `@objectstack/skills` changeset; this entry carries it.

- **`objectstack-automation/SKILL.md`**: once evaluated, a `connector_action`'s `connectorConfig.input` is judged against the action's `inputSchema` (`required`, `type`, `properties`, `items`) before dispatch, and a breach fails the step `VALIDATION_ERROR` (`fault`-routable) with nothing sent. `registerFlow` and `os validate` refuse a `{…}` template token at `connectorConfig.input.<key>`.
- **`objectstack-automation/references/integration-recipes.md`**: a record value reaches the payload through a CEL envelope (`{ dialect: 'cel', source: 'record.<field>' }`), and the recipes say that envelope is judged against the `inputSchema`.
10 changes: 10 additions & 0 deletions .changeset/28203-skills-home-amount-keys.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
'@objectstack/skills': patch
---

docs(skills): the field-types guide teaches `homeAmount.rateDate` as a `date` or `datetime` field and lists all four `currencyConfig` keys

Clause-②: no
Metadata-protocol: none

- **`objectstack-data/rules/field-types.md`**: the `homeAmount` paragraph says `rateDate` names a `date` or `datetime` field (it said `date` only; the spec accepts both). The Numbers table `currency` row lists `currencyConfig` as `currencyMode`, `defaultCurrency`, `currencyField` and `homeAmount` (it named the first two only).
12 changes: 12 additions & 0 deletions .changeset/28226-skills-grant-kinds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
'@objectstack/skills': patch
---

docs(skills): the integration recipes say the connector `auth` union declares `oauth2` and `app-credential`, held degraded until a server runs the grant, and that `signed` signs `aliyun-acs3` and `tencentcloud-tc3` requests

Clause-②: no
Metadata-protocol: none

This text shipped in PR #28290 (#28226), which carried a changeset for `@objectstack/lint` only and missed its `@objectstack/skills` one; this entry carries it.

- **`objectstack-automation/references/integration-recipes.md`**: an OAuth-protected vendor declares `oauth2` (`authorization_code` / `client_credentials`) or `app-credential` (`feishu` / `dingtalk` / `wecom`), but no server runs the grant yet, so the instance is held degraded and calls no upstream. `signed` on `openapi` / `rest` (scheme `aliyun-acs3-hmac-sha256` or `tencentcloud-tc3-hmac-sha256`, with a `keyId`) signs each request; an RSA-signing vendor (Alipay, WeChat Pay) stays blocked on the request-signing card.
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,14 @@ Where a source leans one way, the lean is quoted here, not adopted. This record
workload row M2-1 and #27191 is corrected to required. Workload row M2-1 drafts the names `rateDate` and
`rateField`; in that draft, `rateDate` is "a `date`/`datetime` field on the same object (⛔ no default)". The design
record §6 says the document date must not default to `created_at` (「⛔ 不默认 created_at」).
*Note (2026-10-31):* settled: the pointers are spelled `rateDate` (the document date) and `rateField` (the rate
used), the names workload row M2-1 drafts, landed in PR #28096 (`73b72709`). Beside them `homeAmount.field` names
the home field, and all three are required with no default
(`packages/spec/src/data/field.zod.ts#HomeAmountSchema`). `rateDate` names a `date` or `datetime` field on the
same object (`packages/spec/src/data/object.zod.ts#HOME_AMOUNT_RATE_DATE_TYPES`) and `rateField` a `number` field;
both the home and the rate field declare `readonly: true`, and the object judges what each pointer names
(`packages/spec/src/data/object.zod.ts#refuseDishonestHomeAmount`). Review: contract review
[`6526217217`](https://github.com/objectstack-ai/objectstack/pull/28096#issuecomment-6526217217) on PR #28096.
2. **Which row counts as "the document date's rate"** (#27192). The ruling says "a platform rate table by effective
date". Workload row M2-2 and the measurement round read this as the row with the latest `effective_date` on or before
the document date. The measurement round also rules out a "nearest-future rate". The design record §5 says
Expand Down
6 changes: 3 additions & 3 deletions skills/objectstack-data/rules/field-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ fields: {
| Type | When to Use | Config |
|:-----|:------------|:-------|
| `number` | Generic numeric value | `min`, `max`, `precision`, `scale` |
| `currency` | Monetary amounts | `currencyConfig` (currencyMode, defaultCurrency) |
| `currency` | Monetary amounts | `currencyConfig` (currencyMode, defaultCurrency, currencyField, homeAmount) |
| `percent` | Percentage values (0-100) | `min`, `max`, `precision` |

## Date & Time
Expand Down Expand Up @@ -178,8 +178,8 @@ stored field to `'record'`? Backfill: `os migrate record-currency-codes`.

`homeAmount` (`'record'` only, all three required): the engine stores the
home-currency amount in `field` (a `'dynamic'` `currency`) at the `rateDate`
(`date`) rate, and that rate in `rateField` (`number`), both `readonly: true`.
Cross-currency totals sum `field`.
(`date`/`datetime`) rate, and that rate in `rateField` (`number`), both
`readonly: true`. Cross-currency totals sum `field`.

### Select with Default

Expand Down
Loading