@particle-academy/fancy-connector-core 0.6.0 → 0.6.2

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/CHANGELOG.md CHANGED
@@ -6,6 +6,37 @@ All notable changes to `fancy-connector-core` are documented here, in
6
6
  **This package is pre-1.0, so breaking changes land in MINOR releases.** The
7
7
  version number is not a promise it can keep yet; the entries below are.
8
8
 
9
+ ## [0.6.2] - 2026-09-14
10
+
11
+ ### Fixed
12
+
13
+ - **Three remedies that could not be followed are gone, and a test now refuses
14
+ any string that names a command, package or script that does not exist.**
15
+ `ConnectorApiMismatch` for a connector behind the window told the reader to
16
+ run `npx fancy-cli@latest add connector <id>` — there is no such command; it
17
+ now says to move the connector to a release written for this core (upgrade
18
+ its `-js`/`-php` package, or regenerate a vendored copy from that release).
19
+ `index.ts` opened by naming `@particle-academy/fancy-connectors`, a package
20
+ that was never published and whose vendored catalogue is retired (the owner,
21
+ 2026-09-14 — every connector is a generated package from the Fancy-Friends
22
+ estate, and this core is Weaver's). And the banner `scripts/vendor.mjs`
23
+ writes into every generated file said to re-run `php artisan flow:build`,
24
+ which regenerates nothing; it now names `vendor.mjs` itself. **What to do:**
25
+ nothing at runtime; a host carrying a vendored `_connector` copy regenerates
26
+ it with `node scripts/vendor.mjs --target <dir>` on its next core update, and
27
+ its drift check will say so.
28
+
29
+ ## [0.6.1] - 2026-09-13
30
+
31
+ ### Fixed
32
+
33
+ - **`ConnectorError` declares `attempts` and `idempotent` on its type.** A failed
34
+ call has attached both since 0.5.0, but the class never declared them, so
35
+ TypeScript refused `error.attempts` and the README taught a cast. They are
36
+ `declare` fields: nothing changes at runtime, and an error that did not end a
37
+ call still has no such property. **What to do:** nothing; a cast you added
38
+ still compiles and can go.
39
+
9
40
  ## [0.6.0] - 2026-09-13
10
41
 
11
42
  Additive only. **What a consumer must DO: nothing** — see each entry.
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # fancy-connector-core
2
2
 
3
+ [![Fancified](art/fancified.svg)](https://particle.academy)
4
+
3
5
  **The runtime under every Fancy connector.** Modes and estates, connections, one
4
6
  call path, a failure taxonomy that knows the difference between *it never
5
7
  arrived* and *nobody can tell*, deterministic fakers, webhook verification, pure
@@ -84,10 +86,8 @@ try {
84
86
  error.kind; // the retry primitive
85
87
  error.providerCode; // only where the service declared `providerCodeFrom`
86
88
  error.cause; // the classified error; for a thrown transport, the original below it
87
- // Set at runtime but not declared on the `ConnectorError` type, so read them
88
- // through a narrowing of your own:
89
- (error as { attempts?: Attempt[] }).attempts; // every failed attempt of the call, in order
90
- (error as { idempotent?: boolean }).idempotent; // what the call declared — "never allowed to retry" vs "retries ran out"
89
+ error.attempts; // every failed attempt of the call, in order
90
+ error.idempotent; // what the call declared — "never allowed to retry" vs "retries ran out"
91
91
  }
92
92
  ```
93
93
 
@@ -222,7 +222,9 @@ entirely. That is the whole argument.
222
222
 
223
223
  - [`AGENTS.md`](./AGENTS.md) — the invariants, the traps, and what a change here
224
224
  breaks.
225
- - `.ai/plans/fancy-connectors.md` in the envelope — the architecture, the
226
- Socialite seam, the drift research, and every decision with its reason.
225
+ - `RULES.md` in [`Fancy-Friends/weaver.agi`](https://github.com/Fancy-Friends/weaver.agi)
226
+ — the estate every connector is generated from (one definition → four
227
+ packages), its invariants, and the process rules this core follows since it
228
+ became Weaver's on 2026-09-14.
227
229
 
228
230
  MIT.
package/dist/index.cjs CHANGED
@@ -142,7 +142,7 @@ function assertConnectorApi(connectorId, declared) {
142
142
  if (SUPPORTED_CONNECTOR_API.includes(declared)) return;
143
143
  const supported = SUPPORTED_CONNECTOR_API.join(", ");
144
144
  throw new ConnectorApiMismatch(
145
- declared > CONNECTOR_API_VERSION ? `"${connectorId}" was written against connector API ${declared}, and this core implements ${supported}. The CONNECTOR is newer: upgrade @particle-academy/fancy-connector-core. Vendoring a connector ahead of the core it needs is the one direction that cannot be made to work by trying.` : `"${connectorId}" was written against connector API ${declared}, which is older than anything this core still runs (${supported}). The CONNECTOR is behind: re-vendor it \u2014 \`npx fancy-cli@latest add connector ${connectorId}\` \u2014 which fetches the copy written for this core. Nothing is adapted automatically, because guessing what a two-version-old connector meant is how a connector quietly starts doing something else.`,
145
+ declared > CONNECTOR_API_VERSION ? `"${connectorId}" was written against connector API ${declared}, and this core implements ${supported}. The CONNECTOR is newer: upgrade @particle-academy/fancy-connector-core. Vendoring a connector ahead of the core it needs is the one direction that cannot be made to work by trying.` : `"${connectorId}" was written against connector API ${declared}, which is older than anything this core still runs (${supported}). The CONNECTOR is behind: move it to a release written for this core \u2014 upgrade its package (@particle-academy/${connectorId}-js, particle-academy/${connectorId}-php), or regenerate a vendored copy from that release; its CHANGELOG names the connector API each release targets. Nothing is adapted automatically, because guessing what a two-version-old connector meant is how a connector quietly starts doing something else.`,
146
146
  connectorId,
147
147
  declared
148
148
  );