executor 1.2.4-beta.2 → 1.2.4-beta.3

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
@@ -349,6 +349,7 @@ If you are exploring the repo, these are the directories that matter most:
349
349
  - One-time npm setup: either configure npm trusted publishing for `RhysSullivan/executor` with the workflow file `.github/workflows/publish-executor-package.yml`, or add a GitHub Actions secret named `NPM_TOKEN` that can publish the `executor` package.
350
350
  - Stable releases use a normal semver like `1.2.3` and publish to npm under `latest`.
351
351
  - Beta releases use a prerelease semver like `1.3.0-beta.1` and publish to npm under `beta`.
352
+ - When a release should become an upgrade test fixture, capture a real workspace snapshot with `bun run fixture:release:capture -- ...` and commit it under [`packages/platform/control-plane/src/runtime/__fixtures__`](./packages/platform/control-plane/src/runtime/__fixtures__/README.md).
352
353
 
353
354
  ## Project status
354
355
 
package/bin/executor.mjs CHANGED
@@ -364582,6 +364582,38 @@ var createLocalControlPlanePersistence = (context7, fileSystem) => ({
364582
364582
  close: async () => {}
364583
364583
  });
364584
364584
 
364585
+ // packages/platform/control-plane/src/runtime/catalog/source/reconcile.ts
364586
+ var shouldReconcileSource = (source2) => source2.enabled && source2.status === "connected" && getSourceAdapterForSource(source2).catalogKind !== "internal";
364587
+ var reconcileMissingSourceCatalogArtifacts = (input) => gen2(function* () {
364588
+ const runtimeLocalWorkspace = yield* RuntimeLocalWorkspaceService;
364589
+ const sourceStore = yield* RuntimeSourceStoreService;
364590
+ const sourceArtifactStore = yield* SourceArtifactStore;
364591
+ const sourceCatalogSync = yield* RuntimeSourceCatalogSyncService;
364592
+ const sources = yield* sourceStore.loadSourcesInWorkspace(input.workspaceId, {
364593
+ actorAccountId: input.actorAccountId
364594
+ });
364595
+ for (const source2 of sources) {
364596
+ if (!shouldReconcileSource(source2)) {
364597
+ continue;
364598
+ }
364599
+ const artifact = yield* sourceArtifactStore.read({
364600
+ context: runtimeLocalWorkspace.context,
364601
+ sourceId: source2.id
364602
+ });
364603
+ if (artifact !== null) {
364604
+ continue;
364605
+ }
364606
+ yield* sourceCatalogSync.sync({
364607
+ source: source2,
364608
+ actorAccountId: input.actorAccountId
364609
+ }).pipe(catchAll2(() => _void));
364610
+ }
364611
+ }).pipe(withSpan2("source.catalog.reconcile_missing", {
364612
+ attributes: {
364613
+ "executor.workspace.id": input.workspaceId
364614
+ }
364615
+ }));
364616
+
364585
364617
  // packages/platform/control-plane/src/runtime/execution/state.ts
364586
364618
  class ResumeUnsupportedError extends TaggedError("ResumeUnsupportedError") {
364587
364619
  }
@@ -364652,6 +364684,10 @@ var createControlPlaneRuntime = (options9) => gen2(function* () {
364652
364684
  });
364653
364685
  const managedRuntime = make85(concreteRuntimeLayer);
364654
364686
  yield* managedRuntime.runtimeEffect;
364687
+ yield* reconcileMissingSourceCatalogArtifacts({
364688
+ workspaceId: localInstallation.workspaceId,
364689
+ actorAccountId: localInstallation.accountId
364690
+ }).pipe(provide2(managedRuntime), catchAll2(() => _void));
364655
364691
  return {
364656
364692
  persistence,
364657
364693
  localInstallation,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "executor",
3
- "version": "1.2.4-beta.2",
3
+ "version": "1.2.4-beta.3",
4
4
  "description": "Local AI executor with a CLI, local API server, and web UI.",
5
5
  "keywords": [
6
6
  "executor",
@@ -1 +1 @@
1
- import{r,R as c,M as p,B as x}from"./mermaid-O7DHMXV3-CB_QyhtV.js";import{j as d}from"./index-CRuElBS1.js";var R=({code:i,language:e,raw:t,className:g,startLine:u,...m})=>{let{shikiTheme:o}=r.useContext(c),a=p(),[n,s]=r.useState(t);return r.useEffect(()=>{if(!a){s(t);return}let l=a.highlight({code:i,language:e,themes:o},h=>{s(h)});l&&s(l)},[i,e,o,a,t]),d.jsx(x,{className:g,language:e,result:n,startLine:u,...m})};export{R as HighlightedCodeBlockBody};
1
+ import{r,R as c,M as p,B as x}from"./mermaid-O7DHMXV3-B7TAupVN.js";import{j as d}from"./index-CRuElBS1.js";var R=({code:i,language:e,raw:t,className:g,startLine:u,...m})=>{let{shikiTheme:o}=r.useContext(c),a=p(),[n,s]=r.useState(t);return r.useEffect(()=>{if(!a){s(t);return}let l=a.highlight({code:i,language:e,themes:o},h=>{s(h)});l&&s(l)},[i,e,o,a,t]),d.jsx(x,{className:g,language:e,result:n,startLine:u,...m})};export{R as HighlightedCodeBlockBody};