Skip to content

Releases: perasyudha/Nyxora

v26.8.14

Choose a tag to compare

@github-actions github-actions released this 14 Aug 02:08

Web3 Core Fixes & Optimizations

  • On-Chain Registry & Kill Switch: Refactored checkRegistryStatus.ts to implement a strict fail-open policy for unregistered agents and network errors, while explicitly blocking deactivated agents. Added comprehensive registration guides to the LLM tool definition.
  • DeFi Execution Engine: Fixed parameter mismatches in executeDefi.ts and provideLiquidity.ts during Uniswap V3 minting. Added required fallback null guards for BigInt scaling in 1inch and OpenOcean router providers.
  • Background Transactions: Fixed Logger singleton scope mismatch in confirmPendingTx.ts which prevented limit order activation events from firing.
  • Block Explorer Integrations: Added missing Robinhood and BSC chain configurations to getTxHistory.ts and checkPortfolio.ts.
  • Token Fetching: Optimized dynamicTokenUpdater.ts to fetch lists in parallel with strict HTTP timeouts, significantly speeding up cold-starts. Refactored DexScreener pair selection to actively sort and pick highest-liquidity pairs instead of defaulting to the first index.
  • LLM Streaming Integrity: Fixed a widespread streaming corruption bug affecting OpenAI-compatible API providers (like NVIDIA NIM) where multi-byte unicode characters (emojis) were split across Server-Sent Events boundaries. Implemented a zero-width space (\u200B) filter in llmProvider.ts and surrogate logic in thinkScrubber.ts to guarantee clean Markdown rendering across the Dashboard and Telegram.

Dashboard UI Enhancements

  • Security Dashboard: Integrated a new On-Chain Kill Switch interface in Security.tsx (/api/registry). The dashboard now natively displays the live Base Sepolia registry status (🟢 Active / 🔴 Blocked) and provides direct integration links to the Blockscout smart contract for real-time agent registration and kill-switch toggling.

v26.8.12

Choose a tag to compare

@github-actions github-actions released this 12 Aug 16:07

x402 Agentic Payment Protocol

  • x402Handler.ts: Implemented the core interceptor for the x402 payment protocol (Coinbase Ventures). Detects HTTP 402 responses, extracts payment parameters (receiver, amount, currency, chain), and routes the transaction directly to the Policy Engine (/request-tx) without creating any bypass paths. Fully respects policy.yaml rules (require_approval, max_usd_per_tx, whitelist_only).
  • fetch_with_x402 Skill (x402Fetch.ts): New cognitive skill allowing the LLM to make HTTP requests to paid agentic services. If an endpoint returns 402, the skill autonomously negotiates the payment, executes the transaction, and retries the request with the proof of payment (X-Payment-Receipt header) in a single seamless tool call.
  • Web3MarketPlugin: Registered fetch_with_x402 and injected the <x402_payment_rule> into the Web3 agent's system prompt so the LLM understands when and how to utilize this autonomous payment capability.

Bug Fix: Gemini Repetition Loop

  • frequencyPenalty & presencePenalty in Gemini Provider (llmProvider.ts): Added frequencyPenalty: 0.5 and presencePenalty: 0.3 to the generationConfig for both chat() and stream() methods in the Gemini provider. Previously, these parameters were omitted, causing Gemini to occasionally fall into a logit loop at the end of its response and repeat sentences/phrases endlessly.
  • Post-Processing Deduplication (deduplicateRepetitions): Added the deduplicateRepetitions() function as a final safety net. Before streaming the response to the user, this function detects and truncates sentence repetitions (Pass 1) as well as progressive clause repetitions (Pass 2) that might escape the model-level penalty. Prevents outputs like "...PC is healthy. PC is healthy. healthy. healthy." from reaching the UI.

Bug Fix: Gemini Internal Monologue Leak

  • Stream and Non-Stream Fallbacks (osAgent.ts, web3Agent.ts): Removed a flawed fallback mechanism that inadvertently leaked the AI's internal reasoning_content (thoughts) directly to the user when the LLM produced a "silent stop" (thinking block with no tool calls or text). Implemented a proper Nudge and Prefill system to force the LLM to recover gracefully without exposing its internal monologue.
  • Bracket Label Stripping (thinkScrubber.ts): Added a post-processing regex pass to stripThinkBlocks to remove bracket-style internal planning labels (e.g. [Self-Correction], [Action], [User provided details]). Gemini occasionally emits these meta-labels directly into its visible text output instead of wrapping them in XML <think> tags, which caused severe UI clutter and logit loops.

AI Memory & Auto-Correction Engine

  • Memory Honesty Guardrail (promptBuilder.ts): Injected a strict language-agnostic MEMORY HONESTY rule to prevent the AI from hallucinating or fabricating memories about the user. The AI is now explicitly forced to invoke the search_memory tool before answering any questions regarding past learnings, preferences, or stored facts.
  • Deep Memory Search (searchMemory.ts): Upgraded the search_memory cognitive skill to seamlessly query both the long-term episodic.db (permanent facts and user persona traits) and the FTS5 chat history. Previously, it only searched chat logs, causing the AI to miss actual stored knowledge.
  • Auto-Correction Capture (autoCorrectionCapture.ts): Engineered a brand new continuous-learning module. The agent loop now actively monitors for failed tool calls (e.g. malformed bash commands or bad JSON args). If the AI successfully retries and fixes the error on a subsequent turn, the system autonomously extracts the exact difference (the "lesson learned") and permanently writes it to episodic.db as a system_correction. This guarantees the AI never repeats the same operational mistake twice across any tool or command.

v26.8.9

Choose a tag to compare

@github-actions github-actions released this 09 Aug 15:33

AI Memory & Auto-Correction Engine

  • Memory Honesty Guardrail (promptBuilder.ts): Injected a strict language-agnostic MEMORY HONESTY rule to prevent the AI from hallucinating or fabricating memories about the user. The AI is now explicitly forced to invoke the search_memory tool before answering any questions regarding past learnings, preferences, or stored facts.
  • Deep Memory Search (searchMemory.ts): Upgraded the search_memory cognitive skill to seamlessly query both the long-term episodic.db (permanent facts and user persona traits) and the FTS5 chat history. Previously, it only searched chat logs, causing the AI to miss actual stored knowledge.
  • Auto-Correction Capture (autoCorrectionCapture.ts): Engineered a brand new continuous-learning module. The agent loop now actively monitors for failed tool calls (e.g. malformed bash commands or bad JSON args). If the AI successfully retries and fixes the error on a subsequent turn, the system autonomously extracts the exact difference (the "lesson learned") and permanently writes it to episodic.db as a system_correction. This guarantees the AI never repeats the same operational mistake twice across any tool or command.

Ultimate Web3 Master Plan

  • Airdrop Discovery Engine (discoveryEngine.ts): Integrated with local twitter-cli to autonomously scan timelines of Alpha CT (Crypto Twitter) accounts, searching for "early" Web3 projects (seed rounds, incentivized testnets, points programs) without needing third-party aggregators.
  • Project Anti-Scam Scorer (projectScorer.ts): Added automated Due Diligence tools to evaluate Web3 projects based on Tier-1 VC backers (e.g. a16z, Paradigm), social proof metrics, and domain age to filter out phishing and scam airdrops.
  • Smart Contract Developer (smartContractSkills.ts): Integrated solc natively to compile Solidity smart contracts and viem to deploy them, allowing autonomous creation of smart contracts directly from prompts.
  • Bridge & Yield Optimizer (bridgeOptimizer.ts, yieldOptimizer.ts): Added intelligent routing to find the cheapest cross-chain bridges and highest APY staking/lending opportunities (Aave, Compound, Beefy).
  • Sybil-Resistant Airdrop Engine (antiSybilEngine.ts, playbookExecutor.ts): Upgraded Airdrop playbooks with advanced Route Scrambling to dynamically randomize task order, avoiding linear execution footprints. Added dynamic useAntiSybil parameters.
  • MEV & Arbitrage Scanner (arbitrageEngine.ts): Added capabilities to scan DEXs for spread discrepancies and simulate Flash Loan arbitrage profits.
  • Flashbots Private RPC (flashbots.ts): Implemented send_private_transaction to securely dispatch transactions via Flashbots and avoid front-running or sandwich attacks in the public mempool.

Autonomous Web3 & Airdrop Hunter System

  • Virtual EIP-1193 Provider & SIWE Signing (eip1193Provider.ts, siweHandler.ts): Built a native EIP-1193 virtual provider (window.ethereum injector) for Playwright browser session automation and automated EIP-4361 Sign-In with Ethereum challenge signing directly via Nyxora Keyring Vault.
  • Dynamic Chain & Manual Testnet Manager (chainRegistry.ts): Replaced static chain dictionary with a dynamic chain registry supporting manual registration of custom testnets, RPC URLs, chain IDs, native symbols, and explorers (register_custom_chain).
  • Universal ABI Resolver (abiResolver.ts): Automated smart contract ABI fetching from Block Explorers (Etherscan/Basescan/Blockscout/Sourcify) and manual ABI injection (registerManualAbi) for unverified testnet smart contracts.
  • Custom Quest Perception Engine (webPerceptor.ts): Intercepts fetch/XHR network traffic on custom developer quest platforms, automatically discovering authentication, task verification, and reward claim API endpoints.
  • Hybrid Social Quest Automation (socialAutomation.ts): Integrated hybrid social task execution (X/Twitter, Discord, Telegram) supporting both Official API (OAuth2) and Headless Browser Session automation.
  • Airdrop Playbook DAG Generator & Executor (playbookParser.ts, playbookExecutor.ts): Converts natural language airdrop guides into executable Directed Acyclic Graphs (DAGs) and executes multi-step quest workflows (execute_airdrop_playbook).
  • Anti-Sybil Engine (antiSybilEngine.ts): Added randomized delay jitter and transaction amount randomization to mimic natural human behavior.
  • Agent Skill & Plugin Integration (airdropSkills.ts, Web3WalletPlugin.ts): Exposed 4 new Web3 skills (register_custom_chain, sign_siwe_challenge, execute_social_quest, execute_airdrop_playbook) to Nyxora's core Agent OS.

Desktop UI & Streaming Fixes

  • Live Multi-Turn Trace Display (ChatComposer.svelte, MessageList.svelte): Fixed multi-turn agent streaming to track turn metadata (reasoning_content, progressLogs, duration_ms) live per turn, restoring instant "Thought process" accordion visibility without requiring a page refresh.
  • DOM Flickering & Separator Cleanup: Cleaned up duplicate --- separator accumulation during typewriter streaming and fixed MessageList.svelte to preserve subMessages for smooth DOM rendering.

v26.8.6

Choose a tag to compare

@perasyudha perasyudha released this 06 Aug 15:58

🔭 Vision & Analysis

  • Multi-Modal analyze_local_image Upgrade (analyzeImage.ts): Migrated from hardcoded Gemini SDK to the user-configured LLM provider via executeWithRetry. Now supports any OpenAI-compatible vision provider (OpenAI, Anthropic, Gemini, xAI, etc.) using the standard image_url message format. Added automatic content-type detection (screenshot, chart, diagram, document, photo) to inject specialized analysis instructions per content type.
  • Native PDF Analysis Skill (analyzePdf.ts): Introduced analyze_pdf skill wrapping the existing extract_pymupdf.py playbook script. Supports three modes — text (raw extraction), structured (pages + metadata), and summary (LLM-generated summary of extracted content). Gracefully handles encrypted and scanned PDFs, returning page count and word count metadata.
  • Chart & Diagram Analyzer (analyzeChart.ts, vision.py): Added analyze_chart skill backed by a new POST /vision/analyze-chart ML Engine endpoint. Returns structured data: title, axes, data points, trend direction, and natural-language key insight. Uses the configured LLM's vision capabilities — no hardcoded provider.
  • Visual Verification Loop (verifyVisual.ts, vision.py): Added verify_visual_output skill backed by POST /vision/verify-screenshot. Agent can autonomously screenshot → describe expected state → verify → iterate. Returns { matches, confidence, issues[], suggestions[] }. Pairs naturally with the existing computer_use skill for full autonomous UI testing.
  • ML Engine Vision Router (packages/ml-engine/routers/vision.py): New FastAPI router registered at /vision/* providing chart analysis and visual verification endpoints. Uses configured LLM provider via config.py — no hardcoded API keys.

🔧 Software Engineering Upgrade

  • Autonomous Test Runner (runTestsAndFix.ts): New run_tests_and_fix skill that executes the project's test command, parses output (vitest, jest, pytest, cargo test), and returns a structured report: passing count, failing count, per-failure details (file, line, error). Designed as an iterative tool — LLM reads results, applies fixes via edit_local_file, then calls again. State tracked via ~/.nyxora/test_loop_state.json. Max iterations configurable (default 5).
  • Migration Plan Orchestrator (planMigration.ts): New plan_migration skill that scans the codebase for affected files, assesses migration scope, and generates a structured step-by-step migration plan with recommended execution order, module batching, and test gates. Returns actionable plan text — execution is handled by the LLM via existing tools.
  • Software Engineering SOP Prompts (3 new cognitive skills):
    • large-scale-refactor.md: Pre-refactor checklist, batch-by-module strategy, rollback triggers, progress tracking with todo_write.
    • autonomous-testing.md: Test-fix loop strategy, flaky test detection, regression prevention, escalation rules.
    • migration-orchestration.md: Scope assessment, incremental migration, circular dependency handling, checkpoint + rollback strategy.
  • Cognitive Manager SOP Mappings (cognitiveManager.ts): Registered keyword triggers for all 3 new SOPs — migrate/migration/migrasi, run tests/fix tests/test loop, large scale/bulk change/refactoring — enabling automatic SOP injection when relevant tasks are requested.

🎯 Long-Horizon Task System

  • Persistent Goal Manager (goalManager.ts): Introduced goalManager — a JSON-backed persistent store at ~/.nyxora/goals.json for multi-day autonomous tasks. Supports full lifecycle: createGoal, advanceStep, updateCheckpoint, pauseGoal, resumeGoal, markComplete, markFailed. Auto-pauses goals after 3 consecutive failures. Unlike cronManager (recurring schedules), goalManager handles one-time multi-step tasks that span days.
  • Background Goal Worker (goalWorker.ts): startGoalWorker() polls active goals every 5 minutes. For each due goal, resumes from last checkpoint, calls processUserInput with accumulated context, saves progress, then advances the step counter. Pushes Telegram notifications on step completion, milestone, and failure. Auto-starts 30 seconds after daemon boot to allow services to initialize.
  • Goal Management Skills (goalSkills.ts): Four new LLM-callable tools: create_long_term_goal (register a multi-step async goal), get_goal_status (formatted overview of all goals), pause_goal / resume_goal (lifecycle control).
  • Active Goals System Prompt Injection (promptBuilder.ts): Active goals are now injected into every system prompt turn via getGoalSummary(), keeping the LLM aware of ongoing long-running work without requiring the user to re-explain context.
  • Goal Worker Daemon Integration (launcher.ts): startGoalWorker() is now called at daemon startup, ensuring long-horizon tasks survive restarts and automatically resume from their last checkpoint.

Bug Fixes

  • Streaming Tool Interceptor (toolInterceptor.ts): Fixed 4 critical bugs — raw JSON leak on stream end, buffer overflow inside tool block, tool_params type safety, and empty payload guard.
  • Telegram Tool Status Flood (telegram.ts): Fixed onProgress sending a new Telegram message per tool call when Computer Use tool runs multiple sequential actions (click, key, screenshot, etc.). Reverted to intended multi-bubble behavior while fixing the root cause.
  • Computer Use XML Parameter Leak (osAgent.ts): getToolLabel() was passing raw firstArgValue for computer tool which contained multiline XML-like parameter tags (<parameter=coordinate> [100, 100]). Fixed by: (1) reading args.action key directly for computer tool, (2) adding sanitizeLabel() helper that strips all <parameter=...> XML tags and collapses whitespace across all tool labels.
  • Self-Healer 5 Bugs (selfHealer.ts, agentskills.ts): Fixed invalid max_tokens field, broken ?t= query string cache-bust (replaced with proper require.cache deletion), greedy first-match code block regex (now takes last/largest match), over-strict export sanity check (added module.exports support), and wasteful LLM calls on un-healable runtime errors (added isHealableError() filter).

Installation & Distribution

  • One-Line Installer Script (docs/public/install.sh): Linux & macOS zero-warning installer via curl.
  • Windows Installer (docs/public/install.ps1): PowerShell installer via winget/Chocolatey.
  • 3-Option Installation Documentation: npm install -g, curl installer, and developer source install.

Full Changelog: v26.8.5...v26.8.6

Full Changelog: v26.8.5...v26.8.6

v26.8.5

Choose a tag to compare

@perasyudha perasyudha released this 05 Aug 03:06

Features & AI Memory Enhancements

  • FTS5 SQLite Memory Search (logger.ts, searchMemory.ts): Upgraded the core SQLite memory database to utilize the FTS5 extension. Nyxora now automatically syncs and indexes conversational memory, allowing the AI to instantly recall past interactions and user preferences using the new search_memory cognitive skill.
  • Skill Curator System (curator.ts, playbookManager.ts): Engineered a lightweight background daemon to monitor and auto-archive idle cognitive skills (.usage.json), configurable directly via the Dashboard (curator.archive_after_days). Web3-related skills and system defaults are strictly safeguarded from archival. Added a dedicated restore_playbook skill so the agent can autonomously recall archived playbooks when needed.
  • Advanced Persistent Scheduler (cronManager.ts): Modernized the cronManager with an advanced Catch-up Window. The scheduler now persists execution timestamps (lastRunAt) and autonomously detects and re-executes any critical tasks that were missed while the system or daemon was powered off.

Bug Fixes & Agent Enhancements

  • Small LLM Context Amnesia Fix (promptBuilder.ts): Removed the hardcoded .slice(0, 5) limit for user memory injection in the compact system prompt. Small models (≤8K context) now correctly receive 100% of explicit user instructions, strong personas, and all permanent episodic memories. To accommodate this within strict token limits without crashing, the 39KB SUPER_DISCIPLINE rule is now selectively deferred on small models while remaining fully active for standard/large models.
  • Silent Tools UI Cleanup (osAgent.ts): Introduced a SILENT_TOOLS registry for background cognitive skills (e.g., search_memory). These tools now execute entirely in the background without emitting [TOOL_CALL_DETECTED] and [TOOL_CALL_FINISHED] streaming markers, preventing unnecessary loading spinners on the Telegram/Web frontend when the agent is merely recalling internal memory.

26.8.4

Choose a tag to compare

@perasyudha perasyudha released this 04 Aug 02:29

Features & Desktop Enhancements

  • Desktop LLM Engine Parameter Parity (LlmEngine.svelte, config.svelte.ts): Added interactive slider controls for Frequency Penalty (-2.0 to 2.0), Presence Penalty (-2.0 to 2.0), and Repetition Penalty (0.0 to 2.0) to the Desktop app's LLM Engine modal, achieving full parameter parity with the Dashboard web interface.
  • Desktop Settings Dropdown Clipping Fix (LlmEngine.svelte, Appearance.svelte, RiskPolicy.svelte, SecurityPrivacy.svelte, AgentProfile.svelte): Replaced overflow-hidden with overflow-visible across settings card containers so dropdown menus (such as Reasoning Effort in LLM Engine) are no longer clipped or hidden when opened near the bottom of a container.
  • Unified Dropdown & Provider Icons (Dropdown.svelte, LlmIcon.svelte, Settings.tsx): Standardized dropdown component typography, alignment, and hover-states across Desktop and Dashboard, and injected visual LLM Provider Icons for enhanced visual consistency.

Security & Dependency Maintenance

  • NPM Audit Vulnerability Remediation (package.json, package-lock.json): Resolved 6 moderate-to-high security vulnerabilities across core dependencies (including brace-expansion, fast-uri, hono, ip-address, postcss, and undici) by updating lockfile versions and overriding outdated tar package resolution. Registered trusted lifecycle scripts in allowScripts to maintain secure build environments.

Documentation & Ecosystem Enhancements

  • Comprehensive Documentation Refresh & New Guides: Added detailed documentation for Desktop CLI (docs/cli/desktop.md), OpenSea API v2 NFT Trading Skills (docs/core/nft.md), and External MCP Servers (docs/mcp/external-servers.md). Updated core guides across architecture, CLI, chains, Etherscan, Market Oracles, ML Engine, native skills, playbooks, dashboard, privacy, security, and sandbox instructions.
  • Local Version Increment: Bumped Nyxora version to v26.8.4 across all workspace packages and submodules.

26.8.3

Choose a tag to compare

@perasyudha perasyudha released this 02 Aug 22:51

Features & Web3 Enhancements

  • OpenSea API v2 NFT Trading & Market Oracle Integration (getNftMarketStats.ts, buyNftOpensea.ts, listNftOpensea.ts): Engineered comprehensive NFT market intelligence and trading capabilities using OpenSea API v2 across supported EVM mainnet networks (ethereum, polygon, arbitrum, optimism, base, bsc, and robinhood).
    • NFT Market Oracle: Created get_nft_market_stats skill in core/src/web3/skills/getNftMarketStats.ts to query live collection floor price, 24h volume, market cap, and owner statistics directly from OpenSea API v2 with actionable HTTP 401/403/429 guidance.
    • Seaport NFT Purchase & Policy Guardrail: Created buy_nft_opensea skill in core/src/web3/skills/buyNftOpensea.ts to generate official Seaport fulfillment calldata from /api/v2/listings/fulfillment_data and route purchases through Nyxora Policy Gate (require_approval).
    • Off-chain Seaport NFT Listing & Auto-Approval: Created list_nft_opensea skill in core/src/web3/skills/listNftOpensea.ts to prepare NFT listings, automatically checking ERC-721/ERC-1155 isApprovedForAll status against the official Seaport Conduit (0x1E0049783F008A0085193E00003D00cd54003c71) and preparing on-chain setApprovalForAll transactions when required.
    • Dashboard & Desktop Market Oracles Management: Added opensea_key configuration to marketConfigManager.ts, Gateway API (GET/POST /api/market-keys in server.ts), and OpenSea UI logo mappings in both Dashboard (packages/dashboard/src/utils/logos.ts) and Desktop (packages/desktop/src/lib/utils/logos.ts) applications.
    • LLM System Prompt Injection & Confirmation Routing: Injected <nft_trading_rule> into promptBuilder.ts so system prompts instruct models on NFT skill selection, updated CRITICAL RULE 10 to enforce live tool invocation for NFT statistics, registered tools in Web3MarketPlugin.ts (v1.1.0), and added nft, opensea, and seaport keyword detection to reasoning.ts for fast conversational confirmation routing.

Bug Fixes & Agent Enhancements

  • LLM Tool-Call Sanitization & Context Boundary Guardrails (llmProvider.ts, contextSummarizer.ts, llmUtils.ts): Enhanced sanitizeOpenAIMessages with a 2-pass validation algorithm that removes orphaned tool_calls and converts unmatched tool responses to user role messages, preventing HTTP 400 Bad Request errors (Invalid parameter: messages with role tool must be a response to a preceding message with tool_calls). Added Rule 3 to _snapBoundary so message slicing never splits an assistant-tool pair, and refined rate-limit detection to exclude tool-call/schema validation errors.
  • LLM Rate-Limit Reset Delay & Silent Stop Remediation (llmUtils.ts, osAgent.ts, web3Agent.ts): Enhanced executeWithRetry to automatically extract and obey "reset after <N>s" delay durations from 502/503/504 and rate-limit API errors (such as NVIDIA NIM / Nemotron timeouts). Added error-stream emission (onChunk(errorMsg)) inside agent streaming catch blocks so UI clients immediately receive informative rate-limit notifications instead of terminating silently after tool execution.
  • MCP Server Test Timeout Resilience (registry.test.ts): Increased the beforeAll hook timeout from 30s to 60s when initializing sequential-thinking and long-term-memory stdio MCP servers in test suites, preventing false-positive CI test timeouts under heavy npm/npx I/O load.
  • Local Version Increment: Bumped Nyxora version to v26.8.3 across all workspace packages and submodules.

26.8.1

Choose a tag to compare

@github-actions github-actions released this 31 Jul 10:19

Bug Fixes & Architecture Enhancements

  • Linux SUID Sandbox Fix for Nyxora Desktop (bin/nyxora.mjs, packages/desktop/electron/main.ts): Resolved a fatal Electron startup crash on Linux (FATAL:sandbox/linux/suid/client/setuid_sandbox_host.cc:166) when launching via nyxora desktop from unprivileged global or npx directories. Injected --no-sandbox, --disable-gpu-sandbox, and --disable-setuid-sandbox CLI flags and set ELECTRON_DISABLE_SANDBOX=1 in the spawned process environment, ensuring reliable headless and desktop app execution across Linux distributions.
  • Svelte Icon Library Migration (packages/desktop): Migrated deprecated lucide-svelte dependency to @lucide/svelte across all 24 Svelte UI components and workspace configuration files (package.json), resolving build deprecation warnings.
  • Market Engine Resilience & Timeout Optimization (market.py, getPrice.ts, marketAnalysis.ts): Enhanced safe_float null/type-safety handling in the Python ML Engine and increased HTTP timeout thresholds to 35s with retry logic when querying market analysis endpoints from the core gateway, preventing premature timeouts during heavy DEX/CEX data aggregation.
  • Markdown Table Un-flattening Enhancement (telegram.ts, markdownTables.ts, StructuredMessage.svelte): Improved regex normalization for single-line table hallucinations produced by smaller models, reliably splitting joined table headers, separator rows, and data rows across Telegram HTML formatting, CLI markdown realignment, and Svelte Desktop chat rendering.
  • Centralized Service Port Architecture & Documentation Refresh (constants.ts, launcher.ts, docs/*): Centralized Core Gateway (40000) and ML Engine (50000) ports and base URLs into a shared constants.ts configuration module across all workspace packages, launchers, and CLI tools, and updated system architecture documentation accordingly.
  • PID Command-line Validation for Daemon Check (bin/nyxora.mjs): Added explicit /proc/${pid}/cmdline verification on Linux and macOS inside isDaemonRunning() to confirm that a live PID is actually a node/nyxora process, preventing false-positive daemon detection when operating systems recycle stale process IDs.
  • Strict Permanent Episodic Memory Pinning (episodic.ts): Updated getPermanentMemories() to filter strictly by rule_type = permanent, preventing non-permanent observations from crowding core system prompt context while delegating general observations to RAG episodic recall.
  • Multi-Client Chat Session Isolation & Auto-Registration (server.ts, logger.ts, packages/desktop): Extracted ensureSession() in Logger to automatically register session IDs with specific client tags (desktop, dashboard, telegram, etc.) on stream/API initialization, and enhanced getSessions() / searchSessions() to strictly isolate desktop chat sessions and searches from web dashboard history.
  • Local Version Increment: Bumped Nyxora version to v26.8.1 across all workspace packages and submodules.

26.7.27

Choose a tag to compare

@github-actions github-actions released this 27 Jul 00:04

Features & UI/UX Enhancements

  • CJK & Emoji Markdown Table Realignment (markdownTables.ts): Engineered CJK/emoji-aware markdown table realignment and responsive narrow-screen vertical fallback. Full-width ideographs, emojis, and combining symbols no longer cause table column borders to drift in terminal and CLI environments.
  • Streaming Reasoning / <think> Block Scrubber (thinkScrubber.ts): Implemented a stateful streaming scrubber (StreamingThinkScrubber) to cleanly suppress <think>, <reasoning>, and <thought> blocks emitted by open-weight models (e.g., DeepSeek-R1, Mistral, Ollama) on CLI/Telegram while preserving collapsible reasoning cards on Dashboard and Desktop.

Bug Fixes & Agent Enhancements

  • Strict OpenAI/NIM Message Sanitization (Mistral & Open-Weight Providers Fix): Resolved an API validation error (HTTP 400: Extra inputs are not permitted) when using Mistral models and other strict Pydantic-validated endpoints on NVIDIA NIM / OpenAI-compatible APIs. Introduced sanitizeOpenAIMessages() in llmProvider.ts to automatically strip extraneous internal database metadata properties (session_id, id, duration_ms) from message payloads before sending them to the provider.
  • Local Version Increment: Bumped Nyxora version to v26.7.27 across all workspace packages and submodules.

v26.7.25

Choose a tag to compare

@perasyudha perasyudha released this 25 Jul 05:23

Bug Fixes & Agent Enhancements

  • Web Search Engine Integrations: Fully implemented robust scraping backend logic for alternative engines in searchWeb.ts. Added native Playwright support for puppeteer and browserbase (via WebSocket CDP) to render heavy JavaScript sites, and added direct REST integration for crawl4ai. Updated the Dashboard UI to include a dynamic configuration field for the Crawl4AI API endpoint.
  • Dashboard Chat UI Refinements:
    • Auto-Collapsible Prompts: Long user prompts (exceeding 500 characters or 5 lines) are now automatically truncated with a sleek max-height: 180px constraint. Added a floating circular "Show More" / "Show Less" toggle button to keep the chat interface clean and prevent massive error logs from consuming the viewport.
    • Textarea Resize Bug: Fixed a classic React bug where the input textarea (<textarea>) remained stuck at an expanded height after sending a multi-line message. The element's height is now forcefully reset to its single-line default immediately upon submission.
  • Telegram Formatting Leak: Added a pre-processor to telegram.ts to automatically strip any <span> UI artifacts generated by the agent (e.g. colors or highlights) before sending them to the Telegram API. This prevents raw HTML tags like <span class="xxx"> from leaking into chat messages.
  • LLM Penalties Dashboard UI Integration: Added UI slider controls for frequency_penalty, presence_penalty, and repetition_penalty in the Dashboard Models menu. Fixed an initial state hydration bug in Models.tsx and Settings.tsx where penalty configurations were ignored upon page refresh despite successfully persisting to config.yaml.

Full Changelog: v26.7.24...v26.7.25