Skip to content

Comments

refactor(core): strict typing for logger runtime#6519

Open
Fankouzu wants to merge 76 commits intoelizaOS:mainfrom
Fankouzu:feat/type-safety-logger
Open

refactor(core): strict typing for logger runtime#6519
Fankouzu wants to merge 76 commits intoelizaOS:mainfrom
Fankouzu:feat/type-safety-logger

Conversation

@Fankouzu
Copy link

This PR improves code quality by replacing type usage in the logger module with proper typing. This helps in maintaining type safety across the core package.

github-actions bot and others added 30 commits January 19, 2026 20:50
Automated patch version bump from production release
Implements AsyncLocalStorage-based request context that allows:
- Per-request entity settings that override agent settings
- getSetting() now checks request context first
- runWithRequestContext() and getRequestContext() APIs

This enables multi-tenant runtime sharing where each user's
settings (API keys, OAuth tokens) are isolated per-request.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…lizaOS#6378)

Fixes elizaOS#5216 - Emits MESSAGE_SENT event after successfully sending agent responses to the central server API. This allows plugins with MESSAGE_SENT event handlers to be triggered for messages submitted to the central channel.
Squashed 245 commits from the v2.0.0-alpha branch into a single commit.
This includes the full v2.0.0 architecture rewrite, plugin restructuring,
new examples, test improvements, and all related cleanups.

Co-authored-by: Cursor <cursoragent@cursor.com>
This merge commit unifies the git history of the develop branch (v1.7.x)
with the next branch (v2.0.0-alpha rewrite). The tree is taken entirely
from next — the v2 rewrite supersedes all v1.x code structure.

Valuable develop-only changes (plugin-sql domain stores, request context,
EMBEDDING_DIMENSION, MESSAGE_SENT event, RLS/withIsolationContext) will
be ported as follow-up commits to their new v2 package locations.
- Merge develop history into next via `merge -s ours` (unified git graph,
  v2 tree preserved)
- Port request-context (per-entity settings via AsyncLocalStorage) from
  develop's core into packages/typescript/src/
- Port EMBEDDING_DIMENSION config to skip ~500ms API call during init
- Emit MESSAGE_SENT event after response messages saved to memory
- Extract full plugin-sql package from develop (domain stores, Neon
  serverless, RLS/withIsolationContext, Drizzle schema, runtime migrator)
- Fix TS errors in runtime.ts (ActionResult cast, LogBody phase field)
- Include pre-existing WIP changes (computeruse, python, rust, tui)

Co-authored-by: Cursor <cursoragent@cursor.com>
Source fixes:
- approval.ts: resolve pending promises as cancelled in stop() (was hanging)
- tools.ts: empty allow list (allow:[]) now correctly denies all tools
- secrets.ts: Telegram bot token regex {35} -> {35,43} to match real tokens
- test-utils.ts: complete rewrite — add createTestCharacter, fix
  expectRejection/retry/waitFor signatures, add randomString/randomSentence
- vitest.config.ts: exclude e2e/ dir from vitest (Playwright conflict)

Test fixes:
- character-utils: clean MODEL_PROVIDER_SECRETS from process.env in tests
  that assume no env-based providers (OPENAI_API_KEY set by .env.test)
- autonomy-task: update expected AUTONOMY_TASK_TAGS to match source
- onboarding-state: use == null (loose) to catch both null and undefined
- onboarding-cli: update inline Telegram regex to match secrets.ts
- plugin-browser-imports: skip gracefully when plugins/ dir is empty
- bootstrap providers: fix default imports to named imports

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
- Fix Rust Core Tests: run cargo fmt to fix formatting issues in
  runtime.rs, message_service.rs, and integration_tests.rs
- Fix Python Core Tests: commit protobuf generated types that were
  gitignored, causing ModuleNotFoundError for elizaos.types.generated
- Fix Rust SQL Plugin / WASM Build / Python SQL Plugin Tests: add
  directory existence checks so jobs skip gracefully when
  plugins/plugin-sql/{rust,python} directories don't exist yet
- Update .gitignore to allow generated files needed by packages

Co-authored-by: Cursor <cursoragent@cursor.com>
The Rust package uses prost-build which requires the protoc binary
to compile protobuf definitions. Add apt-get install step for
protobuf-compiler in the CI workflow.

Co-authored-by: Cursor <cursoragent@cursor.com>
The native and wasm features are mutually exclusive (runtime uses
cfg(all(feature = "native", not(feature = "wasm")))). Using
--all-features enables both, excluding the runtime module entirely.
Switch to explicit native,bootstrap-internal features instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
- Add spec_helpers module export to generated/mod.rs (was missing,
  causing unresolved import errors in bootstrap actions)
- Remove duplicate HashMap import in send_message.rs
- Format spec_helpers.rs with cargo fmt
- Use default features (native) for CI tests since bootstrap-internal
  has WIP compilation issues that need separate resolution

Co-authored-by: Cursor <cursoragent@cursor.com>
Remove ../milaidy from workspaces array in package.json since it
references a parent workspace submodule that doesn't exist in CI,
causing bun install to fail during Interop Tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
The plugins workspace directory must exist for bun install and turbo
build to work. Without it, the @elizaos/prompts build fails with
ENOENT when scanning the plugins directory.

Co-authored-by: Cursor <cursoragent@cursor.com>
The TypeScript build has missing dependencies (drizzle-orm) that
prevent a full build. Since interop tests are experimental and their
test steps already use || true, make the install and build steps
non-blocking with continue-on-error.

Co-authored-by: Cursor <cursoragent@cursor.com>
Adds intelligent action filtering to reduce prompt bloat when agents have
many registered actions (50+). The service uses a two-tier ranking pipeline:

1. Vector search: embed action descriptions at registration, cosine similarity at query time
2. BM25 reranking: keyword-based scoring catches exact matches vectors miss

Key changes:
- New ActionFilterService (services/action-filter.ts) with full metrics/monitoring
- Pure TypeScript BM25 index (services/bm25.ts) — zero dependencies
- Pure TypeScript cosine similarity (services/cosine-similarity.ts)
- Modified ACTIONS provider to use filtering when service is available
- Provider filtering: auto-includes relevant dynamic providers via BM25
- Route type: added x402 payment config field to BaseRoute interface
- 161 tests covering BM25, cosine sim, filtering pipeline, edge cases

Graceful degradation: no embedding model → BM25-only. Service absent → original behavior.
Backward compatible: agents with <15 actions see zero change.

Co-authored-by: Cursor <cursoragent@cursor.com>
Includes critical fix for duplicate key violation on worlds table:
- plugin-sql: WorldStore.create() uses onConflictDoNothing()
- core: ensureWorldExists() checks existence before insert

Co-authored-by: Cursor <cursoragent@cursor.com>
- Updated bun.lock and examples-manifest.json
- Removed legacy plugin-sql package (migrated to polyglot architecture)
- Minor fixes in rust generated code and typescript search/components

Co-authored-by: Cursor <cursoragent@cursor.com>
…found

Replace hard throw in roleProvider with graceful return of empty data.
Downgrade settingsProvider log from error to debug since missing room is
a normal condition in autonomous/task contexts.

Co-authored-by: Cursor <cursoragent@cursor.com>
Added a badge for repository statistics and updated the README layout.
github-actions bot and others added 27 commits February 17, 2026 01:15
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 20, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps
Copy link

greptile-apps bot commented Feb 20, 2026

Too many files changed for review. (3000 files found, 100 file limit)

const image_block_html_table = await res_from_browser;
const htmlTableTag = image_block_html_table?.replace(/https?:\/\/[^\s"'<>]+/gi, '');

let prompt = `
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'prompt' is never reassigned. Use 'const' instead.

Suggested change
let prompt = `
const prompt = `

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.

7 participants