Skip to content

Commit 1be868a

Browse files
committed
docs(client): the SDK retirement notes state the version and the refusal truthfully
Two sentences copied from the inbox door, where both are true, into the runs door, where neither is: - 'clamped to 1..100' — nothing on this door clamps. parseIntegerParam throws min_value/max_value (query-param.ts:168-173) on the bounds the door reads off ListRunsRequestSchema.shape.limit, and the engine is a bare '?? 20'. The window is REFUSED outside 1..100, not clamped. Lit control: the real clamp in this repo is messaging-service.ts:541. - 'removed in protocol 18' — PROTOCOL_VERSION is '17.0.0' and the prescription publishes '@objectstack/spec 17.5.0'. The SDK was the one surface a CHANGELOG reader lands on, disagreeing with the spec about the single fact a retirement note exists to state. All three docblocks now carry the published version. Same stroke: the D3 acceptanceCriteria cited '(ADR route-ownership rule 5)'; no ADR carries that rule. It is AGENTS.md 'Route & surface ownership' rule 5. Registry mirror regenerated with the generator. Claude-Session: https://claude.ai/code/session_01UDXER3sdqfeVYpEWZs5mZx Co-authored-by: Claude <noreply@anthropic.com>
1 parent 81f11e5 commit 1be868a

3 files changed

Lines changed: 16 additions & 12 deletions

File tree

‎packages/client/src/index.ts‎

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5537,12 +5537,16 @@ export class ObjectStackClient {
55375537
* List execution runs for a flow.
55385538
*
55395539
* Returns the newest `limit` runs — a WINDOW, not a page. The
5540-
* `cursor` parameter was removed in protocol 18 (#19365): it was
5541-
* appended to the query string here and read by nothing on the
5542-
* server, so a caller paginating by it re-read the first window
5543-
* forever. Omit `limit` to take the server's window (20, clamped to
5544-
* 1..100); raise it to see further back. There is no continuation
5545-
* token — read `hasMore` to learn whether the window was short.
5540+
* `cursor` parameter was removed in `@objectstack/spec` 17.5.0
5541+
* (#19365): it was appended to the query string here and read by
5542+
* nothing on the server, so a caller paginating by it re-read the
5543+
* first window forever.
5544+
*
5545+
* Omit `limit` to take the server's window (20). It is
5546+
* bounded to 1..100 and a value outside that range is REFUSED with
5547+
* `400 VALIDATION_FAILED`, never clamped — so raise it deliberately
5548+
* to see further back. There is no continuation token — read
5549+
* `hasMore` to learn whether the window was short.
55465550
*/
55475551
list: async (flowName: string, options?: { limit?: number }): Promise<{ runs: ExecutionLog[]; hasMore: boolean }> => {
55485552
const route = this.getRoute('automation');
@@ -5616,9 +5620,9 @@ export class ObjectStackClient {
56165620
/**
56175621
* Alias for `automation.runs.list`.
56185622
*
5619-
* `cursor` was removed in protocol 18 (#19365) — see that method for the
5620-
* reason. A window, not a page: widen `limit` (1..100, default 20) and
5621-
* read `hasMore`.
5623+
* `cursor` was removed in `@objectstack/spec` 17.5.0 (#19365) — see that
5624+
* method for the reason. A window, not a page: widen `limit`
5625+
* (1..100, default 20) and read `hasMore`.
56225626
*/
56235627
listRuns: async <T extends { runs: ExecutionLog[]; hasMore: boolean } = { runs: ExecutionLog[]; hasMore: boolean }>(
56245628
flowName: string,
@@ -8101,7 +8105,7 @@ export class ScopedEnvironmentClient {
81018105
/**
81028106
* List recent runs for a flow, optionally narrowed to one status.
81038107
*
8104-
* `cursor` was removed in protocol 18 (#19365) — see
8108+
* `cursor` was removed in `@objectstack/spec` 17.5.0 (#19365) — see
81058109
* `automation.runs.list` for the reason. A window, not a page: widen
81068110
* `limit` (1..100, default 20) and read `hasMore`.
81078111
*/

‎packages/spec/src/migrations/entries/semantic/18.automation-runs-cursor-retired.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export const entry: SemanticMigration = {
9090
+ 'would not be the one to discover the type was unenforced; this ruling decides it '
9191
+ 'instead — there will be no cursor implementation on this door — so the refusal would '
9292
+ 'be validating a key the contract no longer has. This route declares no closed query '
93-
+ 'set (ADR route-ownership rule 5), so an unrecognised name has never been refused here '
93+
+ 'set (AGENTS.md route-ownership rule 5), so an unrecognised name has never been refused here '
9494
+ 'on its own account. '
9595
+ '⚠️ `hasMore` also changes, from a constant to an answer: a request whose window is '
9696
+ 'shorter than the matching run set now receives `hasMore: true` where it previously '

‎packages/spec/src/migrations/registry.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5887,7 +5887,7 @@ const step18: MigrationStep = {
58875887
+ 'would not be the one to discover the type was unenforced; this ruling decides it '
58885888
+ 'instead — there will be no cursor implementation on this door — so the refusal would '
58895889
+ 'be validating a key the contract no longer has. This route declares no closed query '
5890-
+ 'set (ADR route-ownership rule 5), so an unrecognised name has never been refused here '
5890+
+ 'set (AGENTS.md route-ownership rule 5), so an unrecognised name has never been refused here '
58915891
+ 'on its own account. '
58925892
+ '⚠️ `hasMore` also changes, from a constant to an answer: a request whose window is '
58935893
+ 'shorter than the matching run set now receives `hasMore: true` where it previously '

0 commit comments

Comments
 (0)