@askexenow/exe-os 0.9.376 → 0.9.377
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.
|
@@ -113,6 +113,12 @@ server {
|
|
|
113
113
|
location = /health { auth_request off; proxy_pass http://sso_crm/healthz; }
|
|
114
114
|
location = /healthz { auth_request off; proxy_pass http://sso_crm/healthz; }
|
|
115
115
|
|
|
116
|
+
# Logout endpoint must be exempt from SSO gate (bug 96f8b2b2). Without this,
|
|
117
|
+
# /auth/logout triggers 401 -> redirect to auth with logout URL as redirect param
|
|
118
|
+
# -> infinite loop. Let the app handle logout (clear its own cookies), then it
|
|
119
|
+
# redirects to auth.askexe.com/logout for the central SSO cookie clear.
|
|
120
|
+
location = /auth/logout { auth_request off; proxy_pass http://sso_crm/auth/logout; }
|
|
121
|
+
|
|
116
122
|
location / { proxy_pass http://sso_crm; }
|
|
117
123
|
}
|
|
118
124
|
|
|
@@ -151,6 +157,9 @@ server {
|
|
|
151
157
|
location = /health { auth_request off; proxy_pass http://sso_wiki/api/ping; }
|
|
152
158
|
location = /healthz { auth_request off; proxy_pass http://sso_wiki/api/ping; }
|
|
153
159
|
|
|
160
|
+
# Logout endpoint must be exempt from SSO gate (bug 96f8b2b2).
|
|
161
|
+
location = /auth/logout { auth_request off; proxy_pass http://sso_wiki/auth/logout; }
|
|
162
|
+
|
|
154
163
|
location / { proxy_pass http://sso_wiki; }
|
|
155
164
|
}
|
|
156
165
|
|
|
@@ -178,7 +187,27 @@ server {
|
|
|
178
187
|
set $sso_session_cookie $cookie_sid; # Frappe/ERPNext session cookie
|
|
179
188
|
include /etc/nginx/snippets/sso-redirect.conf;
|
|
180
189
|
|
|
181
|
-
|
|
190
|
+
# ERP is the one upstream that runs a realtime socket.io service with
|
|
191
|
+
# origin authentication: frappe's realtime middleware compares the Host
|
|
192
|
+
# header against the Origin header and rejects mismatches ("Invalid
|
|
193
|
+
# origin"), and the websocket upgrade needs explicit HTTP/1.1 + Upgrade
|
|
194
|
+
# headers. A bare proxy_pass sends Host: exe-erp-nginx and no upgrade
|
|
195
|
+
# headers, so every desk socket.io connection is rejected and the desk
|
|
196
|
+
# shows "Error connecting to socket.io: Invalid origin" (found in the
|
|
197
|
+
# 2026-09-02 four-domain demo verification).
|
|
198
|
+
location / {
|
|
199
|
+
proxy_pass http://sso_erp;
|
|
200
|
+
proxy_set_header Host $host;
|
|
201
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
202
|
+
# Literal https, matching the template-level convention at the top of
|
|
203
|
+
# this file: this edge is reached via cloudflared over plain HTTP, so
|
|
204
|
+
# $scheme would report "http" for public HTTPS requests.
|
|
205
|
+
proxy_set_header X-Forwarded-Proto https;
|
|
206
|
+
proxy_http_version 1.1;
|
|
207
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
208
|
+
proxy_set_header Connection "upgrade";
|
|
209
|
+
proxy_read_timeout 75s;
|
|
210
|
+
}
|
|
182
211
|
}
|
|
183
212
|
|
|
184
213
|
# ── Dashboard ────────────────────────────────────────────────────────────────
|
|
@@ -202,6 +231,9 @@ server {
|
|
|
202
231
|
location = /health { auth_request off; proxy_pass http://sso_dashboard/health; }
|
|
203
232
|
location = /healthz { auth_request off; proxy_pass http://sso_dashboard/health; }
|
|
204
233
|
|
|
234
|
+
# Logout endpoint must be exempt from SSO gate (bug 96f8b2b2).
|
|
235
|
+
location = /auth/logout { auth_request off; proxy_pass http://sso_dashboard/auth/logout; }
|
|
236
|
+
|
|
205
237
|
location / { proxy_pass http://sso_dashboard; }
|
|
206
238
|
}
|
|
207
239
|
|
package/dist/.dist-verified.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"verified_at": "2026-09-
|
|
4
|
-
"manifest_sha256": "
|
|
5
|
-
"package_version": "0.9.
|
|
3
|
+
"verified_at": "2026-09-02T16:27:58.480Z",
|
|
4
|
+
"manifest_sha256": "ece576114533d5eefd5825e465bb966df86e4e85d74e520fe6c9796f7f3d763f",
|
|
5
|
+
"package_version": "0.9.377"
|
|
6
6
|
}
|
package/dist/build-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 2,
|
|
3
|
-
"generated_at": "2026-09-
|
|
3
|
+
"generated_at": "2026-09-02T16:27:58.225Z",
|
|
4
4
|
"files": [
|
|
5
5
|
{
|
|
6
6
|
"path": "active-agent-BOBBUJ74.js",
|
|
@@ -2464,7 +2464,7 @@
|
|
|
2464
2464
|
},
|
|
2465
2465
|
{
|
|
2466
2466
|
"path": "hooks/manifest.json",
|
|
2467
|
-
"sha256": "
|
|
2467
|
+
"sha256": "aafff5a963888bc061f2b3ce1bdbedc27cc8097b090b0876624bdeb67e0bc28d",
|
|
2468
2468
|
"bytes": 1841
|
|
2469
2469
|
},
|
|
2470
2470
|
{
|
package/dist/hooks/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"generatedAt": "2026-09-02T16:27:58.137Z",
|
|
4
4
|
"hashes": {
|
|
5
5
|
"bug-report-worker.js": "8191d9e9ad67127e44969bb4671d21f3ac603dcc8dd978960f1e50b215eac475",
|
|
6
6
|
"codex-stop-task-finalizer.js": "1c7ebddd870afd357eeab64172a88163ea02957eff527a5e13c5dd24e2f1a678",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askexenow/exe-os",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.377",
|
|
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,14 +1,21 @@
|
|
|
1
1
|
{
|
|
2
|
-
"current": "0.9.
|
|
2
|
+
"current": "0.9.377",
|
|
3
3
|
"notes": {
|
|
4
|
-
"0.9.
|
|
5
|
-
"version": "0.9.
|
|
4
|
+
"0.9.377": {
|
|
5
|
+
"version": "0.9.377",
|
|
6
6
|
"date": "2026-09-02",
|
|
7
7
|
"features": [],
|
|
8
|
-
"fixes": [
|
|
8
|
+
"fixes": [
|
|
9
|
+
"fetch full history+tags in publish checkouts for the ref-provenance guard (#1029)",
|
|
10
|
+
"exempt /auth/logout from the SSO gate in crm/wiki/dashboard vhosts (bug 96f8b2b2) (#1027)",
|
|
11
|
+
"sso-edge erp vhost preserves Host + websocket upgrade headers (#1024)",
|
|
12
|
+
"refuse to push a tag stamped with a non-AskExe identity (#1021)"
|
|
13
|
+
],
|
|
9
14
|
"security": [],
|
|
10
15
|
"other": [
|
|
11
|
-
"bump to v0.9.
|
|
16
|
+
"bump to v0.9.377 (#1031)",
|
|
17
|
+
"cross-arch builds use the docker driver (Rosetta), not bundled qemu (#1030)",
|
|
18
|
+
"migrate release/x64 lanes off build-my onto the local ci-linux VM (#1026)"
|
|
12
19
|
],
|
|
13
20
|
"migration_notes": []
|
|
14
21
|
},
|
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.377",
|
|
8
|
+
"image": "ghcr.io/askexe/exe-os:v0.9.377",
|
|
9
9
|
"imageEnv": "EXE_OS_IMAGE_TAG",
|
|
10
10
|
"imageDigestTodo": "TODO(bug 32d6e02f), NARROWED by bug 81ca8903. The top-level `image` is tag-only BY CONSTRUCTION and that is correct: it names the tag the release run is about to build, whose digest does not exist until the push (see the 'Cross-check built digest against the manifest pin' step in .github/workflows/release-stack-image.yml). Demanding a digest here is unsatisfiable, which is why this TODO kept surviving. The one genuinely resolvable case it also covered — components.erp, built in a DIFFERENT repo and therefore already sitting in the registry — is now resolved and digest-pinned below. What remains open is ONLY components.dashboard, and not for the reason this TODO claimed: ghcr.io/askexe/exe-dashboard:v0.9.372 DOES NOT EXIST. .github/workflows/release-dashboard-image.yml has produced exactly one run in its lifetime (id 32405074431, 2026-08-20, tag v0.9.374) and that run FAILED, so the dashboard release lane has never emitted a single v* tag — the only refs in ghcr.io/askexe/exe-dashboard are the floating :main and :sha-<sha> dev refs from dashboard-image.yml. The dashboard pin is therefore a PHANTOM, not an unresolved digest, and it is deliberately left tag-only here rather than silently repointed at a :main digest, because choosing which dashboard bytes constitute a release is a release decision, not a lint fix. FAIL-CLOSED still holds and is enforced where it bites: scripts/publish-stack-release.mjs verifyServicePin() refuses to publish any tag-only app image into the customer manifest.",
|
|
11
11
|
"components": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"note": "Bug 81ca8903: was `ghcr.io/askexe/exe-erp:v0.9.312` — 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.377",
|
|
20
20
|
"env": "DASHBOARD_IMAGE_TAG",
|
|
21
21
|
"composeService": "exe-dashboard",
|
|
22
22
|
"versionLockstep": true,
|
|
@@ -110,5 +110,5 @@
|
|
|
110
110
|
},
|
|
111
111
|
"deploymentScope": "customer",
|
|
112
112
|
"highGhostStack": "0.9.9",
|
|
113
|
-
"sourceVersion": "0.9.
|
|
113
|
+
"sourceVersion": "0.9.377"
|
|
114
114
|
}
|