instar 0.24.17 → 0.24.18
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/dashboard/index.html +16 -8
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +14 -11
- package/dist/commands/server.js.map +1 -1
- package/dist/lifeline/SlackLifeline.d.ts +43 -0
- package/dist/lifeline/SlackLifeline.d.ts.map +1 -0
- package/dist/lifeline/SlackLifeline.js +227 -0
- package/dist/lifeline/SlackLifeline.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +11 -3
- package/upgrades/0.24.17.md +25 -25
- package/upgrades/0.24.18.md +35 -0
package/dashboard/index.html
CHANGED
|
@@ -3007,16 +3007,24 @@
|
|
|
3007
3007
|
<!-- Systems Tab -->
|
|
3008
3008
|
<div class="systems-container" id="systemsTab" style="display:none">
|
|
3009
3009
|
<div class="systems-main">
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
<
|
|
3010
|
+
<!-- Overview (card grid) -->
|
|
3011
|
+
<div id="systemsOverview">
|
|
3012
|
+
<div class="systems-header">
|
|
3013
|
+
<h2>Systems</h2>
|
|
3014
|
+
<button class="systems-refresh" onclick="loadSystems()">Refresh</button>
|
|
3015
|
+
</div>
|
|
3016
|
+
<div id="systemsBanner">
|
|
3017
|
+
<div style="padding:20px;color:var(--text-dim);text-align:center">Loading...</div>
|
|
3018
|
+
</div>
|
|
3019
|
+
<div id="systemsIssues"></div>
|
|
3020
|
+
<div id="systemsCapabilities"></div>
|
|
3021
|
+
<div id="systemsEvents"></div>
|
|
3013
3022
|
</div>
|
|
3014
|
-
|
|
3015
|
-
|
|
3023
|
+
<!-- Detail view (single capability) -->
|
|
3024
|
+
<div class="cap-detail-view" id="systemsDetailView">
|
|
3025
|
+
<button class="cap-detail-back" onclick="showSystemsOverview()">◀ Back to overview</button>
|
|
3026
|
+
<div id="systemsDetailContent"></div>
|
|
3016
3027
|
</div>
|
|
3017
|
-
<div id="systemsIssues"></div>
|
|
3018
|
-
<div id="systemsCapabilities"></div>
|
|
3019
|
-
<div id="systemsEvents"></div>
|
|
3020
3028
|
</div>
|
|
3021
3029
|
</div>
|
|
3022
3030
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyPH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAimCD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyPH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAimCD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAylGtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
|
package/dist/commands/server.js
CHANGED
|
@@ -1893,13 +1893,9 @@ export async function startServer(options) {
|
|
|
1893
1893
|
// Wire NotificationBatcher to Telegram and start batching
|
|
1894
1894
|
notificationBatcher.setSendFunction(async (topicId, text) => {
|
|
1895
1895
|
await telegram.sendToTopic(topicId, text);
|
|
1896
|
-
//
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
if (slackAttentionChannel) {
|
|
1900
|
-
_slackAdapter.sendToChannel(slackAttentionChannel, text).catch(() => { });
|
|
1901
|
-
}
|
|
1902
|
-
}
|
|
1896
|
+
// NOTE: Batched notifications (SUMMARY/DIGEST) are NOT mirrored to Slack.
|
|
1897
|
+
// Only IMMEDIATE notifications reach Slack (via the notify() gateway).
|
|
1898
|
+
// This prevents notification spam in the attention channel.
|
|
1903
1899
|
return { messageId: 0 };
|
|
1904
1900
|
});
|
|
1905
1901
|
notificationBatcher.start();
|
|
@@ -3100,11 +3096,18 @@ export async function startServer(options) {
|
|
|
3100
3096
|
if (!response.ok) {
|
|
3101
3097
|
throw new Error(`Reply failed: ${response.status}`);
|
|
3102
3098
|
}
|
|
3103
|
-
// Mirror standby messages to Slack
|
|
3099
|
+
// Mirror standby messages to the CORRECT Slack channel (not attention channel).
|
|
3100
|
+
// PresenceProxy fires with a Telegram topicId. We need to find the session
|
|
3101
|
+
// bound to that topic, then find the Slack channel bound to that session.
|
|
3104
3102
|
if (_slackAdapter && text.startsWith('🔭')) {
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3103
|
+
// Find which session owns this Telegram topic
|
|
3104
|
+
const sessionName = telegram?.getSessionForTopic?.(topicId);
|
|
3105
|
+
if (sessionName) {
|
|
3106
|
+
// Find the Slack channel bound to that session
|
|
3107
|
+
const slackChannelId = _slackAdapter.getChannelForSession(sessionName);
|
|
3108
|
+
if (slackChannelId) {
|
|
3109
|
+
_slackAdapter.sendToChannel(slackChannelId, text).catch(() => { });
|
|
3110
|
+
}
|
|
3108
3111
|
}
|
|
3109
3112
|
}
|
|
3110
3113
|
},
|