Skip to content

release: Teleton Agent v0.10.0#26

Merged
TONresistor merged 59 commits into
mainfrom
dev
Jul 11, 2026
Merged

release: Teleton Agent v0.10.0#26
TONresistor merged 59 commits into
mainfrom
dev

Conversation

@TONresistor

Copy link
Copy Markdown
Owner

Summary

  • release Teleton Agent 0.10.0 with GPT-5.6 and validated Grok Build support
  • publish Plugin SDK 2.1 with protected TON, inline, Highload, storage and approval capabilities
  • ship the security, Telegram, provider, runtime and maintainability hardening accumulated since v0.9.0

Breaking changes

  • Node.js now requires ^22.22.2, ^24.15.0, or >=26.0.0
  • the obsolete Deals module and its CLI/WebUI surfaces are removed

Verification

  • 95 test files / 1,746 tests
  • TypeScript typecheck
  • runtime contract check
  • SDK package build and contract verification
  • npm lockfile dry run
  • changelog link and diff checks

- drop unused MemoryDatabase methods (getStats/vacuum/optimize/getVectorDimensions/transaction)
- drop unused loadSessionStore/saveSessionStore/SessionStore and their tests
- delete orphan migration SQL (1.5.0/1.6.0) never loaded by runMigrations
- extract rowToUser/rowToChat in memory/feed (was inlined 4x/2x)
- add classifyMedia() in bridge-interface, used by both bridges
- extract cachePeer() in user bridge (eviction was inlined twice)
runModifyingHook/runObservingHook were ~90% duplicate. Extract canRun()
guard and runOne() (timeout + catch policy); drop unused withTimeout log param.
The 15 telegram tool index files re-exported every tool/executor by name,
but nothing consumes them: the registry aggregates via the tools[] arrays and
the two external callers import the executor file directly. Keep only the
tools[] arrays. Removes the export*/export{} glue (~125 lines).
registry.execute() already maps thrown errors to {success:false,error} and logs
them, so the withToolErrors wrapper was a third error-mapping layer. Unwrap the
10 executors that used it and delete wrap.ts; behavior is unchanged (these
executors run only through registry.execute).
- extract prepareJettonTransfer() shared by sendJetton (broadcast) and
  createJettonTransfer (offline sign), which diverged only on delivery (~120 LOC)
- extract invalidateOnTransientHttpError() for the 429/5xx node-cache drop
  repeated in 4 send/get paths
- drop the 85-line dead type re-export barrel in sdk/index.ts; the one consumer
  (plugin-loader) imports PluginSDK directly from @teleton-agent/sdk

Behavior unchanged; full SDK suite (491 tests) green. Public DexSDK pass-through
methods kept (declared API surface for plugins).
The dm-only/group-only tool scopes were collapsed to access-level 'all' and had
no runtime effect, so finance tools marked dm-only (send gift, transfer
collectible) were reachable in groups (group_policy defaults to 'open').
checkAccess now gates on the tool's declared channel scope, independent of the
DB-overridable access level. Adds coverage; full suite (1510 tests) green.
Extract recreateForModeChange, installHookRunner, emitAgentStartHook, and
installMessagePipeline from the ~250-line startAgent into private methods
(now ~150). Pure reorganization; full suite (1510 tests) green.
Remove the automated P2P gift/TON trading subsystem and everything that only
existed to serve it:
- src/deals/ and src/agent/tools/deals/ (propose/verify/cancel/status/list)
- the DealBot and its services (bot/index.ts, deal-service, verification-poller,
  message-builder); the shared plugin bot infra (inline-router, rate-limiter,
  gramjs-bot, inline-transport, callback-router) is kept
- telegram_send_gift / telegram_transfer_collectible (gated by hasVerifiedDeal,
  i.e. only usable inside an authorized deal)
- deals config (schema, configurable-keys, validator, onboard, setup wizard)
- the /strategy admin command and dead deal types/constants

This also resolves the dm-only/deals interaction from the channel-scope fix.
typecheck + lint + full suite (1502 tests) green.
Use inferred Knip entrypoints with export checks, remove orphaned barrels and helpers, centralize package metadata, and share wallet derivation.
Share request construction across chat modes, derive provider IDs from the registry, and keep model availability gates in the catalog.
Route tool and SDK record updates through one validated service with canonical encoding, ownership checks, transaction locking, and characterization tests.
Share STON.fi simulation, DeDust pool selection, decimal resolution, and slippage math across tools and SDK swaps with characterization tests.
Use one browser/server contract source, canonicalize route errors and Telegram auth failures, and make the frontend build run TypeScript validation.
Preserve the existing types barrel while separating TON, Telegram, plugin infrastructure, and common logger contracts.
Keep the public API facade while separating shared client types, HTTP/auth transport, and setup endpoints; remove an unreachable duplicate return.
Keep the command facade stable while extracting config construction, interactive steps, non-interactive setup, and UI launch lifecycle.
Move provider resources, plugin lifecycle and event dispatch, server dependency assembly, and owner resolution out of TeletonApp with focused tests.
Separate tool batches, model iteration and recovery, and RAG tool selection from AgentRuntime while preserving its orchestration contract.
Keep provider lifecycle state aligned with reloaded configuration and decouple bot-token validation from the interactive onboarding module.
@TONresistor TONresistor merged commit 9df2737 into main Jul 11, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant