@askexenow/exe-os 0.9.411 → 0.9.412

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.
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  writeSignedStackManifest
4
- } from "./chunk-WC44PNZU.js";
5
- import "./chunk-WHUQ44F2.js";
4
+ } from "./chunk-5DLZJ3MY.js";
5
+ import "./chunk-RIKFXHLE.js";
6
6
  import "./chunk-EC5H53YD.js";
7
7
  import {
8
8
  assertPreflightGate,
@@ -282,6 +282,16 @@ var STACK_RELEASE_REPO_CONFIGS = Object.freeze([
282
282
  releaseWorkflow: "release-stack-image.yml",
283
283
  simpleTag: true,
284
284
  defaultBranch: "main"
285
+ },
286
+ {
287
+ serviceKey: "dashboard",
288
+ manifestServiceKey: "dashboard",
289
+ ghRepo: "AskExe/exe-dashboard",
290
+ localDir: "exe-dashboard",
291
+ imageName: "update.askexe.com/askexe/exe-dashboard",
292
+ releaseWorkflow: "release-dashboard-image.yml",
293
+ simpleTag: true,
294
+ defaultBranch: "main"
285
295
  }
286
296
  ]);
287
297
  var STACK_RECONCILE_APP_IMAGE_REPOS = Object.freeze([
@@ -291,37 +301,10 @@ var STACK_RECONCILE_APP_IMAGE_REPOS = Object.freeze([
291
301
  imageName: "update.askexe.com/askexe/exe-auth",
292
302
  ghRepo: "AskExe/exe-auth"
293
303
  },
294
- // exe-dashboard: same gap — it was absent from both maps in this file, so
295
- // G6's reconcile classified an unstamped dashboard image as "no expected
296
- // source repo mapped here" (third-party, informational), exactly the false
297
- // pass the "unstamped-third-party" distinction exists to avoid for images
298
- // this repo family DOES build.
299
- //
300
- // 🔴 THE REPO HERE IS THE REPO THE IMAGE IS BUILT IN, NOT THE ONE THAT WILL
301
- // EVENTUALLY OWN IT. G6 compares this value against the image's org.exe.repo
302
- // label, which the shared release lane stamps with the repository the build
303
- // actually ran in. exe-dashboard is still built from `dashboard-page/` INSIDE
304
- // AskExe/exe-os (.github/workflows/release-dashboard-image.yml passes
305
- // `context: dashboard-page`); AskExe/exe-dashboard exists but its history
306
- // extraction is unfinished and nothing is built there yet. The real published
307
- // ghcr.io/askexe/exe-dashboard:v0.9.382 carries org.exe.repo=AskExe/exe-os
308
- // (recorded verbatim in release-service.yml's G2 arming note), so naming the
309
- // destination repo here turns every correctly-stamped dashboard release into
310
- // a "wrong-repo image (bug 218b10e4 class)" failure — and simultaneously
311
- // makes that signal useless for the one service it would be reporting on.
312
- //
313
- // release-contract-services.mjs's `ghRepo: "AskExe/exe-dashboard"` is a
314
- // different field with a different meaning: it names the repo that OWNS the
315
- // service in the migration table. Copying it into this provenance map is how
316
- // the wrong value got here.
317
- //
318
- // When the extraction completes, the lane's `context` flips to `.` and moves
319
- // to AskExe/exe-dashboard; flip this with it. A test in
320
- // tests/scripts/image-provenance.test.ts reads that `context` and fails if
321
- // the two disagree, so this cannot drift silently a second time.
304
+ // Current dashboard pins are published by the standalone repository.
322
305
  {
323
306
  imageName: "update.askexe.com/askexe/exe-dashboard",
324
- ghRepo: "AskExe/exe-os"
307
+ ghRepo: "AskExe/exe-dashboard"
325
308
  }
326
309
  ]);
327
310
 
@@ -2028,7 +2011,7 @@ async function warmProxyCache(imageRef) {
2028
2011
  async function resolveImageGitShaLabel(ref, dryRun) {
2029
2012
  if (!ref || dryRun) return void 0;
2030
2013
  try {
2031
- const { readProvenanceLabels } = await import("./stack-generate-manifest-SU6OFFY7.js");
2014
+ const { readProvenanceLabels } = await import("./stack-generate-manifest-MVJDTU4F.js");
2032
2015
  const labels = await readProvenanceLabels(ref);
2033
2016
  return labels["org.exe.git_sha"] ?? labels["org.opencontainers.image.revision"];
2034
2017
  } catch (err) {
@@ -97,6 +97,7 @@ import {
97
97
  printVolumeCleanupResult,
98
98
  readCurrentStackVersion,
99
99
  readRetainedComposeFiles,
100
+ readStagedComposeTemplate,
100
101
  reconcileSsoEdgeConfigDelivery,
101
102
  reconcileStackLockFromContainers,
102
103
  removeDanglingVolumes,
@@ -138,7 +139,7 @@ import {
138
139
  waitForHttpOk,
139
140
  warnUnmanagedManifestServices,
140
141
  withStackUpdateOperationLock
141
- } from "./chunk-WHUQ44F2.js";
142
+ } from "./chunk-RIKFXHLE.js";
142
143
  import "./chunk-EC5H53YD.js";
143
144
  import "./chunk-YYRI2AGK.js";
144
145
  import "./chunk-L25OAFOU.js";
@@ -250,6 +251,7 @@ export {
250
251
  printVolumeCleanupResult,
251
252
  readCurrentStackVersion,
252
253
  readRetainedComposeFiles,
254
+ readStagedComposeTemplate,
253
255
  reconcileSsoEdgeConfigDelivery,
254
256
  reconcileStackLockFromContainers,
255
257
  removeDanglingVolumes,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.9.411",
3
+ "version": "0.9.412",
4
4
  "description": "AI employee operating system — persistent memory, task management, and multi-agent coordination for Claude Code.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",
@@ -1,34 +1,30 @@
1
1
  {
2
- "current": "0.9.411",
2
+ "current": "0.9.412",
3
3
  "notes": {
4
- "0.9.411": {
5
- "version": "0.9.411",
6
- "date": "2026-10-12",
4
+ "0.9.412": {
5
+ "version": "0.9.412",
6
+ "date": "2026-10-14",
7
7
  "features": [
8
- "server-set offline_grace_s caps client offline trust (closed-loop revocation, part 1) (#3964)",
9
- "add platform procedure for subagent context economy (#3954)"
8
+ "deliver private HTML reports in customer release 0.9.77",
9
+ "org plane enforces suspension/ban + operator revoke-all-sessions (closed-loop revocation, part 2) (#3965)"
10
10
  ],
11
11
  "fixes": [
12
- "last-known-good company-procedures snapshot; launch warning names the real error (#3966)",
13
- "/api/register-org only lets the org's owner rotate its relay token (9c8781e9) (#3963)",
14
- "never sweep stable per-agent caches; keep stale cache on DB read failure (6255bdd6) (#3962)",
15
- "form-agnostic exe-os http_headers + fail-closed TOML guard (#3961)",
16
- "ledger guard parses wrapper options, skips redirections, fails closed on find -L (#3960)",
17
- "ledger rule refuses whole-tree delete/move of an audit-dir ancestor (#3958)",
18
- "ledger-tamper and data-store guard false positives (single-quoted literals, cd-relative rm targets) (#3956)",
19
- "run backup verification off the daemon event loop (#3959)",
20
- "retention no longer depends on a backup run completing; torn manifests are not verified (#3955)",
21
- "destructive find over an ancestor of the audit dir bypassed ledger-tamper (#3957)",
22
- "retire code-context sync + stream blob pulls to stop CPU-limit kills (#3947)",
23
- "stop syncing code-context indexes to Exe Cloud (#3948)",
24
- "purge two-level dispatch residue — managers decompose, coordinator dispatches (bug 23fba96c) (#3044)",
25
- "walker credits destructuring/spread getter reads (bug 542082b2) (#3946)",
26
- "treat down serving probe as degraded in mcp_ping status (bug 5c7c2e7b residual) (#3943)"
12
+ "skip monitor recovery before inspecting unused images",
13
+ "bind ERP session proof and recover legacy monitor ownership",
14
+ "verify stateful ERP SSO handoff and native identity",
15
+ "bind monitor probe to observed agent artifact",
16
+ "allow valid multi-platform registry inspections to finish",
17
+ "declare the telemetry image setting for legacy template upgrades",
18
+ "preserve global version on no-op scoped updates",
19
+ "make previews read-only and migrate inactive legacy workers",
20
+ "complete verified standalone dashboard cutover",
21
+ "derive customer template pins from the new release"
27
22
  ],
28
23
  "security": [],
29
24
  "other": [
30
- "release: v0.9.411 (#3967)",
31
- "version-control local CI npm registry plumbing + DOWN-tick alerting (bug 67c9ac1d) (#3951)"
25
+ "typecheck updater regressions and stabilize dated fixtures",
26
+ "keep CLI planning mock aligned with exported template reader",
27
+ "release(stack): make tested customer bundle 0.9.77 the default"
32
28
  ],
33
29
  "migration_notes": []
34
30
  },
@@ -4,8 +4,8 @@
4
4
  "repo": "AskExe/exe-os",
5
5
  "service": "exe-os",
6
6
  "packageName": "@askexenow/exe-os",
7
- "version": "0.9.411",
8
- "image": "ghcr.io/askexe/exe-os:v0.9.411",
7
+ "version": "0.9.412",
8
+ "image": "ghcr.io/askexe/exe-os:v0.9.412",
9
9
  "imageEnv": "EXE_OS_IMAGE_TAG",
10
10
  "imageDigestTodo": "The top-level image names the forthcoming exe-os build and receives its digest after publication. Independently released components, including dashboard, retain verified digest pins; stack publication validates every service pin.",
11
11
  "components": {
@@ -16,11 +16,11 @@
16
16
  "note": "Bug 81ca8903: was `ghcr.io/askexe/exe-erp:v0.9.312` \u2014 a tag that has never existed. ERP is versioned on its own 0.x line; v0.9.312 is an EXE-OS version number that bumpVersions() stamped onto this component because rebaseImageTag() rebased every tag-only component image to the exe-os release version regardless of which repo built it. That rebase is now scoped (same commit) so it can no longer forge tags for independently-versioned components. Repinned to the real, current ERP release v0.3.4, digest resolved live from ghcr.io/askexe/exe-erp on 2026-09-01. Digest-pinning is also what makes this entry self-defending: rebaseImageTag() returns any `@sha256:`-bearing ref untouched. Prior intent for the record (bug 790794e8) was v0.2.0-final8, the first ERP image shipping the realtime/socketio entrypoint (exe-erp PR #15); final3/final7 crash-looped exe-erp-websocket on a missing socketio.js. v0.3.4 supersedes it."
17
17
  },
18
18
  "dashboard": {
19
- "image": "ghcr.io/askexe/exe-dashboard:v0.9.382@sha256:43c4eb52d89d977021d29df73bcfa6f9d769ab4debf90e81240b59a4c165bab0",
19
+ "image": "ghcr.io/askexe/exe-dashboard:v0.9.400@sha256:d6963463d623f2e07b8b1b6cdaa5662b8a7219aa237cd315cfbabcad84f06ee1",
20
20
  "env": "DASHBOARD_IMAGE_TAG",
21
21
  "composeService": "exe-dashboard",
22
22
  "versionLockstep": false,
23
- "note": "Dashboard is independently versioned after the standalone repository handoff. Preserve the verified image already pinned by the customer stack until the first AskExe/exe-dashboard release passes provenance checks. Update this digest and current-image source mappings together at cutover; exe-os version bumps must not rewrite this tag."
23
+ "note": "Independently published by AskExe/exe-dashboard from 0e389f1acf35b34c648a846abdc4bcca4d2cd816. Matches the verified v0.9.400 customer manifest pin; source mappings move atomically with this digest."
24
24
  },
25
25
  "exe-db": {
26
26
  "image": "pgvector/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
@@ -110,5 +110,5 @@
110
110
  },
111
111
  "deploymentScope": "customer",
112
112
  "highGhostStack": "0.9.9",
113
- "sourceVersion": "0.9.411"
113
+ "sourceVersion": "0.9.412"
114
114
  }