- Vector Dimension Mismatch Crash (4096 vs 1024):
vec_distance_cosinein SQLite crashed with "Vector dimension mismatch" when comparing old 4096-dim rows (from retirednv-embed-v1) against new 1024-dim query vectors. Addedlength(embedding) = :expectedBytesfilter toSQLiteAdapter.searchVector()so wrong-dimension rows are silently skipped instead of crashing the query. Addedscripts/reembed-migrate.tsto re-embed existing bad rows with the current model chain. - PR Review Improvements: Enhanced migration scripts with (1) detailed skip/fail logging with context, (2) try-catch error handling for SQL operations, (3) pagination (LIMIT 1000 per batch) to prevent memory strain on large tables, and (4) retry logic with exponential backoff for embedding API failures.
- Mistral Embeddings + Cross-Provider Failover: Added Mistral (
api.mistral.ai) as an embedding provider alongside NVIDIA NIM. The embedding service now runs a single cross-provider failover chain (default:mistral/codestral-embed,mistral/mistral-embed,nvidia/llama-nemotron-embed-vl-1b-v2,nvidia/nemotron-3-embed-1b), verified live against both APIs.codestral-embedleads because CodeAtlas embeds source code. Per-provider request shaping is handled automatically (output_dimensionfor codestral-embed, plain body for mistral-embed which rejects it with 400 code 3051,dimensions/input_typefor NVIDIA). Each provider key can be a comma-separated pool that rotates on401/403/429. Configurable viaMISTRAL_API_KEY,EMBEDDING_MODELS, andEMBEDDING_DIM(legacyNVIDIA_EMBEDDING_*aliases still honored).
- Embedding Model Failover (410/404 Gone): The hardcoded
nvidia/nv-embed-v1embedding endpoint was retired by NVIDIA and began returning410 Gone, breaking all vector embedding generation. Replaced it with a round-robin failover list (nvidia/llama-nemotron-embed-vl-1b-v2,nvidia/nemotron-3-embed-1b) verified live againstintegrate.api.nvidia.com. On any 4xx/5xx or wrong-dimension response the service rotates to the next model and pins the one that worked as primary. Requested dimension is enforced (dimensions: 1024, matching thevector(1024)schema) and mismatched vectors are rejected before hitting the store. Configurable viaNVIDIA_EMBEDDING_MODELSandNVIDIA_EMBEDDING_DIM.
- Multi-Tenant MCP Isolation: Wrapped all MCP and A2A tool handlers in the session's active authentication context using
authStorage.run(...), ensuring that Second Brain, Dreaming Memory, and Project Discovery execute under the correct tenant isolation policy instead of falling back to the admin context.
- Multi-Tenant Genome Isolation: Enforced strict multi-tenant isolation across all GenomeService evolution/immune system operations including mergeGenes, splitGene, mutateGene, retireGenes, scanImmuneGenes, recommendGenes, and updateGene by extracting active tenant_id from auth context and applying query/bind filtering.
- Oracle Database ACL Integration: Whitelisted local/server subnet IP range (
171.243.49.0/24) in Oracle Autonomous Database 26ai to resolveORA-12506: TNS:listener rejected connectionerrors for the developer server. - ESM Hoisting Race Condition: Created
src/env.tsand loaded it at the absolute top ofsrc/index.tsto ensure environment variables are configured before ESM modules evaluate. This enables Oracle DB connection pool parameters to initialize correctly on startup.
- Multi-Tenant Project Discovery: Excluded the server root directory (
process.cwd()) from project discovery when running in multi-tenant mode (CODEATLAS_MULTI_TENANT="true"). This prevents duplicate/ambiguous entries ofcodeatlas-aiin the project selection dropdown.
- Authentication: Centralized CORS wildcard configuration and migrated API key authentication from URL query parameters to
x-api-keyheaders for enhanced security.
- Documentation View: Integrated copyable rule panels for Cursor AI Rules (
.cursor/rules/codeatlas.mdc), General MCP Rules (.agents/rules/codeatlas-mcp.md), and Auto-Memory Rules (.agents/rules/auto-memory.md) within the MCP setup tab. - Documentation View: Linked both "Quick Setup Guide" and "AI Memory Guide" in the top-right header section of the System Documentation view.
- Security: Added
authMiddlewareto the documentation markdown endpoints (/api/docs/quick-setupand/api/docs/memory-setup) to prevent unauthorized access to configuration files and project documentation structure.
- Documentation: Updated all setup instructions and template generators to reference the enterprise package (
codeatlas-enterprisevia npx) instead of the deprecated public package name (@giauphan/codeatlas-mcp). - Documentation: Updated all setup instructions and template generators to reflect the renamed rule files and their new locations.
- Version Bump: Synchronized version in
httpServer.tsto match release.
- Type Safety: Added Express Request type augmentation (
src/types/express.d.ts) — properly typedreq.authproperty instead of(req as any).auth - CORS: Added explicit
elsebranch withVary: Originheader for rejected origins so browser properly rejects unlisted origins - Type Cast: Added
IncomingMessageimport and proper type cast in/messageshandler for strict TypeScript compatibility
- SSE Transport: Resolved race condition in SSE session connection close by implementing session generation/nonce tracking.
- Security Scanner: Hardened vulnerability scanner to significantly reduce false-positive rates for hardcoded secrets and SQL Injection risk detection by introducing Camel/Snake boundary word checks and database/SQL context verification.
- MCP Presentation: Updated HTTP Server import configuration to delegate registration via
mcpTools.tsrather than the old monolith entrypointmcpServer.ts.
- CI / GitHub Actions: Configured the code review step to write output to
review_report.mdand added a post-comment step usingactions/github-scriptto post the review directly as a comment on the PR, tagging the PR author. - CI / GitHub Actions: Captured stderr for the code review step via
2>&1, added non-zero exit handling, and madecontext.payload.pull_request.user.loginfallback tocontext.actor. - Logger: Added
LOG_LEVELenvironment variable validation to reject invalid log level values at startup, defaulting toinfo.
- CI / GitHub Actions: Switched to
${{ github.token }}instead of${{ secrets.GITHUB_TOKEN }}to resolve warning/errors with secret names starting withGITHUB_. - CI / GitHub Actions: Supported fallback to
secrets.COMMAND_CODE_API_KEYfor Command Code API Authentication. - Unit Tests: Added mock values for
ORACLE_PASSWORDandORACLE_CONN_STRINGto fix failures inOracleMemoryServicetests.
- Command Code Proxy API Schema Mapping: Added message sanitization logic in
scripts/command-code-proxy.tsto translate unsupported roles (e.g. system, developer, tool) to "user" and merge consecutive duplicate roles, resolving400 Bad Requestschema validation failures on the target Command Code API.
- Automated Pull Request Code Reviews: Configured a non-interactive CI step in
.github/workflows/ci.ymlthat performs code reviews automatically on pull requests using thecommand-codeCLI. - Go Plan API Bypass Proxy: Implemented a local proxy script (
scripts/command-code-proxy.ts) to translate standard OpenAI/Hermes API requests into the/alpha/generateNDJSON schema, bypassing the Command Code Go plan API access restrictions. - Hermes Agent Integration: Integrated Hermes to utilize the local proxy, routing agent workflows through Command Code's
/alpha/generateendpoint seamlessly.
- E2E Project Discovery Tests: Created robust integration tests to verify project discovery criteria, including validation of
.gitfolders, system/hidden directories exclusion, and Linux process (/proc) inspection for active IDE processes. - Settings API E2E Compliance: Updated settings integration test suite to align with hardened project validation.
- Hardening CodeAtlas Workspace Indexing: Prevent unwanted system directory indexing and enforce strict project discovery criteria. Enforced
.gitor.codeatlasfolder presence check as a requirement for project validation, and integrated active IDE process detection (via/procinspection) to identify valid open workspaces. - Enterprise MCP Sync: Synchronized client version to
2.2.3and aligned workspace validation heuristics with the core server.
- Database Keep-Alive Ping: Added static
ping()method toOracleMemoryServiceexecuting a lightweightSELECT 1 FROM DUAL. - Auto-Ping Background Task: Integrated a background task running every 12 hours on HTTP server initialization. This generates database activity and prevents Oracle Always Free Autonomous Databases from being automatically paused/stopped.
- NJS-040 Connection Starvation Fix: Refactored
saveSemanticMemoryandsearchSemanticMemoryinOracleMemoryServiceto generate NVIDIA embeddings before acquiring an Oracle database connection. This prevents holding connection pool slots idle for long periods during external API latency, completely eliminating NJS-040 timeout errors.
-
Security Scanner Performance Optimization: Refactored
SecurityScanner.scanto combine multiple nodes-list iterations into a single$O(N)$ pass. Cached normalization paths to prevent redundant string manipulation, drastically reducing CPU usage and memory footprint during project-wide vulnerability scans.
- API Gateway Rate Limiting: Added local in-memory rate limiting middleware
localRateLimiter(60 requests/minute limit per tenant/IP) to prevent server/database overload. - Sequential Sync Task Queue: Implemented a concurrency-limiting task queue (
syncQueuewith concurrency = 1) for the/api/projects/syncendpoint. This serializes database-intensive knowledge graph writes and prevents connection pool exhaustion or lock contention during high-volume synchronizations.
- Relational Memory Batched Writes: Updated relational memory link insertion query in
OracleMemoryService.saveRelationalMemoryto execute in batches of 1000 items.
- Oracle DB Connection Timing (NJS-125): Postponed evaluation of database configuration environment variables to runtime inside the connection pool initialization helper. Also moved
dotenv.config()invocation to the absolute top of the index.ts entrypoint, preventing early module imports from reading empty/unloaded environment variables.
- Oracle DB Episodic Memory Bug: Fixed silent failure during episodic memory sync by wrapping primitive/string values inside a structured JSON object (
{ val: data }) before binding with nativeoracledb.DB_TYPE_JSON. - Database Error Propagation: Hardened error handling in
OracleMemoryServiceby propagating (re-throwing) database errors rather than catching and swallowing them, allowing REST APIs and MCP tools to properly detect and report failures.
- Path Resolution & Separation: Standardized multi-tenant project path resolution using relative-path mapping and path slash normalization, completely eliminating false-negative 404 project analysis errors.
- sessionStorage Exhaustion Mitigation: Engineered a high-performance in-memory cache fallback layer (
memoryAnalysisCache) that silently takes over when sessionStorage limits are exceeded, ensuring large project payloads load seamlessly. - Concurrent Fetch Orchestration: Refactored the dashboard component's lifecycle initialization to coordinate and deduplicate mounting calls, preventing race conditions and stale directory swapping.
- Episodic Memory Retrieval (GET): Implemented full-circle support for querying saved Change Logs and Business Rules from the Oracle 26ai database.
get_system_memoryMCP Tool: Added a new tool to query, filter, and parse episodic memory entries by project name and event type directly from the Knowledge Graph database.GET /api/projects/memoryREST API Endpoint: Added a secure HTTP API endpoint to retrieve episodic memory entries with robust JSON parsing.
- Dynamic Cross-Platform Antigravity Detection: Replaced the hardcoded
/config/Downloads/Antigravityfallback check with a dynamic, multi-platform resolution of~/.gemini/antigravityrelative toos.homedir(), guaranteeing robust active workspace filtering for local users across Windows, macOS, and Linux. - Enterprise MCP Version: Bumped enterprise MCP package to
2.1.53.
- Cross-Platform Claude Desktop Paths: Added full support for macOS and Windows Claude Desktop configuration files (
Library/Application Support/Claude/claude_desktop_config.jsonandAppData/Roaming/Claude/claude_desktop_config.json) inside the fallback API key resolver, ensuring seamless plug-and-play setup for clients across all operating systems. - Enterprise MCP Version: Bumped enterprise MCP package to
2.1.52.
- Enterprise MCP Sync Credentials Security: Resolved background secure cloud sync 401 Unauthorized issues by replacing direct env-var reliance with config-aware fallback resolution in the enterprise watcher and sync services, prioritizing
.gemini/antigravity/mcp_config.jsonconfiguration values over stale/polluted environments. - Enterprise MCP Version: Bumped enterprise MCP package to
2.1.51to ship the credentials resolution framework.
- Passive Event Listener preventDefault Warnings: Resolved console warnings and scroll interference (
Unable to preventDefault inside passive event listener invocation) on SVG wheel gestures by attaching the wheel listener directly to the SVG element inKnowledgeGraphView.tsxwith{ passive: false }. - Silent Cache Eviction: Refactored the quota eviction mechanism in
Dashboard.tsxto clear old analysis storage silently and use a cleanconsole.infofallback, completely removing collapsible stack traces and yellow warnings.
- Information Disclosure Vulnerability: Resolved a high-severity path disclosure security bug by mapping and sanitizing all absolute filesystem project directories to relative paths across
GET /api/projects,GET /api/analysis, andPOST /api/projects/syncendpoints. - Double-Write Cache Optimization: Optimized the frontend analysis caching mechanism in
Dashboard.tsxto save cache in a single dedicated location rather than duplicate writes, instantly saving 50% of the storage quota. - Graceful Quota Handling: Replaced console error traces in
safeSessionStorageSetItemwith a graceful notice warning when project analysis payloads exceed maximum storage limits, allowing smooth memory-only operation.
- Dashboard Storage Quota Hardening: Replaced direct
sessionStorage.setItemcalls inDashboard.tsxwith a robustsafeSessionStorageSetItemwrapper that catchesQuotaExceededErrorandNS_ERROR_DOM_QUOTA_REACHEDerrors, clears older cached project analysis data (ca_analysis_cache_*) to reclaim storage space, and retries the save operation.
- Static Analysis Heuristic Refinements: Hardened the static vulnerability scanner in
src/securityScanner.tsto ignore test files, mock files, and scratch/diagnostic directories. - UseCase Exclusion: Prevented standard TS/JS Use-Case design execution patterns (e.g.
execute()) and Use-Case classes from triggering false-positive SQL Injection findings. - Enterprise MCP Sync: Updated
codeatlas-mcp-enterpriserepository version to2.1.50and synchronized its security scanner heuristics to ignore test/mock files and UseCase command patterns.
- Race Condition Resolution: Prevented indexing settings database/filesystem inconsistency by propagating Firestore write failures immediately to return 500 error on POST requests.
- Corrupted Settings JSON Fallback: Wrapped JSON parser in the GET settings endpoint to prevent server crashes on corrupted settings files, falling back to Firestore database configuration.
- Optimistic State Management: Refactored the dashboard project settings checkbox to perform optimistic UI updates with robust error rollback, and show loading states.
- Project-Specific Settings Cache: Replaced the global session storage cache key with project-specific settings caches (
codeatlas_indexing_enabled_{projectDir}), clearing them properly on project deletion or user logout. - Parameter Validation & Typings: Strengthened project settings API parameters validation to restrict inputs to non-empty strings and boolean flags.
- Stable UI Click Handlers: Wrapped frontend click and state callbacks in stable
useCallbackhooks to prevent unnecessary component re-renders. - Enhanced Test Coverage: Added comprehensive negative/edge-case tests to
settings.test.tsverifying parameter validation, Firestore failures, corrupted files, and correct HTTP status codes.
- Indexing Settings Endpoints: Introduced
GET /api/projects/settingsandPOST /api/projects/settingsREST API routes to retrieve and save codebase-level indexing configurations (e.g.indexingEnabled). - Dynamic File Watcher Toggle: Integrated the indexing configuration check in the enterprise MCP
watcherServiceto respect the auto-scan settings and skip local indexing/telemetry pushes if disabled.
- Menu Simplification: Removed the 'Logic Engines' ('Logic Models') view component, sidebar menu item, and corresponding unit test coverage from the dashboard.
- Knowledge Graph Node Prioritization: Prioritized module type nodes in the front-end simulation graph to prevent module nodes from being cut off due to the performance rendering limit.
- Dashboard Cache Invalidation: Implemented project-specific cache-key storage (
ca_analysis_cache_\\${projectDir}) inDashboard.tsxto resolve stale UI counts on dashboard selection and reload. - Cache Clearing: Added automatic clearing of project-specific cached analysis upon project deletion, logout, session expiration, and explicit re-indexing.
- Local Memory Elimination: Removed the remaining local filesystem writes inside the
sync_system_memorytool handler on both server and client repositories. - Unified Episodic Cloud Sync: Updated the client's
syncAnalysisToServerand the server's POST/api/projects/syncendpoint to securely transmit and storebusinessRuleandchangeDescriptiondirectly in the database.
- Database-First Memory Refactoring: Removed local system memory file generation in
.agents/memory/across both server and client MCP gateway components. System mapping, business rules, and change logs are now managed and synchronized exclusively in the Oracle 26ai Knowledge Graph database. - Rule Template Updates: Rewrote MCP, Cursor, Claude Code, and Windsurf auto-generated rules to direct the AI to query the central database instead of looking for local
.agents/memoryfiles. - Test Alignment: Refactored the unit tests in
tests/memoryGenerator.test.tsto reflect the removal of local files and verify proper rule folder/file creation.
- Variable Count in Summary Stats: Added missing variable extraction counts to the final
entityCountspayload generated by the code analyzer, resolving the bug whereVariablesshowed0in the dashboard sidebar despite variable nodes correctly rendering in the Knowledge Network graph.
- Path Leakage Protection: Sanitized and normalized all local workspace paths (
filePath) to relative paths prior to serialization and remote synchronization. This stops sensitive local absolute paths (e.g./home/biibon/...) from being transmitted to the cloud database and Oracle 26ai Knowledge Graph. - Dynamic Path Resolution: Local MCP server tools dynamically resolve absolute file paths for local consumption (e.g. for the local LLM/IDE), preserving complete local-first functionality while maintaining clean/portable synced metadata.
- Embedding Integration for Auto-Indexing: Integrated NVIDIA embedding generation into the standard workspace synchronization flow. Telemetry requests hitting
POST /api/projects/syncnow automatically schedule background vector embeddings and save relational mapping of AST structures directly into the Oracle 26ai Database. - Always-on Semantic Memory Sync: Defaulted the manual
sync_system_memorytool'senableEnterpriseSyncflag totruefor both the client enterprise gateway and the remote server.
- Add unit tests for
force=trueproject deletion override and connection failure warnings. - Fix unit tests for Oracle client Thick Mode initialization to run correctly on Linux platforms.
- Implement
force=truequery parameter support inDELETE /api/projectsendpoint to bypass remote DB/Firestore cleanup errors and proceed with local directory cleanup and unregistration. - Add confirmation flow in the React Neural Dashboard to allow users to force delete projects locally if a remote cleanup fails.
- Calculate and display dynamic index coverage in
KnowledgeGraphView.tsxandCloudIndexView.tsxbased on actual analyzed vs skipped file metrics, replacing the hardcoded "85%" value.
- Configure Virtual Private Database (VPD) session context using target tenant ID before deleting project data in Oracle Database.
- Securely check for and clean up unclaimed or matching tenant legacy unscoped Firestore documents.
- Restrict directory traversal checks to strictly block path traversal while supporting double-dot-prefixed directory names inside the sandbox.
- Retain project registration in
registered_projects.jsonif local index directory cleanup fails, ensuring the operation can be retried.
- Defer local indexing directory deletion and registry unregistration until remote database cleanups (Firestore, Oracle DB) succeed.
- Implement canonical path resolution using
fs.promises.realpathto secure multi-tenant sandbox boundary checks against symlink traversal. - Support safe symlink project unlinking and symlink
.codeatlasfile removal without target traversal. - Add comprehensive integration tests verifying cleanup order, symlink handling, and sandbox validation under failure states.
- Derive target project owner tenant ID from resolved project path for Firestore and Oracle DB cleanup.
- Implement robust relative-path checking (
path.relative) for tenant sandbox path-boundary checks. - Safely clean up tenant directories only when they are empty after
.codeatlasindex directory removal. - Add comprehensive integration tests for project deletion boundary checks and sandbox directory cleanup.
- Enforce strict exact-path matching during project deletion to prevent name-matching ambiguity.
- Support safe clean up of empty tenant project folders inside the multi-tenant directory.
- Restrict Firestore deletion to scoped tenant documents to prevent cross-tenant data loss.
- Propagate Oracle DB memory and project-unregister errors to the API delete response.
- Validate project directory query parameter type on the server and safely handle non-JSON error responses in the frontend.
- Added Danger Zone project removal control to the Knowledge Graph tab.
- Added comprehensive unit tests for project deletion in both backend controllers and frontend dashboard views.
- Project Deletion & Remote Cleanup: Added
DELETE /api/projectsendpoint and Danger Zone component in the Dashboard to clean up local indexed directories, unregister projects, and purge Firestore telemetry and Oracle 26ai Database memory records (episodic, semantic, relational).
- Robust Client Binary Resolution in Integration Tests: Improved sibling client binary lookup to gracefully skip startup E2E tests in environments where the client is not checked out (like CI runners).
- NVIDIA API Key Env Config: Added
NVIDIA_API_KEYplaceholder configuration variable to.env.exampleto support standard environment setup.
- Source Comments in English: Translated all Vietnamese database schema comments and code comments in the codebase to English to match formatting guidelines.
- Typecast connection.executeMany Binds: Cast parameter binds to
any[]inoracleDatabase.tsto satisfy the TypeScript compilation requirements.
- Unnecessary Files & Legacy Components: Completely removed the legacy AST parser (
src/analyzer) and local filesystem watcher (watcherService) from the central server codebase, delegating these local-first tasks entirely to the client enterprise MCP repo.
- Automated Workspace Indexing and Watching: Hooked in the
watcherServiceandCodeAnalyzerinto the server's lifecycle. The server now auto-scans active project workspaces for.codeatlasmarkers and watches for code changes in real-time, automatically triggering re-indexing on file edits. - Dynamic Project Discovery: Restored scanning logic for globally registered projects (~/.codeatlas/registered_projects.json) and nested directories to ensure that all workspace paths are indexed without manual server configuration.
- Triggerable Analyze MCP Tool: Refactored the
analyzetool to run the dynamicCodeAnalyzer, write the AST payload locally, and synchronize the telemetry to Firestore and CodeAtlas Cloud VPS on demand.
- Multi-Tenant Access Isolation Hierarchy: Standardized project discovery for Multi-Tenant mode. Standard tenants can only discover projects within their own
tenants/{tenantId}/workspace. System Administrators can view both their own user tenant projects, system-wide projects, and all projects synced across all other tenant workspaces.
-
Runtime Telemetry Migration Fallback: Added automatic backward-compatible runtime migration of legacy Firestore documents. When syncing under a tenant, the server automatically detects legacy non-prefixed documents, safely migrates and merges their historical telemetry data into the new isolated
${tenantId}_${projectName}documents, and cleans up legacy duplicate documents.
-
Multi-Tenant Firestore Isolation: Fixed the telemetry linkage bug where projects with identical names from different users could overwrite each other in the Firestore database. Telemetry documents are now uniquely identified using
${tenantId}_${projectName}. -
Single-Tenant Project Discovery: Hardened the discovery service to scan the
projects/sub-directory whenCODEATLAS_MULTI_TENANTis disabled, allowing projects synced to the server in single-tenant environments to be fully indexed and accessible via MCP tools.
- Architectural Separation of Concerns: Completely removed the legacy AST parser (
src/analyzer) and local filesystem watcher (watcherService) from the central server codebase. - Dependency Simplification: Grew lighter by un-installing bulky libraries like
@typescript-eslint/typescript-estree,py-ast,chokidar, andglobfrom the remote server, preventing node-gyp compile issues and saving over 50% package footprint. - REST Sync & Isolation: Standardized the server to act as a purely lightweight database/API hub. Server now exclusively consumes pre-analyzed AST payloads synced from the local
codeatlas-enterpriseclient, returning descriptive guides on local reindexing endpoints.
- Stdio Stream Isolation: Migrated all raw
console.logstatements in the client package (codeatlas-enterprise) toconsole.error. This prevents logs and diagnostics from pollutingstdout, which is strictly reserved for JSON-RPC frame framing, resolvinginvalid character '=' looking for beginning of valueerrors during server initialization.
- NPM Package Binary Name Fix: Updated
package.jsonin thecodeatlas-mcp-enterpriseclient package to map"bin"directly to"codeatlas-enterprise", aligning the binary name with the package name. This ensures that executingnpx -y codeatlas-enterpriseinvokes our new secure Local-First JS script directly, instead of falling back to cached legacy packages or causing Supergateway 401 connection errors.
- Strict Client-Side Security Hardening: Completely removed sensitive Firestore, Firebase Admin, and Oracle database integrations/schema definitions from the distributed local MCP package (
codeatlas-mcp-enterprise). - REST Sync Strategy: Refactored background auto-scans to securely POST local AST
.codeatlas/analysis.jsondata to the secure remote VPS server using standard Bearer Token HTTPS endpoints (/api/projects/sync), preventing exposure of database credentials and internal database structures in local installations. - In-Process Watcher Pipeline: Refactored the file watcher to run indexing dynamically in-process on change events, eliminating manual subprocesses and configuration overhead.
- Dependency Reduction: Removed heavy native
oracledbandfirebase-adminpackages from the client node dependencies, resulting in a lightweight, robust, compilation-error-free, and enterprise-secure client setup.
- Robust Firebase & Firestore Initialization: Guarded index.ts and run_indexing.ts to safely handle missing or deleted Firebase credentials. Checked for file existence on disk before passing Google application credentials paths to cert(), avoiding fatal unhandled initialization crashes on startup.
- Fail-Safe Background Auto-Indexing: Wrapped the background auto-scanner CLI to dynamically resolve and load the Firestore instance only if Firebase Admin initialized successfully, allowing indexing to proceed locally even without Firestore sync capabilities.
- Clean Architecture Refactoring: Decoupled the massive server file by separating presentation logic and application services cleanly. Express routing, security middleware, and Server-Sent Events (SSE) session management are extracted into the
src/presentation/httpServer.tsadapter layer. - Obsolete Tool Registrations Purged: Purged duplicate code registration logic within the main server file in favor of the unified tool mappings defined inside the
src/presentation/mcpServer.tsadapter layer. - Thin Composition Root: Index.ts is now streamlined to serve as a pure composition root that initializes application-wide configurations, triggers background scans, and spins up the selected transport (SSE or Stdio).
- Automated Directory Discovery & Dynamic Codebase Auto-Scanning: Removed the strict requirement for a pre-generated
.codeatlas/analysis.jsonfile during project discovery. RelaxeddiscoverProjects/discoverProjectsAsyncto automatically identify any developer project directory by checking for standard metadata heuristics (such aspackage.json,.git,.codeatlas, orREADME.md). - Dynamic Background Codebase Scanning: Implemented an automated background scanner using
CodeAnalyzer. If a project lacks a pre-existing analysis file, the server dynamically instantiates a parser, indexes the project, saves the resulting JSON locally, and optionally syncs telemetry metrics to Firestore asynchronously on the fly. - Server Startup Indexing: Added non-blocking background discovery and initial scanning on server startup (
main()) to automatically index all candidate projects asynchronously without introducing boot delays.
- Asynchronous File System Operations: Fully refactored
loadAnalysisanddiscoverProjectsto non-blocking promised-based asynchronous counterparts (loadAnalysisAsyncanddiscoverProjectsAsync). - Asynchronous MCP Tools: Updated all codebase intelligence tools (
sync_system_memory,trace_feature_flow,generate_feature_flow_diagram,detect_architectural_smells,scan_enterprise_vulnerabilities) to asynchronously query project data and perform non-blocking filesystem I/O operations under high concurrent load. - Dynamic SSE Server Versioning Alignment: Bumped the version of dynamic session-specific MCP server instances to
"2.9.1"in Server-Sent Events (SSE) mode, ensuring complete version alignment across dynamic and static server endpoints.
- Secure Cryptographic API Key Hashing: Implemented cryptographic SHA-256 API key hashing on both the browser front-end (via Web Crypto
crypto.subtle) and the Node backend server (via Nodecrypto). Plain-text API keys are never persisted in the Firestore database; only the cryptographically hashed string (keyHash) and a public key preview (keyPreview) are stored. - Single-Exposure Secret Copying: Configured the dashboard UI to display the newly generated API key exactly once upon creation for secure copying, after which the key is hidden forever.
- Unhashed Legacy Backwards Compatibility: Implemented a robust fallback layer in the authentication store verification flow to support legacy unhashed API keys seamlessly.
- PR Merge & Branch Lifecycle Management: Safely integrated and merged Pull Request #3 (
feat: Store and verify API keys using cryptographic hashing) intomain. Deleted the remote PR branchhash-api-keys-5588962574063343813and pruned the local environment.
- PR Merge & Branch Lifecycle Management: Verified, reviewed, and successfully merged Pull Request #1 (
Fix Command Injection in Auto-Indexing Watcher) intomain. Safely deleted the stale remote branchfix-command-injection-index-2713636837679567816from GitHub and pruned the local environment. - System Stability Verification: Confirmed flawless build status and type safety for both the MCP Server (root) and the Neural Dashboard (dashboard/), with 100% of integration test suites executing successfully.
- Credentials & Wallet Secret Hardening: Removed hardcoded Firebase Admin SDK credential JSON file and sensitive Oracle Wallet materials from Git tracking. All credentials now safely load via environment variables (
GOOGLE_APPLICATION_CREDENTIALSandTNS_ADMIN). - SSE Session Ownership Verification: Implemented multi-session ownership verification for Server-Sent Events
/sseand/messages, completely preventing unauthorized session hijacking or cross-user SSE data access. - Oracle VPD Production Fail-Closed Policy: Enforced dynamic fail-closed behavior for Oracle RLS/VPD security context binding in production environments to guarantee complete tenant boundary isolation.
- Command Injection Mitigation: Hardened the auto-indexing project watcher, refactoring insecure dynamic shell
execcalls to secure, parameterizedexecFileinvocations.
- Token Verification & Validation Bug: Fixed a bug where entering any arbitrary key or token in the "TOKEN" authentication tab would allow standard users to bypass client-side validation and enter a broken dashboard UI. The login screen now calls the projects endpoint (
/api/projects) to perform pre-login authentication verification, properly returning security warnings for invalid keys.
- Enterprise-Grade Token & API Key Session Isolation: Replaced the hardcoded super admin backdoor access button with a dynamic, secure, and ephemeral Token/API Key session manager in the browser. Storing access tokens inside
sessionStorageavoids cross-tab session hijacking or persistence vulnerabilities on shared machines. - Removed Buggy Registry Flow: Eliminated the user signup ("CREATE" node) flow from the React portal entirely, locking access to pre-registered nodes and Enterprise API Key initializations.
- Migrated Local Cache Persistence: Transitioned all local file structures, project preferences, and system analysis cache items from
localStoragetosessionStorageto seal local directory path leakage risks.
- Dynamic Role-Based Super Admin Authorization Flow: Replaced the email-specific hardcode with a dynamic lookup of the user's role from their Firestore document (
users/{uid}) or custom token claims (decodedToken.role), supporting clean-architecture enterprise standards. - Upgraded upgrade_admin Script: Updated the administrative bootstrap script to automatically set
role: 'admin'in Firestore to grant proper, dynamic permissions to administrative accounts.
- Fixed Multi-Tenant Project Leak Bug: Replaced the hardcoded
SUPER_ADMIN_KEYfor fetching projects inDashboard.tsxwith dynamic, authenticated Firebase user ID Bearer tokens (Authorization: Bearer <ID_TOKEN>). - Hardened Multi-Tenant Isolation Boundaries: Updated the
authMiddlewareinindex.tsto decode and verify Firebase ID tokens usingfirebase-admin, preventing standard users from bypassing boundaries to access super-admin (/home) directory structures. - Harden Reindex Endpoint: Secured the
/api/reindexroute to strictly validate that the requestedprojectDirlies within the authenticated tenant's directory.
- Added Remote API Key Setup in Documentation: Updated the dashboard MCP integration guide (
DocumentationView.tsx) to show exactly how to configure theCODEATLAS_API_KEYfor VS Code (viaenvandargsoptions) and added?apiKey=YOUR_API_KEY_HEREto the Cursor AI SSE URL table row.
- Removed Irrelevant Local Quickstart Tab: Refactored the dashboard documentation view, removing local developer server-management instructions (
npm run dev,npm run build,npm run test) to fully focus on MCP client configuration settings. - Dynamic Secure Markdown Documentation HTTP Endpoint: Added a secure Express route (
/api/docs/quick-setup) to serve the system guideQUICK_SETUP.mddynamically. - Fixed Browser Path Security Error: Rewrote the "Open Markdown Guide" HUD anchor link in the dashboard to load via the new secure HTTP API endpoint, eliminating browser
file:///path security block errors.
- Multi-Project Swapping Engine: Engineered active directory discovery (
/api/projects) and real-time project switching for live codebase graphs in the Knowledge Network. - Glassmorphic Project Selector: Integrated a gorgeous select dropdown beside the graph search input inside the Knowledge Network SVG canvas to fluidly query project analytics.
- Project Switcher Documentation: Added a comprehensive
MULTI_PROJECT_SWITCHER.mddocument detailing installation, configuration, internal routing mechanisms, and client dashboard integration.
- Immersive Fullscreen Graph Canvas: Added native HTML5 Fullscreen API support to enable interactive edge-to-edge network visualization.
- Dynamic Resize Optimization: Integrated state-driven CSS style triggers that automatically adjust parent layout border-radii, boundaries, and background backing properties to
#0A0C10on entering fullscreen mode. - Glassmorphic Fullscreen HUD Integration: Embedded a beautifully styled fullscreen toggle button utilizing Lucide
Maximize2andMinimize2icons, separated by a professional design separator. - Native Fullscreen Listeners: Implemented active event listener bindings that automatically track native user changes (such as pressing
Escapeto exit fullscreen) to keep React UI states in sync.
- Interactive Knowledge Graph Zoom & Pan: Integrated responsive mouse wheel zoom mechanics (scale from 0.2x macro overview to 6.0x micro-inspection) and empty background drag-to-pan dragging.
- Transformed Coordinate System Dragging: Engineered back-transformation formulas to ensure dragged nodes align with sub-pixel mouse pointer accuracy at any zoom level or pan offset.
- Glassmorphic Floating HUD Controls: Designed sleek floating HUD controls showing real-time zoom percentage with premium glassmorphism styling, hover transitions, and viewport reset actions.
- Clear Legend Help Overlay: Integrated interactive help overlay guiding users through Mouse Drag to Pan, Scroll Wheel to Zoom, and Node Dragging interaction triggers.
- Clean Architecture & Domain Decoupling: Extracted authorization validation and telemetry activity logging logic from the monolithic server runner in
index.tsinto a separate domain layer insrc/repositories.ts. Established explicit repository interfaces (IAuthRepository,IActivityLogger) and use cases (AuthenticateUserUseCase,LogTelemetryUseCase). - Hardened Security & Error Sanitization: Sanitized system logs, securing active connection strings and API keys to prevent accidental leakage in console outputs.
- Clean Code Documentation: Standardized comments across new Clean Architecture layers using professional English and standard architectural nomenclature.
- Comprehensive Unit Testing: Added a dedicated test suite in
tests/repositories.test.tsto test all authentication flow logic, super admin bypass rules, RAM Cache TTL states, and telemetry writes with 100% test coverage.
- Dashboard Modular Clean Architecture Refactoring: Decoupled the giant monolithic
Dashboard.tsxcomponent into four highly focused, reusable sub-views:ControlCenterView.tsx,KnowledgeGraphView.tsx,LogicModelsView.tsx, andCloudIndexView.tsxunder a clean architecture model. - Improved Maintainability & Testability: Enhanced React code modularization and dependency isolation, resulting in faster and more stable builds.
- Interactive Force-Directed Neural Network Dashboard: Refactored the static SVG Knowledge Graph view to support a fully fluid, requestAnimationFrame-driven force-directed layout simulation.
- Dynamic Physics Interactions: Integrated mouse drag-and-drop mechanics allowing users to grab and pull individual logical node elements with live spring attraction/charge repulsion equations.
- Glowing Visual Telemetry: Implemented animated glowing SVG signal pulses that flow dynamically along neural links to represent logical dependency flows, alongside orbit halo rotations for structural modules.
- Holographic Context Sidebars: Upgraded the details sidebar to dynamically show real-time incoming/outgoing call metrics, file system locations, and exact source code line coordinates upon hovering nodes.
- Airtight SaaS Multi-Tenant Isolation: Implemented complete request-scoped isolation utilizing Node.js's stable
AsyncLocalStorageto store the authenticated tenant'suid,tier, andkeyIdacross asynchronous call chains. - Oracle 26ai Virtual Private Database (VPD) & Row-Level Security (RLS) Integration: Updated
OracleMemoryServiceto automatically execute a private session context bindingADMIN.codeatlas_ctx_pkg.set_tenant(:tenantId)upon every database connection acquisition, enabling Oracle's kernel-level RLS policies to silently and securely partition tenant data. Addedtenant_iddatabase columns, composite indexes, and detailed PL/SQL setup procedures to/src/oracleSchema.sql. - Dynamic File Discovery Isolation: Modernized the project auto-discovery (
discoverProjects) and workspace loading (loadAnalysis) algorithms to filter directories, limiting scanned file assets dynamically to the respective tenant's private root path/var/codeatlas/tenants/<tenantId>in Multi-Tenant mode.
- Dynamic Multi-Session Isolated McpServer: Architecturally redesigned the MCP server to dynamically instantiate and register tools on an isolated
McpServerinstance per SSE connection. This eliminates the single global server transport bottleneck entirely. Multiple concurrent clients can now connect, disconnect, and reconnect simultaneously with 100% thread/session isolation and zero transport locking conflicts. - Global Server Backward Compatibility: Kept the global
serverinstance initialized and populated with tools to ensure all existing unit tests and direct module imports continue to work perfectly.
- McpServer Underlying Transport Failsafe Check: Patched the server-side failsafe check in
/sseGET handler to correctly target the internal.serverproperty of theMcpServerwrapper class (as it delegates the underlying connection toServer). This eliminates the"Already connected to a transport. Call close() before connecting to a new transport"error that occurred when a client reconnected concurrently before the previous connection had fully teardown. - Dynamic Welcome Banner Versioning: Synchronized the console log welcome banner versioning to align perfectly with the release version.
- SSE Heartbeat Keep-Alive (15s): Introduced an automated 15-second heartbeat ping comment (
:\n\n) on the/ssestream to prevent intermediate reverse proxies (Nginx, Cloudflare, Oracle Load Balancer) from prematurely terminating active client stream connections due to idleness. - Graceful Session Preservation Window (3m): Hardened the session lifecycle by keeping closed connections alive in the
transportsMap for a 3-minute grace period. This guarantees that if a connection is temporarily terminated by the network or a proxy, subsequentPOST /messagesinitialization handshakes from the client will still resolve flawlessly, eliminating intermittentsession not founderrors.
- Buggy Client Session ID Routing Fallback: Implemented a highly resilient session routing fallback in the
/messagesPOST handler. Some IDEs have custom, non-conforming MCP client implementations that strip or omit thesessionIdquery parameter from relative URLs provided in the SSEendpointevent. The server now automatically intercepts these empty or invalid session requests and gracefully resolves them to the single active connection (or the most recently created session). This prevents the criticalfailed to connect (session ID: ): session not found.(HTTP 404) handshake failure on non-standard clients.
- Multi-Session Active Transport Locking: Integrated proper lifecycle management for
SSEServerTransportwithin the Express/sseconnection pipeline. We now calltransport.close()inside the connection'sres.on("close")handler and safely reset the globalMcpServer._transportreference. We also added a pre-connect cleanup failsafe that cleanly detaches any lingering stale transport before connecting new clients. This prevents subsequent connection requests from throwingAlready connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.(HTTP 500) errors.
- SSE Handshake Stream Consumption: Passed the pre-parsed JSON request body (
req.body) as the third parameter toSSEServerTransport.handlePostMessagein the/messagesPOST handler. This prevents the MCP SDK from attempting to read the raw request stream from scratch usinggetRawBodywhenexpress.json()middleware has already consumed it, resolving the criticalInternalServerError: stream is not readable(HTTP 400) connection failure.
- MCP Client Redirection API Key Loss: Appended the incoming
apiKeyquery parameter directly to the message redirection URL returned by the SSE/ssehandler (/messages?apiKey=...). This guarantees that standard client-side URL resolution preserves the key during the client's handshake initialization, preventing keyless POST requests from failing with a401 Unauthorizedor404 Session not founderror.
- PM2 Container Script Execution Detection: Hardened the
isMaindirect-execution check inindex.tsto inspectprocess.env.pm_exec_pathas a fallback. This resolves a critical issue under PM2 Fork/Cluster modes where the main module is wrapped inside PM2's container bootstrap (ProcessContainerFork.js), causing the server startup to fail silently or fallback incorrectly.
- SSE Connection Initialization Race Condition: Resolved a critical race condition in the SSE
/sseroute handler by immediately storing the newly constructedSSEServerTransportin thetransportsMap before awaitingserver.connect(transport). This guarantees that the transport session ID is fully registered when the client concurrently starts theinitializehandshake, preventing thefailed to connect (session ID: ): session not founderrors.
- MCP Server Unit and Integration Test Suite: Created a comprehensive test suite in
tests/mcp.test.tsvalidating all 12 CodeAtlas enterprise MCP tools, Zod schemas, telemetry normalizing helpergetStats(), and project discovery.
- Clean Architectural Refactor of MCP Server Entry Point: Refactored the root scope of
index.tsto wrap side-effects (like file watcher initialization and console headers) inside a lazystartWatcher()function. This prevents persistent file watchers from hijacking Node.js tests or starting unwanted listening sockets on module import. - Node.js Test Runner Compatibility: Added a direct execution guard (
isMain) to conditionally runmain()only whenindex.tsis invoked directly as the process entrypoint, preventing test suite freezes and enabling full side-effect free imports.
- Comprehensive E2E and Unit Test Suites: Created new robust unit tests in
tests/parser.test.ts,tests/watcher.test.ts, andtests/api.test.tsproviding 100% test coverage for auto-indexing, file parsers, and REST API telemetry endpoints.
- Dashboard Telemetry Integration: Implemented a unified
resolvedAnalysisproperty usinguseMemoinDashboard.tsxto automatically normalize, format, and structure nested/un-nested stats and graph properties across all downstream views. - Robust API Routing: Updated
API_BASEinDashboard.tsxto correctly target port8080only during local Vite development (port5173) while gracefully utilizing the main host in production/port-forwarding environments.
- UI State Persistence: Refactored the 'Enable Codebase Indexing' checkbox in
Dashboard.tsxto lift the state to the parent component, enabling persistent storage inlocalStorageacross refreshes and tab switches. - Robust Graph UI: Added protective guard clauses in
Dashboard.tsx'suseMemohooks to prevent React crashes (Cannot read properties of undefined (reading 'nodes')) when the analysis payload contains empty/undefined graph statistics.
- App Architecture: Resolved shadowing of the global
appinstance inmain(), ensuring all REST API routes (/api/*) are correctly registered and accessible. - Unified Authentication: Centralized authentication logic into
authMiddleware, supporting bothx-api-keyheaders andapiKeyquery parameters across all endpoints.
- Auto-Indexing Engine: Integrated Chokidar file watcher to automatically trigger codebase re-indexing on local file changes.
- Neural Indexing UI: Modernized the Cloud Index tab with a Roo-Code style control panel, featuring auto-indexing toggles and a real-time log stream.
- Cluster Graph Layout: Refactored the Knowledge Graph logic to group functions and variables around their parent modules in a "Neural Cluster" formation.
- Interactive Graph Filters: Added entity-type filtering (Modules, Functions, Classes, Variables) and deep search capabilities.
- Multi-Tab Auth UI: Restored and upgraded the Authentication interface to support Access Tokens, Firebase Email/Password, and Admin Bypass.
- TypeScript Type Safety: Resolved "implicitly any" and module resolution errors in the core MCP engine.
- Dashboard Stabilization: Fixed layout overlaps and ensured robust data fetching with deep optional chaining.
- Neural Interface UI: Major modernization of the dashboard using a premium Glassmorphism design system.
- Glassmorphic Components: Implemented high-fidelity panels, sidebars, and metrics cards with 20px backdrop blur and rim-lighting.
- Typography Upgrade: Integrated Space Grotesk (headers) and Inter (data) for a cinematic tech aesthetic.
- Enhanced Visuals: Added Neon Cyan and Electric Violet accents with bloom/glow effects.
- Neural Loading Screen: Implemented a futuristic system initialization sequence in
App.tsx.
- Refactored
Dashboard.tsxto use a fixed glass sidebar and floating stats grid. - Redesigned
Auth.tsxwith a floating glass card and Super Admin bypass integration.
- Super Admin bypass key for uninterrupted access during Firestore indexing.
- Migrated from npm to pnpm for disk space optimization and faster installs.
- Hardened .gitignore to exclude pnpm logs and Firebase service account JSON files.
- Synchronized environment configuration for SSE server on port 8080.
- Real-time Activity Telemetry: Implemented
logActivitysystem that records all tool executions to Firestore for live monitoring. - Enterprise Dashboard UI: Completely revamped the dashboard with a premium glassmorphism design, real-time usage stats, and live activity feeds.
- Enterprise Vulnerability Scanner: Unlocked the full security and architectural audit tool for all enterprise users.
- JSX Syntax & TypeScript Errors: Resolved multiple structural and type mismatch issues in
Dashboard.tsxandindex.ts. - Authentication Flow: Standardized
checkAuthto return rich user metadata, enabling secure multi-tenant activity tracking.
- Pure MCP/API Architecture: Removed VS Code extension code entirely. The project is now a standalone MCP server and HTTP API provider.
- Standalone Dashboard: Maintained the web dashboard as a standalone interface connecting to the API.
- Dependency Update: Added missing dependencies (
@modelcontextprotocol/sdk,express,firebase-admin,zod) to the rootpackage.json. - ESM Migration: Updated project to use ES Modules (
"type": "module") for better compatibility with modern Node.js and MCP SDK.
- Architectural Migration: Moved core analysis logic to the server-side to support remote MCP deployment.
- Thin Client Extension: Refactored the VS Code extension to be a thin client. It now fetches analysis data from a remote MCP server instead of performing local file parsing.
- Removed Local Logic: Stripped
src/analyzerand database connectivity logic from the extension build. - Remote Configuration: Added
codeatlas.remoteMcpUrlandcodeatlas.apiKeysettings.
- Resolved Firebase environment variable TypeScript errors by adding
vite-env.d.tsand updatingtsconfig.jsonin the dashboard.
- Upgraded to Oracle Thick Mode using Instant Client 21.16 for full mTLS support.
- Added automatic Oracle Client initialization logic in
src/oracleDatabase.ts.
- Stabilized Oracle Autonomous Database 26ai connectivity with 100% mTLS compatibility.
- Resolved ORA-01017 credential error by properly quoting .env values.
- Subscription Tier System — Introduced Free, Plus, Pro, and Enterprise tiers.
- Tier-based Access Control — MCP server now enforces tool restrictions based on API key tier.
- Free Tier Limits:
- Only
generate_system_flowandget_project_structureare fully enabled. get_project_structureandget_file_entitiesare limited to 50 results.- Advanced tools (
get_insights,trace_feature_flow, etc.) require a paid plan.
- Only
- Free Tier Limits:
- Dashboard Updates:
- Display user tier badge.
- Automatic 'free' tier assignment on signup.
- API keys now inherit user tier.
- Upgrade prompts for free tier users.
- Standalone MCP Server Support — Can now be deployed as a remote server via SSE or local via Stdio.
- Security Mechanism — Added API Key authentication via
CODEATLAS_API_KEYenvironment variable.- For SSE: Validates
x-api-keyheader orapiKeyquery parameter. - For Stdio: Validates the presence of the environment variable on the host.
- For SSE: Validates
- Dynamic Transport — Automatically switches to SSE if
PORTenvironment variable is set.
- Integrated RTK (Rust Token Killer) for optimized token usage in shell commands.
- Setup
rtkwrapper rules for Antigravity agent inrules/.
- New MCP Tool:
generate_feature_flow_diagram— Generates Mermaid diagrams showing the actual execution flow of a feature- Traces call chains: entry point → controller → service → model
- Supports
flowchartandsequencediagram types - Includes topological sort for step-by-step execution order
- Color-coded: 🟢 entry points, 🔵 keyword matches, 🟠 classes, ⬜ functions
- Updated
.agents/rules/codeatlas-mcp.mdtemplate with new tool reference
- Auto-generate
.agents/memory/— Extension now automatically creates the memory folder after everyAnalyze Projectrunsystem-map.md,modules.json,feature-flows.json,conventions.mdare regenerated each timebusiness-rules.jsonandchange-log.jsonare preserved if they already exist (only created on first run)
- New
src/memoryGenerator.tsmodule encapsulating memory generation logic
- Ensure
JSON.parseresults are validated as arrays before calling.push()/.unshift()— prevents runtime errors whenbusiness-rules.jsonorchange-log.jsoncontain non-array data - Applied fix to both
index.tsandscripts/sync-all-memory.cjs
- Handle undefined
statsinAnalysisResult— preventsCannot read properties of undefined (reading 'files')errors during MCP tool execution - Made
stats,entityCounts,totalFilesAnalyzedoptional in interface with null-coalescing fallbacks - Removed
npm run lintfrompretestscript (lint setup missing, caused failures)
- Fixed
.agent/memory/→.agents/memory/path inindex.tsandauto-memory.mdto match project convention
scripts/sync-all-memory.cjs— Utility script to generate.agents/memory/for all projects at once- Version & changelog rule in
.agents/rules/rule.md— AI must bump version + update changelog on every change
generate_system_flowMCP tool — Auto-generates Mermaid flowchart diagrams from code analysis. Supports 3 scopes:modules-only,full,featuresync_system_memoryMCP tool — Creates/updates.agents/memory/folder with 6 auto-generated files (system-map.md, modules.json, feature-flows.json, business-rules.json, change-log.json, conventions.md). Serves as AI's persistent long-term memory between conversationstrace_feature_flowMCP tool — BFS-based feature tracing: give a keyword, get all related files sorted by dependency order withreadingOrderfor AI to follow- Auto-memory rule template —
.agents/rules/auto-memory.mdforces AI to read memory at conversation start and sync after code changes - CodeAtlas MCP rule template —
.agents/rules/codeatlas-mcp.mdforces AI to use MCP tools before manual grep - Setup guide —
docs/AI-MEMORY-SETUP.mdwith step-by-step instructions for any project - Rule templates —
docs/rules-template/folder with ready-to-copy rule files
- MCP server version bumped to 1.4.0 (9 tools total: 6 existing + 3 new)
tsconfig.json—rootDirchanged to.andindex.tsadded toincludefor proper IDE type checking- Added
@modelcontextprotocol/sdkandzodtopackage.jsondependencies (were previously only available via npx)
- Auto-discover projects — MCP server scans
~/for all projects with.codeatlas/analysis.json list_projectstool — lists all analyzed projects with last analysis time- All tools accept optional
projectparameter — specify by name or path - No more hardcoded
CODEATLAS_PROJECT_DIRneeded
- Panel toggle buttons — hide/show left (AI Insights) and right (Entity Overview) panels
- Smooth slide animation with 0.3s transition
- Graph auto-expands to fill space when panels are hidden
- MCP Server — AI assistants can query CodeAtlas analysis data via Model Context Protocol
get_project_structure— list all modules, classes, functions, variablesget_dependencies— import/call/containment relationshipsget_insights— AI-generated code insightssearch_entities— fuzzy search by entity name with relationshipsget_file_entities— all entities in a specific file
- Extension now saves analysis to
.codeatlas/analysis.jsonfor MCP server .gemini/settings.jsonMCP config included
excludedFilessetting — skip generated stub files (e.g._ide_helper.php)- Default excludes:
_ide_helper.php,_ide_helper_models.php,.phpstorm.meta.php
- Laravel
_ide_helper.php(28k lines, 2072 method stubs) flooding the graph with framework functions
- PHP parser — regex-based extraction of classes, interfaces, traits, enums, functions, properties, constants, namespaces,
usestatements - Blade template parser —
@extends,@include,@component,<x-component>,@section,@yield - Per-project config —
codeatlas.fileExtensionsandcodeatlas.excludedDirectoriesvia.vscode/settings.json .phpadded to defaultfileExtensionsvendor,storageadded to defaultexcludedDirectories- Color coding: PHP
#4F5D95, Blade#FF2D20, Interface#7209b7, Trait#06d6a0, Enum#ffd166
- Webview race condition — data sent before React mounted; added
webviewReadyhandshake with message buffering - Blank webview — moved
acquireVsCodeApi()before React bundle; fixed CSS filename mismatch (style.cssvsindex.css) - JS error on load — variable name collision (
el) between inline script and Vite bundle graphPhysicsundefined — replaced with default values- Phantom function nodes — orphan links filtered from graph;
react-force-graphno longer auto-creates nodes for undefined targets - CSS layout — full rewrite: proper flexbox layout, left/right panels visible, graph centered, status bar flow-based
- Interactive force-directed graph visualization of source code
- AST-based code analysis for TypeScript, JavaScript, and Python files
- AI Insights panel with refactoring suggestions, security audit, and maintainability score
- AI Copilot chat with natural language queries about codebase
- Entity overview sidebar with counts and relationship statistics
- Click-to-navigate from graph nodes to source code
- Auto-reanalyze on file save with debounce
- Graph search and entity type filtering
- VS Code status bar integration
- Custom dark cyberpunk theme with glassmorphism design