@oddington/sdk 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -54,9 +54,10 @@ an OS-launched IPv4 loopback origin. It checks `/_os/app/context` on that exact
54
54
  origin for every protected operation, without reading hosted access credentials.
55
55
  It accepts no workspace, endpoint or token option. Missing, forged, expired or
56
56
  changed local context fails closed, as do sign-out and initialization replacement.
57
- Local Data and Files currently return `context_unavailable` and
58
- `unsupported_context` respectively after checking context; they do not return
59
- empty data, upload locally or fall back to hosted services. Local app routine
57
+ Local Data selects from the Host's exact published index; a warm selection
58
+ neither initiates nor waits for renewal or synchronous hosted authority checks.
59
+ Local Files returns `unsupported_context` after checking context. Neither path
60
+ falls back to hosted services. Local app routine
60
61
  execution uses the installed routine's immediate-publication authority.
61
62
 
62
63
  Apps can assess a declared routine without starting it:
@@ -104,14 +105,26 @@ Only event reads reconnect, with bounded backoff and duplicate suppression;
104
105
  launch and cancellation requests are never automatically retried. Failed
105
106
  cancellation requests do not acknowledge cancellation. Handles expose no IDs,
106
107
  cursors, raw output or process controls. Local sign-out, expiry, context
107
- replacement and origin/credential changes invalidate pending work.
108
+ replacement, origin changes and unconfirmed credential changes invalidate pending work.
108
109
 
109
110
  The exact-origin browser credential survives reload and tab closure in local
110
- storage. Host expiry and current membership remain authoritative; stored state
111
- cannot revive a stopped host. Recovery covers only the operation's current
112
- session and bounded terminal grace, without relaunching or durable history.
111
+ storage. Each active initialization proactively renews before expiry, normally
112
+ sixty seconds early with a shorter lead for shorter lifetimes. Only the exact
113
+ Local Host silently refreshes the secure CLI login and confirms unchanged
114
+ complete access. Successful renewal rotates only the bounded browser credential;
115
+ it exposes no CLI credential or login prompt. Other tabs and SDK instances
116
+ retain only their unchanged deadline during a temporary renewal outage and
117
+ retry proactively without starting or delaying Data reads. They
118
+ confirm the stored winner against the same Host and logical session before
119
+ silently adopting it. Rotation preserves admitted Data/results and owned runs;
120
+ old credentials cannot admit new requests and failed writes, launches and
121
+ cancellations are never replayed. Sign-out, replacement and expiry cancel
122
+ renewal, including pending response bodies. Host expiry and current membership
123
+ remain authoritative; stored state cannot revive a stopped host. Recovery
124
+ covers only the operation's current logical session and bounded terminal grace,
125
+ without relaunching or durable history.
113
126
  Supplied File inputs currently reject `execution_unavailable` before launch;
114
- File-use transfer and local Data/Files adapters are separate work.
127
+ File-use transfer and a local browser Files adapter are separate work.
115
128
 
116
129
  The fixed child imports `appRun` from the same package and shares the app's
117
130
  customer-owned input/result/step types:
@@ -286,9 +299,37 @@ Each graph selection sends one request and returns only selected canonical
286
299
  values, expanded forward links and exact opaque public versions. Cursors
287
300
  continue the exact retained artifact and collection selection, even after
288
301
  replacement; repeat its options and links while omitting unrelated collections.
289
- There is no automatic retry or separate version fetch. History is not included.
302
+ There is no automatic retry or separate version fetch.
290
303
  Collection schemas omit Markdown storage hints.
291
304
 
305
+ Read published History through the same inert repository handle:
306
+
307
+ ```ts
308
+ const versions = await general.history.list({ limit: 50 });
309
+ const older = versions.length
310
+ ? await general.history.list({ before: versions.at(-1)!.version }) : [];
311
+ const close = await general.history.at('2026-10-09T16:30:00Z');
312
+ ```
313
+
314
+ List returns an entry array in descending published sequence, with an exclusive
315
+ visible `before` and a default limit of 50 (integer 1–100). Cutoff accepts a real
316
+ RFC 3339 instant with an explicit offset and returns the greatest visible sequence
317
+ published at or before it, or null. Entries contain exactly `version`, `publishedAt`,
318
+ `author`, `authoredAt`, `committer`, `committedAt`, `message`, `created`, `updated`,
319
+ and `deleted`. Git identities and complete messages are repository facts; changed
320
+ refs are lexical. Versions are opaque published identities, never Git expressions.
321
+ Each operation captures input before resolving authority and makes one request.
322
+ Incomplete selected metadata fails the whole result retryably with `unavailable`;
323
+ current Records remain independent. Hosted routines retain their captured ceiling
324
+ until their own authoritative publication advances it. History is served through
325
+ the member/run Data transport. Local apps and local routines use the same calls;
326
+ their OS parent may acquire one bounded page or cutoff result, retain it against
327
+ the exact repository target and published ceiling, and serve an identical warm
328
+ request without another hosted call. Authority loss, expiry, target replacement
329
+ or published-version replacement invalidates that retained result. Prepared local
330
+ changes do not appear in published History.
331
+ Historical Record selection and `history.changes` are not exposed by this slice.
332
+
292
333
  Use bounded plain-text lookup to find full Records and guards:
293
334
 
294
335
  ```ts