Releases: perasyudha/Nyxora
Releases · perasyudha/Nyxora
Release list
v26.8.14
Web3 Core Fixes & Optimizations
- On-Chain Registry & Kill Switch: Refactored
checkRegistryStatus.tsto 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.tsandprovideLiquidity.tsduring 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.tswhich prevented limit order activation events from firing. - Block Explorer Integrations: Added missing Robinhood and BSC chain configurations to
getTxHistory.tsandcheckPortfolio.ts. - Token Fetching: Optimized
dynamicTokenUpdater.tsto 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 inllmProvider.tsand surrogate logic inthinkScrubber.tsto 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
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 respectspolicy.yamlrules (require_approval,max_usd_per_tx,whitelist_only).fetch_with_x402Skill (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-Receiptheader) in a single seamless tool call.- Web3MarketPlugin: Registered
fetch_with_x402and 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&presencePenaltyin Gemini Provider (llmProvider.ts): AddedfrequencyPenalty: 0.5andpresencePenalty: 0.3to thegenerationConfigfor bothchat()andstream()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 thededuplicateRepetitions()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 internalreasoning_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 tostripThinkBlocksto 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-agnosticMEMORY HONESTYrule to prevent the AI from hallucinating or fabricating memories about the user. The AI is now explicitly forced to invoke thesearch_memorytool before answering any questions regarding past learnings, preferences, or stored facts. - Deep Memory Search (
searchMemory.ts): Upgraded thesearch_memorycognitive skill to seamlessly query both the long-termepisodic.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 toepisodic.dbas asystem_correction. This guarantees the AI never repeats the same operational mistake twice across any tool or command.
v26.8.9
AI Memory & Auto-Correction Engine
- Memory Honesty Guardrail (
promptBuilder.ts): Injected a strict language-agnosticMEMORY HONESTYrule to prevent the AI from hallucinating or fabricating memories about the user. The AI is now explicitly forced to invoke thesearch_memorytool before answering any questions regarding past learnings, preferences, or stored facts. - Deep Memory Search (
searchMemory.ts): Upgraded thesearch_memorycognitive skill to seamlessly query both the long-termepisodic.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 toepisodic.dbas asystem_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 localtwitter-clito 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): Integratedsolcnatively to compile Solidity smart contracts andviemto 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 dynamicuseAntiSybilparameters. - MEV & Arbitrage Scanner (
arbitrageEngine.ts): Added capabilities to scan DEXs for spread discrepancies and simulate Flash Loan arbitrage profits. - Flashbots Private RPC (
flashbots.ts): Implementedsend_private_transactionto 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.ethereuminjector) 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): Interceptsfetch/XHRnetwork 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 fixedMessageList.svelteto preservesubMessagesfor smooth DOM rendering.
v26.8.6
🔭 Vision & Analysis
- Multi-Modal
analyze_local_imageUpgrade (analyzeImage.ts): Migrated from hardcoded Gemini SDK to the user-configured LLM provider viaexecuteWithRetry. Now supports any OpenAI-compatible vision provider (OpenAI, Anthropic, Gemini, xAI, etc.) using the standardimage_urlmessage 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): Introducedanalyze_pdfskill wrapping the existingextract_pymupdf.pyplaybook script. Supports three modes —text(raw extraction),structured(pages + metadata), andsummary(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): Addedanalyze_chartskill backed by a newPOST /vision/analyze-chartML 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): Addedverify_visual_outputskill backed byPOST /vision/verify-screenshot. Agent can autonomously screenshot → describe expected state → verify → iterate. Returns{ matches, confidence, issues[], suggestions[] }. Pairs naturally with the existingcomputer_useskill 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 viaconfig.py— no hardcoded API keys.
🔧 Software Engineering Upgrade
- Autonomous Test Runner (
runTestsAndFix.ts): Newrun_tests_and_fixskill 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 viaedit_local_file, then calls again. State tracked via~/.nyxora/test_loop_state.json. Max iterations configurable (default 5). - Migration Plan Orchestrator (
planMigration.ts): Newplan_migrationskill 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 withtodo_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): IntroducedgoalManager— a JSON-backed persistent store at~/.nyxora/goals.jsonfor multi-day autonomous tasks. Supports full lifecycle:createGoal,advanceStep,updateCheckpoint,pauseGoal,resumeGoal,markComplete,markFailed. Auto-pauses goals after 3 consecutive failures. UnlikecronManager(recurring schedules),goalManagerhandles 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, callsprocessUserInputwith 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 viagetGoalSummary(), 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_paramstype safety, and empty payload guard. - Telegram Tool Status Flood (
telegram.ts): FixedonProgresssending a new Telegram message per tool call whenComputer Usetool 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 rawfirstArgValueforcomputertool which contained multiline XML-like parameter tags (<parameter=coordinate> [100, 100]). Fixed by: (1) readingargs.actionkey directly for computer tool, (2) addingsanitizeLabel()helper that strips all<parameter=...>XML tags and collapses whitespace across all tool labels. - Self-Healer 5 Bugs (
selfHealer.ts,agentskills.ts): Fixed invalidmax_tokensfield, broken?t=query string cache-bust (replaced with properrequire.cachedeletion), greedy first-match code block regex (now takes last/largest match), over-strict export sanity check (addedmodule.exportssupport), and wasteful LLM calls on un-healable runtime errors (addedisHealableError()filter).
Installation & Distribution
- One-Line Installer Script (
docs/public/install.sh): Linux & macOS zero-warning installer viacurl. - Windows Installer (
docs/public/install.ps1): PowerShell installer viawinget/Chocolatey. - 3-Option Installation Documentation:
npm install -g,curlinstaller, and developer source install.
Full Changelog: v26.8.5...v26.8.6
Full Changelog: v26.8.5...v26.8.6
v26.8.5
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 newsearch_memorycognitive 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 dedicatedrestore_playbookskill so the agent can autonomously recall archived playbooks when needed. - Advanced Persistent Scheduler (
cronManager.ts): Modernized thecronManagerwith 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 39KBSUPER_DISCIPLINErule is now selectively deferred on small models while remaining fully active for standard/large models. - Silent Tools UI Cleanup (
osAgent.ts): Introduced aSILENT_TOOLSregistry 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
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): Replacedoverflow-hiddenwithoverflow-visibleacross 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 (includingbrace-expansion,fast-uri,hono,ip-address,postcss, andundici) by updating lockfile versions and overriding outdatedtarpackage resolution. Registered trusted lifecycle scripts inallowScriptsto 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.4across all workspace packages and submodules.
26.8.3
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, androbinhood).- NFT Market Oracle: Created
get_nft_market_statsskill incore/src/web3/skills/getNftMarketStats.tsto 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_openseaskill incore/src/web3/skills/buyNftOpensea.tsto generate official Seaport fulfillment calldata from/api/v2/listings/fulfillment_dataand route purchases through Nyxora Policy Gate (require_approval). - Off-chain Seaport NFT Listing & Auto-Approval: Created
list_nft_openseaskill incore/src/web3/skills/listNftOpensea.tsto prepare NFT listings, automatically checking ERC-721/ERC-1155isApprovedForAllstatus against the official Seaport Conduit (0x1E0049783F008A0085193E00003D00cd54003c71) and preparing on-chainsetApprovalForAlltransactions when required. - Dashboard & Desktop Market Oracles Management: Added
opensea_keyconfiguration tomarketConfigManager.ts, Gateway API (GET/POST /api/market-keysinserver.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>intopromptBuilder.tsso system prompts instruct models on NFT skill selection, updatedCRITICAL RULE 10to enforce live tool invocation for NFT statistics, registered tools inWeb3MarketPlugin.ts(v1.1.0), and addednft,opensea, andseaportkeyword detection toreasoning.tsfor fast conversational confirmation routing.
- NFT Market Oracle: Created
Bug Fixes & Agent Enhancements
- LLM Tool-Call Sanitization & Context Boundary Guardrails (
llmProvider.ts,contextSummarizer.ts,llmUtils.ts): EnhancedsanitizeOpenAIMessageswith a 2-pass validation algorithm that removes orphanedtool_callsand converts unmatchedtoolresponses touserrole 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_snapBoundaryso 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): EnhancedexecuteWithRetryto 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 thebeforeAllhook 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.3across all workspace packages and submodules.
26.8.1
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 vianyxora desktopfrom unprivileged global or npx directories. Injected--no-sandbox,--disable-gpu-sandbox, and--disable-setuid-sandboxCLI flags and setELECTRON_DISABLE_SANDBOX=1in the spawned process environment, ensuring reliable headless and desktop app execution across Linux distributions. - Svelte Icon Library Migration (
packages/desktop): Migrated deprecatedlucide-sveltedependency to@lucide/svelteacross 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): Enhancedsafe_floatnull/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 sharedconstants.tsconfiguration 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}/cmdlineverification on Linux and macOS insideisDaemonRunning()to confirm that a live PID is actually anode/nyxoraprocess, preventing false-positive daemon detection when operating systems recycle stale process IDs. - Strict Permanent Episodic Memory Pinning (
episodic.ts): UpdatedgetPermanentMemories()to filter strictly byrule_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): ExtractedensureSession()in Logger to automatically register session IDs with specific client tags (desktop,dashboard,telegram, etc.) on stream/API initialization, and enhancedgetSessions()/searchSessions()to strictly isolate desktop chat sessions and searches from web dashboard history. - Local Version Increment: Bumped Nyxora version to
v26.8.1across all workspace packages and submodules.
26.7.27
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. IntroducedsanitizeOpenAIMessages()inllmProvider.tsto 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.27across all workspace packages and submodules.
v26.7.25
Bug Fixes & Agent Enhancements
- Web Search Engine Integrations: Fully implemented robust scraping backend logic for alternative engines in
searchWeb.ts. Added native Playwright support forpuppeteerandbrowserbase(via WebSocket CDP) to render heavy JavaScript sites, and added direct REST integration forcrawl4ai. 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: 180pxconstraint. 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.
- Auto-Collapsible Prompts: Long user prompts (exceeding 500 characters or 5 lines) are now automatically truncated with a sleek
- Telegram Formatting Leak: Added a pre-processor to
telegram.tsto 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, andrepetition_penaltyin the Dashboard Models menu. Fixed an initial state hydration bug inModels.tsxandSettings.tsxwhere penalty configurations were ignored upon page refresh despite successfully persisting toconfig.yaml.
Full Changelog: v26.7.24...v26.7.25