instar 0.7.54 → 0.8.1

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/README.md CHANGED
@@ -178,8 +178,8 @@ Anthropic's policy: OAuth tokens are for Claude Code and claude.ai only. Project
178
178
  | | OpenClaw | Instar |
179
179
  |---|---|---|
180
180
  | **What it is** | AI assistant framework | Autonomy infrastructure |
181
- | **Runtime** | Pi SDK (API wrapper) | Claude Code (full dev environment) |
182
- | **Sessions** | Single gateway | Multiple parallel Claude Code instances |
181
+ | **Runtime** | Pi SDK (embedded agent) | Claude Code (full dev environment) |
182
+ | **Sessions** | Multi-session gateway | Multiple parallel Claude Code instances |
183
183
  | **Identity** | SOUL.md (file) | Multi-file + behavioral hooks + CLAUDE.md instructions |
184
184
  | **Memory** | Hybrid vector search | Relationship-centric (cross-platform, significance) |
185
185
  | **Messaging** | 20+ channels | Telegram (Slack/Discord planned) |
@@ -187,7 +187,7 @@ Anthropic's policy: OAuth tokens are for Claude Code and claude.ai only. Project
187
187
  | **Device apps** | macOS, Android, iOS (preview) | -- |
188
188
  | **Sandbox** | Docker 3×3 matrix | Dangerous command guards |
189
189
  | **Self-evolution** | Workspace file updates | Full infrastructure self-modification |
190
- | **ToS status** | OAuth extraction (restricted) | Spawns real Claude Code (compliant) |
190
+ | **ToS status** | API keys + OAuth (OAuth path restricted) | Spawns real Claude Code (compliant) |
191
191
 
192
192
  **OpenClaw optimizes for ubiquity** -- AI across every messaging platform. **Instar optimizes for autonomy** -- an agent that runs, remembers, grows, and evolves.
193
193
 
@@ -37,7 +37,6 @@ import { AccountSwitcher } from '../monitoring/AccountSwitcher.js';
37
37
  import { QuotaNotifier } from '../monitoring/QuotaNotifier.js';
38
38
  import { classifySessionDeath } from '../monitoring/QuotaExhaustionDetector.js';
39
39
  import { SessionWatchdog } from '../monitoring/SessionWatchdog.js';
40
- import { installAutoStart } from './setup.js';
41
40
  /**
42
41
  * Check if autostart is installed for this project.
43
42
  * Extracted from the CLI `autostart status` handler for programmatic use.
@@ -598,12 +597,16 @@ export async function startServer(options) {
598
597
  scheduler.start();
599
598
  console.log(pc.green(' Scheduler started'));
600
599
  }
601
- // Set up Telegram if configured (skip if lifeline owns the connection)
600
+ // Set up Telegram if configured
601
+ // When --no-telegram is set (lifeline owns polling), create adapter in send-only mode
602
+ // so the server can still relay replies via /telegram/reply/:topicId
602
603
  let telegram;
603
604
  const telegramConfig = config.messaging.find(m => m.type === 'telegram' && m.enabled);
604
605
  const skipTelegram = options.telegram === false; // --no-telegram sets telegram: false
605
606
  if (skipTelegram && telegramConfig) {
606
- console.log(pc.dim(' Telegram polling skipped (--no-telegram flag)'));
607
+ // Send-only mode: no polling, but sendToTopic() works for session replies
608
+ telegram = new TelegramAdapter(telegramConfig.config, config.stateDir);
609
+ console.log(pc.green(' Telegram send-only mode (lifeline owns polling)'));
607
610
  }
608
611
  if (telegramConfig && !skipTelegram) {
609
612
  telegram = new TelegramAdapter(telegramConfig.config, config.stateDir);
@@ -847,6 +850,7 @@ export async function startServer(options) {
847
850
  const hasTelegram = !!telegram;
848
851
  const autostartInstalled = isAutostartInstalled(config.projectName);
849
852
  if (!autostartInstalled) {
853
+ const { installAutoStart } = await import('./setup.js');
850
854
  const installed = installAutoStart(config.projectName, config.projectDir, hasTelegram);
851
855
  if (installed) {
852
856
  console.log(pc.green(` Auto-start self-healed: installed ${process.platform === 'darwin' ? 'LaunchAgent' : 'systemd service'}`));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "0.7.54",
3
+ "version": "0.8.1",
4
4
  "description": "Persistent autonomy infrastructure for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",