instar 0.26.9 → 0.26.10

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "0.26.9",
3
+ "version": "0.26.10",
4
4
  "description": "Persistent autonomy infrastructure for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-04-03T19:47:59.436Z",
5
- "instarVersion": "0.26.9",
4
+ "generatedAt": "2026-04-03T20:10:59.894Z",
5
+ "instarVersion": "0.26.10",
6
6
  "entryCount": 182,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,27 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- bump: patch -->
4
+
5
+ ## What Changed
6
+
7
+ Fixed Slack file/snippet download reliability. Three root causes addressed:
8
+
9
+ 1. **Auth header dropped on redirects**: Node.js `fetch` strips the `Authorization` header on cross-origin redirects (per spec). Slack's `url_private` URLs can redirect to CDN subdomains, causing the auth to be lost and an HTML login page returned instead of file content. FileHandler now follows redirects manually, preserving the auth header at each hop (capped at 5 redirects).
10
+
11
+ 2. **Message attachments ignored**: Only `message.files[]` was processed. Link unfurls, rich previews, and integration content (Fathom transcripts, GitHub PRs, etc.) arrive in `message.attachments[]` and were silently dropped. Now extracted and inlined into message text.
12
+
13
+ 3. **Silent error swallowing**: `files.info` API failures were caught and discarded with no logging. Now logs the actual error, making it possible to diagnose missing scopes or API issues.
14
+
15
+ Also prefers `url_private_download` over `url_private` when available — some file types have a dedicated download URL that works more reliably.
16
+
17
+ ## What to Tell Your User
18
+
19
+ - **File and snippet sharing**: "Sharing files and snippets in Slack should work much more reliably now. Previously some attachments came through as blank or garbled HTML — that's been fixed. Link previews from external services like Fathom or GitHub are now included in the message too."
20
+
21
+ ## Summary of New Capabilities
22
+
23
+ | Capability | How to Use |
24
+ |-----------|-----------|
25
+ | Reliable snippet downloads | Automatic — auth header preserved across redirects |
26
+ | Link unfurl content | Automatic — attachment text extracted from unfurled links |
27
+ | Download error logging | Automatic — files.info failures now logged for debugging |
@@ -1,25 +1,27 @@
1
- # Upgrade Guide — v0.26.8
1
+ # Upgrade Guide — vNEXT
2
2
 
3
3
  <!-- bump: patch -->
4
- <!-- Valid values: patch, minor, major -->
5
- <!-- patch = bug fixes, refactors, test additions, doc updates -->
6
- <!-- minor = new features, new APIs, new capabilities (backwards-compatible) -->
7
- <!-- major = breaking changes to existing APIs or behavior -->
8
4
 
9
5
  ## What Changed
10
6
 
11
- **Fix Slack session resume** — The resume heartbeat (60s interval) was saving Slack channel resume UUIDs to the wrong file. It wrote to `topic-resume-map.json` using synthetic numeric IDs, but the Slack message handler reads from `slack-channel-resume-map.json` using real channel IDs. The heartbeat now writes to both files, ensuring that when a Slack session dies, the next message in that channel correctly resumes the previous session.
7
+ Fixed Slack file/snippet download reliability. Three root causes addressed:
12
8
 
13
- **Fix cross-topic UUID contamination in proactive saves** When multiple sessions ran concurrently, the proactive UUID save (fired 8s after session spawn) could pick up the wrong session's UUID via an mtime-based fallback. This caused sessions to resume another topic's conversation entirely. All 4 proactive save locations (telegram-forward, secret-drop, spawnSessionForTopic, Slack heartbeat) now exclusively use the authoritative `claudeSessionId` from hook events. The heartbeat (60s) handles any sessions where hooks haven't fired yet, with a proper multi-session guard.
9
+ 1. **Auth header dropped on redirects**: Node.js `fetch` strips the `Authorization` header on cross-origin redirects (per spec). Slack's `url_private` URLs can redirect to CDN subdomains, causing the auth to be lost and an HTML login page returned instead of file content. FileHandler now follows redirects manually, preserving the auth header at each hop (capped at 5 redirects).
14
10
 
15
- Also fixed a stale unit test for `findUuidForSession()` and added a public `jsonlExistsPublic()` method to `TopicResumeMap` for external UUID validation.
11
+ 2. **Message attachments ignored**: Only `message.files[]` was processed. Link unfurls, rich previews, and integration content (Fathom transcripts, GitHub PRs, etc.) arrive in `message.attachments[]` and were silently dropped. Now extracted and inlined into message text.
12
+
13
+ 3. **Silent error swallowing**: `files.info` API failures were caught and discarded with no logging. Now logs the actual error, making it possible to diagnose missing scopes or API issues.
14
+
15
+ Also prefers `url_private_download` over `url_private` when available — some file types have a dedicated download URL that works more reliably.
16
16
 
17
17
  ## What to Tell Your User
18
18
 
19
- - **Session resume reliability**: "Sessions now reliably resume the correct conversation across all messaging integrations (Telegram, Slack). A bug was causing sessions to occasionally resume a completely different topic's conversation when multiple topics were active at the same time."
19
+ - **File and snippet sharing**: "Sharing files and snippets in Slack should work much more reliably now. Previously some attachments came through as blank or garbled HTML that's been fixed. Link previews from external services like Fathom or GitHub are now included in the message too."
20
20
 
21
21
  ## Summary of New Capabilities
22
22
 
23
23
  | Capability | How to Use |
24
24
  |-----------|-----------|
25
- | Reliable session resume (all integrations) | Automatic — sessions resume correctly even with concurrent topics |
25
+ | Reliable snippet downloads | Automatic — auth header preserved across redirects |
26
+ | Link unfurl content | Automatic — attachment text extracted from unfurled links |
27
+ | Download error logging | Automatic — files.info failures now logged for debugging |
package/upgrades/NEXT.md DELETED
@@ -1,35 +0,0 @@
1
- # Upgrade Guide — vNEXT
2
-
3
- <!-- bump: patch -->
4
- <!-- Valid values: patch, minor, major -->
5
- <!-- patch = bug fixes, refactors, test additions, doc updates -->
6
- <!-- minor = new features, new APIs, new capabilities (backwards-compatible) -->
7
- <!-- major = breaking changes to existing APIs or behavior -->
8
-
9
- ## What Changed
10
-
11
- <!-- Describe what changed technically. What new features, APIs, behavioral changes? -->
12
- <!-- Write this for the AGENT — they need to understand the system deeply. -->
13
-
14
- ## What to Tell Your User
15
-
16
- <!-- Write talking points the agent should relay to their user. -->
17
- <!-- This should be warm, conversational, user-facing — not a changelog. -->
18
- <!-- Focus on what THEY can now do, not internal plumbing. -->
19
- <!-- -->
20
- <!-- PROHIBITED in this section (will fail validation): -->
21
- <!-- camelCase config keys: silentReject, maxRetries, telegramNotify -->
22
- <!-- Inline code backtick references like silentReject: false -->
23
- <!-- Fenced code blocks -->
24
- <!-- Instructions to edit files or run commands -->
25
- <!-- -->
26
- <!-- CORRECT style: "I can turn that on for you" not "set X to false" -->
27
- <!-- The agent relays this to their user — keep it human. -->
28
-
29
- - **[Feature name]**: "[Brief, friendly description of what this means for the user]"
30
-
31
- ## Summary of New Capabilities
32
-
33
- | Capability | How to Use |
34
- |-----------|-----------|
35
- | [Capability] | [Endpoint, command, or "automatic"] |