@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.
- package/delivery/catalog.json +29 -38
- package/deploy/compose/.env.customer.example +5 -5
- package/deploy/compose/.env.default +4 -4
- package/deploy/compose/.env.example +5 -5
- package/deploy/compose/docker-compose.yml +1 -1
- package/deploy/stack-manifests/v0.9.json +263 -2
- package/dist/.dist-verified.json +3 -3
- package/dist/bin/cli.js +3 -3
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/stack-update.js +39 -14
- package/dist/bin/verify-stack.js +1 -1
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/build-info.json +3 -3
- package/dist/build-manifest.json +46 -46
- package/dist/{chunk-WC44PNZU.js → chunk-5DLZJ3MY.js} +1 -1
- package/dist/{chunk-HWP3WCLC.js → chunk-OPG237ZQ.js} +154 -50
- package/dist/{chunk-WHUQ44F2.js → chunk-RIKFXHLE.js} +246 -30
- package/dist/{chunk-DRHTRVDT.js → chunk-VBYSAQJD.js} +1 -1
- package/dist/{chunk-54STF27U.js → chunk-W3ABSZ6G.js} +1 -1
- package/dist/hooks/manifest.json +1 -1
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/{stack-generate-manifest-SU6OFFY7.js → stack-generate-manifest-MVJDTU4F.js} +11 -35
- package/dist/{stack-promote-MJF436JD.js → stack-promote-BMGEY6SQ.js} +2 -2
- package/dist/{stack-release-S37R57XC.js → stack-release-64UJ6Y4W.js} +15 -32
- package/dist/{stack-update-XXDRKGGR.js → stack-update-EBATTQPP.js} +3 -1
- package/package.json +1 -1
- package/release-notes.json +19 -23
- package/stack.release.json +5 -5
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
writeSignedStackManifest
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
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
|
-
//
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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",
|
package/release-notes.json
CHANGED
|
@@ -1,34 +1,30 @@
|
|
|
1
1
|
{
|
|
2
|
-
"current": "0.9.
|
|
2
|
+
"current": "0.9.412",
|
|
3
3
|
"notes": {
|
|
4
|
-
"0.9.
|
|
5
|
-
"version": "0.9.
|
|
6
|
-
"date": "2026-10-
|
|
4
|
+
"0.9.412": {
|
|
5
|
+
"version": "0.9.412",
|
|
6
|
+
"date": "2026-10-14",
|
|
7
7
|
"features": [
|
|
8
|
-
"
|
|
9
|
-
"
|
|
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
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
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
|
-
"
|
|
31
|
-
"
|
|
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
|
},
|
package/stack.release.json
CHANGED
|
@@ -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.
|
|
8
|
-
"image": "ghcr.io/askexe/exe-os:v0.9.
|
|
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.
|
|
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": "
|
|
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.
|
|
113
|
+
"sourceVersion": "0.9.412"
|
|
114
114
|
}
|