@rubytech/create-maxy-code 0.1.570 → 0.1.571
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/package.json +1 -1
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +6 -0
- package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +38 -13
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/telegram-channel/dist/notification.d.ts +20 -7
- package/payload/platform/services/telegram-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/telegram-channel/dist/notification.js +38 -4
- package/payload/platform/services/telegram-channel/dist/notification.js.map +1 -1
- package/payload/server/public/activity.html +5 -5
- package/payload/server/public/agents.html +4 -4
- package/payload/server/public/assets/{AdminLoginScreens-5gI137xF.js → AdminLoginScreens-CKyVm5aW.js} +1 -1
- package/payload/server/public/assets/AdminLoginScreens-CKyVm5aW.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-CKyVm5aW.js.gz +0 -0
- package/payload/server/public/assets/{AdminShell-Bfapavlp.js → AdminShell-slZzNEDR.js} +1 -1
- package/payload/server/public/assets/AdminShell-slZzNEDR.js.br +0 -0
- package/payload/server/public/assets/AdminShell-slZzNEDR.js.gz +0 -0
- package/payload/server/public/assets/{activity-DnbsmUgn.js → activity-6DhWjVwg.js} +1 -1
- package/payload/server/public/assets/activity-6DhWjVwg.js.br +0 -0
- package/payload/server/public/assets/activity-6DhWjVwg.js.gz +0 -0
- package/payload/server/public/assets/{admin-BXIv0_oj.js → admin-BB8DoIb_.js} +1 -1
- package/payload/server/public/assets/admin-BB8DoIb_.js.br +0 -0
- package/payload/server/public/assets/admin-BB8DoIb_.js.gz +0 -0
- package/payload/server/public/assets/{agents-Dl2wOcpj.js → agents-D-28pUk7.js} +1 -1
- package/payload/server/public/assets/agents-D-28pUk7.js.br +0 -0
- package/payload/server/public/assets/agents-D-28pUk7.js.gz +0 -0
- package/payload/server/public/assets/{browser-D-Uc9ewO.js → browser-BGJPx931.js} +1 -1
- package/payload/server/public/assets/browser-BGJPx931.js.br +0 -0
- package/payload/server/public/assets/browser-BGJPx931.js.gz +0 -0
- package/payload/server/public/assets/{calendar-Cu3O6Bay.js → calendar-CP7u15G9.js} +1 -1
- package/payload/server/public/assets/calendar-CP7u15G9.js.br +0 -0
- package/payload/server/public/assets/calendar-CP7u15G9.js.gz +0 -0
- package/payload/server/public/assets/chat-C0wgXTz3.js +1 -0
- package/payload/server/public/assets/chat-C0wgXTz3.js.br +0 -0
- package/payload/server/public/assets/chat-C0wgXTz3.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-CKe1u6eC.js +1 -0
- package/payload/server/public/assets/chevron-left-CKe1u6eC.js.br +0 -0
- package/payload/server/public/assets/clock-D8MegkDy.js +1 -0
- package/payload/server/public/assets/clock-D8MegkDy.js.br +0 -0
- package/payload/server/public/assets/{copy-DPBVV8KZ.js → copy-Cu819JFC.js} +1 -1
- package/payload/server/public/assets/copy-Cu819JFC.js.br +0 -0
- package/payload/server/public/assets/copy-Cu819JFC.js.gz +0 -0
- package/payload/server/public/assets/data-B7W5Ocvt.js +1 -0
- package/payload/server/public/assets/data-B7W5Ocvt.js.br +0 -0
- package/payload/server/public/assets/data-B7W5Ocvt.js.gz +0 -0
- package/payload/server/public/assets/{file-text-Dn82O6ke.js → file-text-BoiZDy84.js} +1 -1
- package/payload/server/public/assets/file-text-BoiZDy84.js.br +0 -0
- package/payload/server/public/assets/file-text-BoiZDy84.js.gz +0 -0
- package/payload/server/public/assets/{graph-D2J7a7Ll.js → graph-Dr6uIMgA.js} +1 -1
- package/payload/server/public/assets/graph-Dr6uIMgA.js.br +0 -0
- package/payload/server/public/assets/graph-Dr6uIMgA.js.gz +0 -0
- package/payload/server/public/assets/{graph-labels-D3gkY2IH.js → graph-labels-9y5-8Rc_.js} +1 -1
- package/payload/server/public/assets/graph-labels-9y5-8Rc_.js.br +0 -0
- package/payload/server/public/assets/graph-labels-9y5-8Rc_.js.gz +0 -0
- package/payload/server/public/assets/{operator-Bz_yj1im.js → operator-Cn5P5yqu.js} +1 -1
- package/payload/server/public/assets/operator-Cn5P5yqu.js.br +0 -0
- package/payload/server/public/assets/operator-Cn5P5yqu.js.gz +0 -0
- package/payload/server/public/assets/{page-D6u2xYh7.js → page-DqnWu9Aj.js} +1 -1
- package/payload/server/public/assets/page-DqnWu9Aj.js.br +0 -0
- package/payload/server/public/assets/page-DqnWu9Aj.js.gz +0 -0
- package/payload/server/public/assets/{page-mH4nyQ75.js → page-VTcDQ8qS.js} +1 -1
- package/payload/server/public/assets/page-VTcDQ8qS.js.br +0 -0
- package/payload/server/public/assets/page-VTcDQ8qS.js.gz +0 -0
- package/payload/server/public/assets/play-Dp6K3szP.js +1 -0
- package/payload/server/public/assets/play-Dp6K3szP.js.br +0 -0
- package/payload/server/public/assets/play-Dp6K3szP.js.gz +0 -0
- package/payload/server/public/assets/{public-CtoYVjPR.js → public-HlWIQCkl.js} +1 -1
- package/payload/server/public/assets/public-HlWIQCkl.js.br +0 -0
- package/payload/server/public/assets/public-HlWIQCkl.js.gz +0 -0
- package/payload/server/public/assets/{rotate-ccw-BXoIghE3.js → rotate-ccw-kpEqIj4T.js} +1 -1
- package/payload/server/public/assets/rotate-ccw-kpEqIj4T.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-kpEqIj4T.js.gz +0 -0
- package/payload/server/public/assets/{routines-DXleYpDv.js → routines-CvDzjwtZ.js} +1 -1
- package/payload/server/public/assets/routines-CvDzjwtZ.js.br +0 -0
- package/payload/server/public/assets/routines-CvDzjwtZ.js.gz +0 -0
- package/payload/server/public/assets/{skills-CMl38MKH.js → skills-Bom76JQv.js} +1 -1
- package/payload/server/public/assets/skills-Bom76JQv.js.br +0 -0
- package/payload/server/public/assets/skills-Bom76JQv.js.gz +0 -0
- package/payload/server/public/assets/{tasks-Cshaf0Md.js → tasks-DCiTDQ-r.js} +1 -1
- package/payload/server/public/assets/tasks-DCiTDQ-r.js.br +0 -0
- package/payload/server/public/assets/tasks-DCiTDQ-r.js.gz +0 -0
- package/payload/server/public/assets/{triangle-alert-CS-NXr_9.js → triangle-alert-DBSoNN4T.js} +1 -1
- package/payload/server/public/assets/triangle-alert-DBSoNN4T.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-DBSoNN4T.js.gz +0 -0
- package/payload/server/public/assets/{useCopyFeedback-pKLfQJNG.js → useCopyFeedback-Do4uNxoZ.js} +1 -1
- package/payload/server/public/assets/useCopyFeedback-Do4uNxoZ.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-Do4uNxoZ.js.gz +0 -0
- package/payload/server/public/assets/{useMediaQuery-BHFn0-S9.css → useMediaQuery-BbG7Ar0P.css} +1 -1
- package/payload/server/public/assets/useMediaQuery-BbG7Ar0P.css.br +0 -0
- package/payload/server/public/assets/{useMediaQuery-BHFn0-S9.css.gz → useMediaQuery-BbG7Ar0P.css.gz} +0 -0
- package/payload/server/public/assets/useVoiceRecorder-BzezRxgT.js +2 -0
- package/payload/server/public/assets/useVoiceRecorder-BzezRxgT.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-BzezRxgT.js.gz +0 -0
- package/payload/server/public/assets/{wrench-czES9Rdy.js → wrench-BmLFQPJb.js} +1 -1
- package/payload/server/public/assets/wrench-BmLFQPJb.js.br +0 -0
- package/payload/server/public/assets/wrench-BmLFQPJb.js.gz +0 -0
- package/payload/server/public/browser.html +4 -4
- package/payload/server/public/calendar.html +7 -7
- package/payload/server/public/chat.html +13 -13
- package/payload/server/public/data.html +11 -11
- package/payload/server/public/graph.html +9 -9
- package/payload/server/public/index.html +13 -13
- package/payload/server/public/operator.html +14 -14
- package/payload/server/public/public.html +13 -13
- package/payload/server/public/routines.html +7 -7
- package/payload/server/public/skills.html +5 -5
- package/payload/server/public/tasks.html +6 -6
- package/payload/server/server.js +739 -469
- package/payload/server/public/assets/AdminLoginScreens-5gI137xF.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-5gI137xF.js.gz +0 -0
- package/payload/server/public/assets/AdminShell-Bfapavlp.js.br +0 -0
- package/payload/server/public/assets/AdminShell-Bfapavlp.js.gz +0 -0
- package/payload/server/public/assets/activity-DnbsmUgn.js.br +0 -0
- package/payload/server/public/assets/activity-DnbsmUgn.js.gz +0 -0
- package/payload/server/public/assets/admin-BXIv0_oj.js.br +0 -0
- package/payload/server/public/assets/admin-BXIv0_oj.js.gz +0 -0
- package/payload/server/public/assets/agents-Dl2wOcpj.js.br +0 -0
- package/payload/server/public/assets/agents-Dl2wOcpj.js.gz +0 -0
- package/payload/server/public/assets/browser-D-Uc9ewO.js.br +0 -0
- package/payload/server/public/assets/browser-D-Uc9ewO.js.gz +0 -0
- package/payload/server/public/assets/calendar-Cu3O6Bay.js.br +0 -0
- package/payload/server/public/assets/calendar-Cu3O6Bay.js.gz +0 -0
- package/payload/server/public/assets/chat-Bso94e-f.js +0 -1
- package/payload/server/public/assets/chat-Bso94e-f.js.br +0 -0
- package/payload/server/public/assets/chat-Bso94e-f.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-CDwfR9V-.js +0 -1
- package/payload/server/public/assets/chevron-left-CDwfR9V-.js.br +0 -0
- package/payload/server/public/assets/clock-DDVrNLt9.js +0 -1
- package/payload/server/public/assets/clock-DDVrNLt9.js.br +0 -0
- package/payload/server/public/assets/clock-DDVrNLt9.js.gz +0 -0
- package/payload/server/public/assets/copy-DPBVV8KZ.js.br +0 -0
- package/payload/server/public/assets/copy-DPBVV8KZ.js.gz +0 -0
- package/payload/server/public/assets/data-Dei8n2EX.js +0 -1
- package/payload/server/public/assets/data-Dei8n2EX.js.br +0 -0
- package/payload/server/public/assets/data-Dei8n2EX.js.gz +0 -0
- package/payload/server/public/assets/file-text-Dn82O6ke.js.br +0 -0
- package/payload/server/public/assets/file-text-Dn82O6ke.js.gz +0 -0
- package/payload/server/public/assets/graph-D2J7a7Ll.js.br +0 -0
- package/payload/server/public/assets/graph-D2J7a7Ll.js.gz +0 -0
- package/payload/server/public/assets/graph-labels-D3gkY2IH.js.br +0 -0
- package/payload/server/public/assets/graph-labels-D3gkY2IH.js.gz +0 -0
- package/payload/server/public/assets/operator-Bz_yj1im.js.br +0 -0
- package/payload/server/public/assets/operator-Bz_yj1im.js.gz +0 -0
- package/payload/server/public/assets/page-D6u2xYh7.js.br +0 -0
- package/payload/server/public/assets/page-D6u2xYh7.js.gz +0 -0
- package/payload/server/public/assets/page-mH4nyQ75.js.br +0 -0
- package/payload/server/public/assets/page-mH4nyQ75.js.gz +0 -0
- package/payload/server/public/assets/play-ByuChQJJ.js +0 -1
- package/payload/server/public/assets/play-ByuChQJJ.js.br +0 -0
- package/payload/server/public/assets/play-ByuChQJJ.js.gz +0 -0
- package/payload/server/public/assets/public-CtoYVjPR.js.br +0 -0
- package/payload/server/public/assets/public-CtoYVjPR.js.gz +0 -0
- package/payload/server/public/assets/rotate-ccw-BXoIghE3.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-BXoIghE3.js.gz +0 -0
- package/payload/server/public/assets/routines-DXleYpDv.js.br +0 -0
- package/payload/server/public/assets/routines-DXleYpDv.js.gz +0 -0
- package/payload/server/public/assets/skills-CMl38MKH.js.br +0 -0
- package/payload/server/public/assets/skills-CMl38MKH.js.gz +0 -0
- package/payload/server/public/assets/tasks-Cshaf0Md.js.br +0 -0
- package/payload/server/public/assets/tasks-Cshaf0Md.js.gz +0 -0
- package/payload/server/public/assets/triangle-alert-CS-NXr_9.js.br +0 -3
- package/payload/server/public/assets/triangle-alert-CS-NXr_9.js.gz +0 -0
- package/payload/server/public/assets/useCopyFeedback-pKLfQJNG.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-pKLfQJNG.js.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-BHFn0-S9.css.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-EgO1GmIg.js +0 -2
- package/payload/server/public/assets/useVoiceRecorder-EgO1GmIg.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-EgO1GmIg.js.gz +0 -0
- package/payload/server/public/assets/wrench-czES9Rdy.js.br +0 -0
- package/payload/server/public/assets/wrench-czES9Rdy.js.gz +0 -0
- /package/payload/server/public/assets/{useMediaQuery-oDCasnxD.js → useMediaQuery-6vKHR1CS.js} +0 -0
- /package/payload/server/public/assets/{useMediaQuery-oDCasnxD.js.br → useMediaQuery-6vKHR1CS.js.br} +0 -0
- /package/payload/server/public/assets/{useMediaQuery-oDCasnxD.js.gz → useMediaQuery-6vKHR1CS.js.gz} +0 -0
package/package.json
CHANGED
|
@@ -9,6 +9,12 @@ Invoked by the admin agent directly.
|
|
|
9
9
|
|
|
10
10
|
This is the platform's release timeline, newest first. Each entry shows the date it shipped and the version it shipped in, so you can tell the operator how current their install is. To compare, read the installed version from `capabilities-here` and match it against the versions below. Keep answers high level and in plain English; this is a summary, not a full commit log.
|
|
11
11
|
|
|
12
|
+
## 2026-08-06 (0.1.571)
|
|
13
|
+
|
|
14
|
+
- Telegram no longer drops inbound messages that are not plain text: voice notes are transcribed into the turn text, and a live location renders as a single track on the map that fits its own viewport.
|
|
15
|
+
- The Telegram media filename now stays inside its own directory, closing the outbound-guard redaction gap.
|
|
16
|
+
- The Public spawn tool lockdown was verified against real evidence and archived, and a stray malformed-edit message is now kept inside its own share.
|
|
17
|
+
|
|
12
18
|
## 2026-08-06 (0.1.570)
|
|
13
19
|
|
|
14
20
|
- Reading a PDF now injects the text layer, so values copied from a PDF are not transcribed by eye any more.
|
|
@@ -278,7 +278,7 @@ Structured `isLocation` and `locationText` fields are set alongside the body but
|
|
|
278
278
|
|
|
279
279
|
The wire carries no URL. `LiveLocationMessage` is ten fields, all coordinates and motion data; the tappable map on a handset is that client drawing the coordinates. There is nothing to store or forward but the numbers. The end of a share is not observable either, for the same reason no update is: nothing after the first message reaches a companion seat.
|
|
280
280
|
|
|
281
|
-
**Operator reader.** `platform/ui/app/whatsapp/location-map.tsx` draws an OpenStreetMap tile block on any bubble whose whole trimmed body parses as a coordinate. Attribution is mandatory and load-bearing, not decoration. Tile policy, the census
|
|
281
|
+
**Operator reader.** `platform/ui/app/whatsapp/location-map.tsx` draws an OpenStreetMap tile block on any bubble whose whole trimmed body parses as a coordinate. Attribution is mandatory and load-bearing, not decoration. Tile policy, the census alarm (`op=location-census-alarm`) and its conditions live in `.docs/whatsapp-location-map.md` in the source repo. That file is a platform-developer note: it ships to no install and is not reachable through `plugin-read`, which is why the operator-facing facts are stated here rather than linked.
|
|
282
282
|
|
|
283
283
|
**Outbound is absent.** The delivery surface is the turn's own text plus `SendUserFile`; no code path sends a `locationMessage`. Putting a pin into a chat is unbuilt work, not a setting.
|
|
284
284
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1122,11 +1122,12 @@ export function buildHttpApp(deps) {
|
|
|
1122
1122
|
const initialMessage = typeof body.initialMessage === 'string' && body.initialMessage.length > 0
|
|
1123
1123
|
? body.initialMessage
|
|
1124
1124
|
: undefined;
|
|
1125
|
-
// Task 1483 — a WhatsApp passive account-manager spawn
|
|
1125
|
+
// Task 1483 — a WhatsApp passive account-manager spawn selects the
|
|
1126
1126
|
// work-create-only, no-reply surface; `targetAccountId` (shape-gated like an
|
|
1127
|
-
// account dir) scopes the spawn to the sub-account.
|
|
1128
|
-
//
|
|
1129
|
-
|
|
1127
|
+
// account dir) scopes the spawn to the sub-account. Task 2334 — the flag
|
|
1128
|
+
// itself is read once, by `parseSpawnRole` above, and reaches every site in
|
|
1129
|
+
// this handler as `agentRole === 'passive'`. A second read here would be a
|
|
1130
|
+
// second definition of the same invariant.
|
|
1130
1131
|
const targetAccountId = typeof body.targetAccountId === 'string' && /^[A-Za-z0-9_-]{1,64}$/.test(body.targetAccountId)
|
|
1131
1132
|
? body.targetAccountId
|
|
1132
1133
|
: undefined;
|
|
@@ -1225,7 +1226,15 @@ export function buildHttpApp(deps) {
|
|
|
1225
1226
|
? `array(${body.dormantPlugins.length})`
|
|
1226
1227
|
: body.dormantPlugins == null ? 'absent' : typeof body.dormantPlugins;
|
|
1227
1228
|
const initialMessageBytes = typeof body.initialMessage === 'string' ? Buffer.byteLength(body.initialMessage, 'utf8') : 0;
|
|
1228
|
-
|
|
1229
|
+
// Task 2334 — `passive` and `specialist` sit beside `role=` because the three
|
|
1230
|
+
// together are what the boundary parse resolves a persona from. Without them
|
|
1231
|
+
// the line could not answer whether a passive-flagged specialist ever arrived,
|
|
1232
|
+
// which is the question this task had to trace through the issuers instead.
|
|
1233
|
+
// `body.passive === true` is the WIRE shape, deliberately not the resolved
|
|
1234
|
+
// role: this line reports what was sent, and `role=` already reports what it
|
|
1235
|
+
// resolved to. `specialist` is the shape-gated value, so a body whose field
|
|
1236
|
+
// failed the slug pattern reports `absent` — what every downstream site sees.
|
|
1237
|
+
deps.logger(`spawn-request senderId=${senderId || 'missing'} userId=${userId ? userId.slice(0, 8) : 'absent'} role=${role || 'missing'} passive=${body.passive === true} specialist=${specialist ?? 'absent'} channel=${channel || 'missing'} permissionMode=${typeof body.permissionMode === 'string' ? body.permissionMode : 'default'} channels=${Array.isArray(body.channels) ? body.channels.length : 0} attachmentDir=${typeof body.attachmentDir === 'string' ? 'set' : 'absent'} aboutOwner=${aboutOwnerShape} dormantPlugins=${dormantPluginsShape} tunnelUrl=${typeof body.tunnelUrl === 'string' ? 'set' : (body.tunnelUrl === null ? 'null' : 'absent')} initialMessageBytes=${initialMessageBytes}`);
|
|
1229
1238
|
if (!senderId || parsedRole === null || agentRole === null || !CHANNELS.includes(channel)) {
|
|
1230
1239
|
// Task 2325 — emitted only when the ROLE is what failed. The guard also
|
|
1231
1240
|
// covers a missing senderId and a bad channel, and naming those
|
|
@@ -1264,10 +1273,13 @@ export function buildHttpApp(deps) {
|
|
|
1264
1273
|
}
|
|
1265
1274
|
// Task 1489 — a passive intake spawn rides role:'public' on this path but is
|
|
1266
1275
|
// a trusted, sub-account-bound account manager, not an anonymous visitor. It
|
|
1267
|
-
// is exempt from the anonymous-visitor limiter:
|
|
1268
|
-
// requirement burst
|
|
1269
|
-
// (or being throttled by) the shared per-sender/global anonymous
|
|
1270
|
-
|
|
1276
|
+
// is exempt from the anonymous-visitor limiter: keeping a manager's
|
|
1277
|
+
// requirement burst out of the limiter stops it being throttled, and stops it
|
|
1278
|
+
// consuming (or being throttled by) the shared per-sender/global anonymous
|
|
1279
|
+
// budget. Task 2334 — the exemption is expressed as `agentRole === 'public'`,
|
|
1280
|
+
// which is exactly "the wire role was public and the passive resolution did
|
|
1281
|
+
// not fire", rather than re-deriving that from the raw flag.
|
|
1282
|
+
if (agentRole === 'public') {
|
|
1271
1283
|
const decision = deps.publicSpawnLimiter.admit(senderId, channel);
|
|
1272
1284
|
if (!decision.admitted) {
|
|
1273
1285
|
deps.logger(`spawn-rate-limited senderId=${senderId} channel=${channel} scope=${decision.scope} window=${decision.windowMs} cap=${decision.cap}`);
|
|
@@ -1328,7 +1340,11 @@ export function buildHttpApp(deps) {
|
|
|
1328
1340
|
// assignment so the task always lands on a real admin. Undefined only when the
|
|
1329
1341
|
// install has no live house admin at all (genuine drift — no edge is written).
|
|
1330
1342
|
let assignedAdminUserId;
|
|
1331
|
-
|
|
1343
|
+
// Task 2334 — the three conjuncts this replaced (passive + role:'public' +
|
|
1344
|
+
// no specialist) were the resolution rule restated. `agentRole === 'passive'`
|
|
1345
|
+
// IS that rule, so the transcript scope can no longer diverge from the
|
|
1346
|
+
// work-MCP graph scope, which reads the same resolved role in the spawner.
|
|
1347
|
+
if (agentRole === 'passive' && targetAccountId) {
|
|
1332
1348
|
const accountsRoot = join(dirname(deps.platformRoot), 'data', 'accounts');
|
|
1333
1349
|
const accountJsonPath = join(accountsRoot, targetAccountId, 'account.json');
|
|
1334
1350
|
if (!existsSync(accountJsonPath)) {
|
|
@@ -1401,7 +1417,11 @@ export function buildHttpApp(deps) {
|
|
|
1401
1417
|
// notify so its work-create is not logged as anonymous `role=public`
|
|
1402
1418
|
// activity and its exit does not emit a spurious webchat no-record. It
|
|
1403
1419
|
// gets the one-shot auto-close instead.
|
|
1404
|
-
|
|
1420
|
+
//
|
|
1421
|
+
// Task 2334 — the resolved role. For a wire role of 'admin' this now
|
|
1422
|
+
// enters the branch where the raw flag skipped it; both callees return
|
|
1423
|
+
// immediately on `role !== 'public'` (:847, :877), so nothing changes.
|
|
1424
|
+
if (agentRole !== 'passive') {
|
|
1405
1425
|
// Task 2271 — `spawnCwd` here is the re-scoped value, so the audit
|
|
1406
1426
|
// follows a public-agent session into its own account's slug.
|
|
1407
1427
|
attachPublicAudit(deps, tracker.sessionId, parsedRole.role, spawnCwd);
|
|
@@ -1418,8 +1438,13 @@ export function buildHttpApp(deps) {
|
|
|
1418
1438
|
}
|
|
1419
1439
|
}
|
|
1420
1440
|
attachSpecialistEndTurnAutoArchive(deps, tracker.sessionId, tracker.specialist);
|
|
1421
|
-
|
|
1422
|
-
|
|
1441
|
+
// Task 2334 — the RESOLVED role, not the raw flag. `parseSpawnRole`
|
|
1442
|
+
// already applied the Task 1483 invariant (a passive spawn rides
|
|
1443
|
+
// role:'public' and is never a specialist); reading the raw boolean
|
|
1444
|
+
// here re-derived it, and got it wrong for a passive flag on an admin
|
|
1445
|
+
// spawn, which the invariant says to ignore and this attached anyway.
|
|
1446
|
+
attachPassiveEndTurnAutoClose(deps, tracker.sessionId, agentRole === 'passive');
|
|
1447
|
+
attachPassiveSpawnToolsCensus(deps, spawnCwd, tracker.sessionId, agentRole === 'passive', Boolean(assignedAdminUserId));
|
|
1423
1448
|
},
|
|
1424
1449
|
onUrlCaptured: notifyUrlCaptured,
|
|
1425
1450
|
tunnelUrlOverride,
|