Changelog
All notable changes to the Flowbaby extension will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.6.0] - 2025-12-11
Changed
- Documentation refresh: Updated extension README and marketplace-facing documentation for clarity around setup, features, and troubleshooting. No functional code changes compared to 0.5.23.
[0.5.23] - 2025-12-11
Added
- Per-Workspace Python Bridge Daemon (Plan 054): Introduced a long-lived Python bridge daemon that eliminates per-request Python startup overhead (~2-3 seconds) by keeping Cognee imported and warm. Retrieval and capture requests now respond in ~300ms instead of 2-3s.
- New Configuration Options:
Flowbaby.bridgeMode: Choose betweendaemon(default, faster) orspawn(legacy per-request mode) for bridge executionFlowbaby.daemonIdleTimeoutMinutes: Configure how long the daemon stays alive after inactivity (default: 5 minutes)
- Daemon Lifecycle Management: The extension automatically starts, monitors, and restarts the daemon as needed. Graceful shutdown on workspace close.
- Automatic Fallback: If daemon mode fails repeatedly, the extension automatically falls back to spawn-per-request mode for reliability.
Changed
- Bridge Architecture: Retrieval and ingestion now route through the daemon manager when daemon mode is enabled, with transparent fallback to the existing spawn-per-request pattern.
Technical
- Added
PythonBridgeDaemonManagerTypeScript class for daemon lifecycle management - Added
daemon.pyPython script as the long-lived bridge process entrypoint - Added JSON-RPC 2.0 communication protocol over stdio for daemon IPC
- Added daemon health monitoring with automatic restart and exponential backoff
[0.5.22] - 2025-12-10
Fixed
- Data Integrity Check False Positives: Fixed initialization data-integrity check that was incorrectly reporting "Data mismatch: X SQLite entries but only Y vector tables" warnings. The previous implementation counted LanceDB directories (a fixed ~6 tables in Cognee 0.4.x) instead of actual row counts, producing false positives once SQLite rows exceeded the table count. The fix now compares SQLite document counts against actual LanceDB embedding row counts from the
DocumentChunk_texttable.
Added
- Shared Data Integrity Utilities: New
data_integrity_utils.pymodule provides shared helper functions (get_sqlite_document_count,get_lancedb_embedding_count,evaluate_data_health) used by bothinit.pyandrecover_data.pyfor consistent data integrity checking. - Improved Health Semantics: Data integrity warnings now use smarter thresholds—small workspaces (≤5 documents) with minor discrepancies are treated as healthy to avoid noise, while significant mismatches in larger workspaces trigger appropriate warnings.
Changed
- LanceDB Row Counting: The
lancedb_countfield in initialization JSON output now represents actual embedding row count rather than table directory count. This is a semantic change but maintains backward compatibility for consumers checking thehealthyfield.
[0.5.21] - 2025-12-10
Changed
- Retrieval Timeout Increased: Increased retrieval timeout from 15 seconds to 30 seconds to accommodate large workspaces and cold-start environments. Retrieval operations will now wait longer before timing out, reducing spurious failures in legitimate high-latency scenarios.
- Retrieval Diagnostics: Added phase markers (bridge call start/finish) and duration logging to retrieval operations for improved performance diagnostics and future bridge-daemon compatibility (Plan 054).
Added
- Capture Input Visibility: Added status bar message when capture input opens (
$(edit) Flowbaby capture: input box open at top — Enter to save, Esc to cancel) to draw attention to the input UI. - First-Time Capture Hint: One-time onboarding toast message for new users explaining that the capture input appears at the top of the window, stored in globalState to avoid repeated notifications.
- Improved Capture Prompt: Updated capture input prompt and placeholder text for better discoverability (
Flowbaby capture: type in the top input box (Esc cancels)).
[0.5.20] - 2025-12-10
Fixed
- Tool Registration Guards: Fixed over-aggressive guard logic that incorrectly set
setToolsRegistered(true)based on host inventory presence rather than actual registration outcomes. Guards now follow evidence-only semantics per architecture invariant 4.2. - All-or-Nothing Tool Set Registration: Tool registration now treats both
flowbaby_storeMemoryandflowbaby_retrieveMemoryas an atomic unit—the guard is only set if all tools register successfully or return known duplicate errors. - Copilot Tool Availability: Resolved issue where Flowbaby tools would not appear in GitHub Copilot's tool list after non-initial activations because guards were being set prematurely.
Added
- Duplicate Error Classifiers: Added
isKnownDuplicateToolError()andisKnownDuplicateParticipantError()helper functions to centralize error classification and provide forward-compatible matching for VS Code API changes. - Host Tool Snapshots: Added
createHostToolSnapshot()for compact diagnostic snapshots of registered tools (observational only, does not affect guard state per invariant 4.3.1). - Plan 056 Test Suite: Added comprehensive tests for guard behavior, duplicate-error classification, tool/participant independence (invariant 4.5.4), and evidence-only semantics.
Changed
- Participant Registration: Updated
registerFlowbabyParticipant()to use centralizedisKnownDuplicateParticipantError()classifier and moved guard setting to immediately after successful registration. - Guard Lifecycle: Registration guards are now completely independent—tool guard state does not affect participant guard state and vice versa, ensuring one subsystem's registration issues don't block the other.
[0.5.19] - 2025-12-07
Added
- Activation ledger now records workspace path, health/requirements state, registration guards, and deactivation details for every activation, enabling lifecycle reconstruction across test runs.
- Structured safePush diagnostics capture context fingerprints, host tool snapshots, and test-mode push probes so DisposableStore anomalies can be attributed to specific intents.
- Workspace initialization isolation from Plan 050 is preserved under repeated activations, with each workspace tracked independently so a broken workspace cannot contaminate others sharing the same window or host.
- Single-activation lifecycle model from Plan 051 is enforced via registration helpers and activation ledger state, ensuring that extension-owned registrations are routed through lifecycle-safe paths and never pushed into known-disposed contexts.
Changed
- Language model tool and chat participant registration skip when host inventory already contains Flowbaby assets, reducing duplicate registration noise in reused test hosts.
- Test-mode prompt handling now logs suppression reasons with activation metadata and avoids modal dialogs that block CI runs.
- Debug logging automatically enables in test mode to surface lifecycle and registration traces during automated suites.
[0.5.18] - 2025-12-07
Added
- Global Shortcut:
Ctrl/Cmd+Alt+Fnow works across VS Code views without focus restrictions, still prompting for capture input when no editor selection is available. - Session Toggle: New
Flowbaby.sessionManagement.enabledsetting (default on) lets users disable session IDs for stateless interactions. - Dependency Mismatch Notice: Early hash check marks the workspace as needing setup and prompts to refresh when bridge dependencies are out of date.
Changed
- Graph Retriever Debug Gating: Cognee graph completion debug logs now obey the
Flowbaby.debugLoggingsetting to reduce noisy output by default. - Workspace Isolation: Initialization status is tracked per workspace to avoid a broken workspace contaminating others in the same window.
[0.5.17] - 2025-12-05
Added
- Dependency Enforcement: Added strict verification of Python environment dependencies. The extension now blocks operations and prompts for updates if
requirements.txthashes do not match the installed environment. - Environment Guardrails: Added
FlowbabySetupServicechecks toFlowbabyContextProviderand command handlers to prevent crashes from stale dependencies. - Update Modals: Added user-friendly modals to guide users through updating managed or external environments.
Changed
- Verification Logic:
FlowbabySetupServicenow tracks verification state and only allows operations when the environment is fully verified.
[0.5.16] - 2025-12-05
Fixed
- Ingestion Crash: Fixed a critical
UnboundLocalErrorin the background ingestion process (cognify-onlymode) that caused crashes when API keys were missing. - Notification Throttling: Removed throttling for failure notifications to ensure users are always alerted to issues. Success notifications are now only suppressed by user setting, not by frequency.
[0.5.15] - 2025-12-05
Changed - Cognee Upgrade & Session Infrastructure
- Cognee 0.4.1 Upgrade: Upgraded managed Python environments to
cognee==0.4.1for improved stability and native session management support. - Session-Aware Retrieval: Added infrastructure to pass session IDs to the memory engine when available, laying the foundation for conversational memory.
- Workspace Caching: Enhanced workspace-local caching configuration (
CACHE_ROOT_DIRECTORY) to support future session features. - Isolation: Maintained strict workspace isolation and backward compatibility for all ingestion/retrieval workflows.
[0.5.14] - 2025-12-05
Added - Unified Session Context
- Implemented unified session context for chat threads. Flowbaby now maintains conversational continuity by passing a consistent
session_idto the memory engine for each chat thread. - Updated Python bridge to accept and map
__user_session_idto Cognee'ssession_id.
[0.5.13] - 2025-12-03
Changed - Maintenance Release
- Version bump only to align with latest internal planning and release numbering. No user-visible functionality changes beyond those already included in 0.5.12.
[0.5.12] - 2025-12-03
Fixed - Windows Installation and Stability
Windows Support Release - Resolves remaining Windows installation issues and makes the bridge fully reliable on Windows.
Improvements
- Background Ingestion on Windows: Switched background ingestion to use
pythonw.exewhen available, preventing stray console windows and improving stability for long-running operations. - Initialization Race Fix: Resolved a fresh workspace initialization race on Windows, ensuring the bridge environment and Kuzu databases are fully ready before marking setup as complete.
- Kuzu and DLL Handling: Added targeted Windows Kuzu tests and fixed Python detection / Kuzu DLL load issues, resulting in the first fully working end-to-end Windows configuration.
- Platform Prerequisites: Updated documentation to call out the Visual C++ Redistributable requirement on Windows, reducing installation surprises.
[0.5.11] - 2025-12-01
Added - Plan 047: Enhanced Setup Diagnostics
Diagnostics Release - Improves troubleshooting for environment setup failures by exposing detailed command execution logs and system errors.
Improvements
- Command Transparency: Setup logs now show the exact command, arguments, and working directory for every subprocess execution.
- System Error Codes: Failures now report specific Node.js system error codes (e.g.,
ENOENT,EACCES) instead of generic messages. - Full Stack Traces: Error logs include full stack traces to pinpoint the exact failure location in the code.
- Automatic Log Focus: The Flowbaby Output Channel is automatically revealed when a setup error occurs, ensuring immediate visibility of diagnostic information.
- Captured Output: Standard output from failed commands (which was previously swallowed) is now included in the error logs.
Windows Reliability Improvements
- Background Ingestion on Windows: Switched background ingestion to use
pythonw.exewhen available, preventing stray console windows and improving stability for long-running operations. - Initialization Race Fix: Resolved a fresh workspace initialization race on Windows, ensuring the bridge environment and Kuzu databases are fully ready before marking setup as complete.
- Kuzu and DLL Handling: Added targeted Windows Kuzu tests and fixed Python detection / Kuzu DLL load issues, resulting in the first fully working end-to-end Windows configuration.
- Platform Prerequisites: Updated documentation to call out the Visual C++ Redistributable requirement on Windows, reducing installation surprises.
[0.5.10] - 2025-02-18
Fixed - Plan 046: Windows Spawn Fix
Hotfix Release - Resolves "Environment creation failed" error on Windows when workspace path contains spaces.
Issues Resolved
- Environment Creation Failure: Fixed a regression in v0.5.9 where
Flowbaby: Initialize Workspacefailed immediately on Windows if the path contained spaces. - Root Cause: The manual quoting logic introduced in v0.5.9 conflicted with
spawn'sshell: truebehavior on Windows, leading to malformed commands. - Fix: Switched
FlowbabySetupService.runCommandto useshell: false, allowing Node.js to handle argument escaping natively and robustly across all platforms.
Technical Changes
- FlowbabySetupService: Removed
quoteIfNecessaryhelper and manual quoting. - Spawn Options: Changed
shell: truetoshell: falseforpythonandpipcommands. - Verification: Confirmed that
FlowbabyClientalready usesshell: falseand was unaffected.
[0.5.9] - 2025-12-01
Fixed - Plan 022: Windows Path Spaces Fix
Critical Fix - Resolves environment creation failures on Windows when the workspace path contains spaces.
Issues Resolved
- Environment Creation Failure: Fixed a bug where
Flowbaby: Initialize Workspacewould fail or create stray folders if the workspace path contained spaces (e.g.,C:\Users\My Name\Project). - Root Cause: Node.js
spawnwithshell: truedoes not automatically quote arguments on Windows, causing paths with spaces to be split into multiple arguments. - Fix: Implemented robust quoting logic in
FlowbabySetupServiceto ensure both the command and arguments are correctly quoted when they contain spaces.
Technical Changes
- FlowbabySetupService: Added
quoteIfNecessaryhelper inrunCommandto wrap paths in double quotes if they contain spaces and aren't already quoted. - Cross-Platform Safety: Verified that the quoting logic is safe for Windows (
cmd.exe) and Unix-like systems (/bin/sh), ensuring no regressions on macOS/Linux. - Test Coverage: Added unit tests to
FlowbabySetupService.test.tsto verify that commands and arguments are correctly quoted before being passed tospawn.
[0.5.8] - 2025-11-30
Fixed - Hotfix: Fresh Workspace Memory Operations
Hotfix Release - Fixes issues discovered when using memory tools on fresh workspaces without stored data.
Issues Resolved
-
DatasetNotFoundError on fresh workspace retrieval: When querying
@flowbabyor usingflowbaby_retrieveMemoryon a fresh workspace with no stored memories, the extension now gracefully returns empty results instead of throwingDatasetNotFoundError: No datasets found. This is the expected UX - the workspace simply has no memories yet. -
BackgroundOperationManager not initialized error: When using
flowbaby_storeMemorytool before full workspace setup, the extension now shows a helpful prompt to initialize the workspace instead of failing with a confusing "BackgroundOperationManager not initialized" error. -
Misleading success log on staging failure: The "✅ Memory staged" log message now only appears when staging actually succeeds. Previously it showed success before checking the result, then showed failure notification.
Technical Changes
Python Bridge (retrieve.py)
- Added: Detection for
DatasetNotFoundErrorin search exception handler - Behavior: Fresh workspaces with no data return
{"success": true, "results": [], "message": "No data has been ingested yet"}
Agent Commands (ingestForAgent.ts)
- Added: Try-catch wrapper around
BackgroundOperationManager.getInstance()call - Behavior: Returns helpful
NOT_INITIALIZEDerror with "Initialize Now" action button - UX: User sees clear path to fix instead of cryptic error
Store Memory Tool (storeMemoryTool.ts)
- Fixed: Success log message now appears after response check, not before
- Fixed: Failure log includes actual error message from response
[0.5.7] - 2025-11-30
Fixed - Hotfix: Smoke Test Issues from v0.5.6
Hotfix Release - Addresses five UX issues discovered during v0.5.6 smoke testing.
Issues Resolved
-
Ingestion failure notifications not showing: Failed memory ingestions via
flowbaby_storeMemorytool now show warning toast with "View Logs" option. (Note: success notifications can be disabled viaflowbaby.notifications.showIngestionSuccess, but failure notifications always show.) -
Chat participant icon missing:
@flowbabyicon now displays correctly in chat. Fixed icon path from non-existenticon.pngto actualflowbaby-icon-tightcrop.png. -
Missing API key causes infinite "working..." state: When API key is not configured,
@flowbabychat now shows helpful error message with link to configure instead of hanging indefinitely. -
API key setup notice auto-dismissing: Post-initialization API key prompt now uses modal dialog that stays until user explicitly dismisses it.
-
Status bar not updating after API key config: After setting API key via command, status bar now updates from yellow "API Key Required" to green "Ready" state.
Technical Changes
- Added failure notification to
StoreMemoryTool.invoke()for non-success responses - Fixed
participant.iconPathto use correct file path - Added API key check in chat participant before retrieval operations
- Changed post-init prompt to modal dialog (
{ modal: true }) - Added status bar update in
Flowbaby.setApiKeycommand handler
[0.5.6] - 2025-11-30
Fixed - Plan 045 Hotfix: Smoke Test Issues
Hotfix Release - Addresses three issues discovered during v0.5.5 smoke testing.
Issues Resolved
-
Progress notification stuck: "Initializing Flowbaby databases..." progress notification no longer blocks waiting for user input. Post-init API key prompt now shows after progress completes.
-
Post-init prompt timing: API key setup prompt now appears after initialization fully completes, not while progress is still showing.
-
Configure API Key command not found:
Flowbaby.configureApiKeycommand now works from Command Palette (was onlyFlowbaby.setApiKeybefore).
Technical Changes
- Moved post-init API key prompt outside
withProgresscallback to non-blocking.then()pattern - Added
Flowbaby.configureApiKeycommand as alias toFlowbaby.setApiKey - Added
getApiKeyState()method to FlowbabyClient for cached state access
[0.5.5] - 2025-11-30
Fixed - Plan 045: Fix Fresh Install API Key Blocking
Fresh Install Experience Release - Eliminates API key blocking issue that prevented new users from completing setup.
Problem Resolved
- Issue: Fresh installations failed with "LLM_API_KEY not found in environment" error
- Impact: New users couldn't complete Flowbaby setup without already having an API key configured
- Root Cause:
init.pyrequired API key before user had opportunity to set it
Changes
Python Bridge (init.py)
- Modified: API key validation now logs warning instead of returning error
- Added:
api_key_configuredandllm_readyfields to initialization response - Behavior: Initialization completes successfully, directories and databases created without API key
TypeScript Client (flowbabyClient.ts)
- Added:
ApiKeyStateinterface for centralized API key tracking - Added:
InitializeResultinterface with success status and API key state - Added:
hasApiKey()public method for pre-checking API key availability - Modified:
initialize()now returnsInitializeResultwith API key state
Status Bar (FlowbabyStatusBar.ts)
- Added:
NeedsApiKeystatus with distinct key icon and warning background - Behavior: Shows $(key) icon when initialized but API key not configured
Extension Activation (extension.ts)
- Added: Post-initialization API key prompt when no key configured
- Added: Graceful handling of
InitializeResultreturn type - Behavior: Shows "Set your API key to enable LLM operations" with action button
Graceful Degradation
- Added: Pre-check in
ingestForAgentandFlowbabyContextProvider.retrieveContext - Behavior: If no API key, prompts user with "Set API Key" action before attempting operation
- Message: "Flowbaby memory operations require an API key."
User Experience
- Fresh install now completes successfully
- Status bar shows key icon indicating API key needed
- User prompted to set API key after initialization
- Memory operations prompt for API key if not configured
- All existing functionality preserved when API key is set
[0.5.2] - 2025-11-29
Removed - Plan 044: Remove Non-Functional Auto-Ingest Setting
Configuration Cleanup Release - Removes experimental setting that never functioned.
Removed
- Setting:
Flowbaby.autoIngestConversationsremoved from VS Code settings - Code: Step 6 "feedback loop" code block removed from chat participant
- Rationale: Feature was introduced as experimental but never worked due to Cognee SDK limitations (file hashing bug). Keeping non-functional settings creates user confusion.
Impact
- Users who had this setting enabled will see no behavior change (it was already non-functional)
- Configuration surface is now cleaner and only exposes working features
- Any future auto-ingest or feedback-loop features will be redesigned under the current architecture (e.g., via structured summaries and Flowbaby tools) rather than reusing this removed pattern
[0.5.1] - 2025-11-28
Changed - Plan 043: Tool Descriptions and UX Improvements
Agent Integration & UX Polish Release - Enhances tool descriptions for better agent behavior and improves user experience.
Enhanced Tool Descriptions (Milestone 1)
- Updated:
flowbaby_storeMemoryandflowbaby_retrieveMemorytools now include comprehensive, structured instructions (~1,800 characters each) that encode the full Flowbaby memory contract - Benefit: Agents automatically understand when, how, and what to store/retrieve without requiring custom
.agent.mdfiles - Content: Descriptions include guidance on timing, query construction, what to capture, retrieval limits, and structure guidance
Configurable Success Notifications (Milestone 2)
- New Setting:
flowbaby.notifications.showIngestionSuccess(default:true) - Behavior: When
false, suppresses success toast notifications ("Memory staged...", "Flowbaby finished...") while preserving all error notifications - Use Case: Power users who find frequent success toasts distracting can disable them while still receiving critical error alerts
Keyboard Shortcut Change (Milestone 3)
- Changed: Default capture shortcut from
Ctrl+Alt+C/Cmd+Alt+CtoCtrl+Alt+F/Cmd+Alt+F - Rationale: Avoids potential conflicts with other extensions and common VS Code operations
- Migration: Users with custom keybindings should update to the new shortcut
Documentation
- Updated README.md with new keyboard shortcut references
- Added
flowbaby.notifications.showIngestionSuccessto Configuration table - Updated walkthrough step to reflect new shortcut
[0.5.0] - 2025-11-28
Changed - Plan 042: Comprehensive Lint Cleanup
Code Quality Release - Establishes consistent code quality standards across TypeScript, Python, and Markdown.
TypeScript ESLint (Milestone 1-5)
- Resolved: All 272 ESLint violations (12 errors, 260 warnings → 0 errors, 0 warnings)
- Updated: ESLint naming-convention rules to allow snake_case for Python bridge JSON contracts
- Fixed: 9
@typescript-eslint/no-explicit-anyby adding proper type definitions - Fixed: 9
@typescript-eslint/no-unused-varsby removing/prefixing unused variables - Fixed: 3
@typescript-eslint/no-var-requiresby converting to ES module imports - Auto-fixed: 47 curly braces and useless escape warnings
Python Linting (Milestone 6)
- Added:
rufflinter for Python bridge code (requirements-dev.txt) - Created:
extension/bridge/ruff.tomlconfiguration - Resolved: All Python lint errors (1322 → 0)
- Added:
npm run lint:pythonscript
Markdown Linting (Milestone 7)
- Updated:
.markdownlint.jsonwith appropriate rule exceptions - Verified: Zero markdownlint errors on user-facing documentation
- Added:
npm run lint:markdownscript
Developer Experience
- New:
npm run lint:all- Comprehensive lint check (TypeScript + Python + Markdown) - New:
npm run lint:python- Bridge code linting with ruff - New:
npm run lint:markdown- User-facing doc linting - New:
.github/workflows/lint.yml- CI lint enforcement on push/PR
[0.4.9]
Fixed - Plan 041: Capture Command UX Fixes
UX Improvement Release - Improves the Ctrl+Alt+C (Cmd+Alt+C on Mac) capture workflow for intuitive behavior.
Editor Selection Prioritization
- Fixed:
Ctrl+Alt+Ccapture command now correctly uses highlighted text from the active editor - Behavior: When text is selected in the editor, the input box pre-fills with that selection
- Benefit: Users can capture highlighted code or notes directly without manual copying
Cancellation Logic Fix
- Fixed: Pressing Escape now properly cancels the capture operation
- Previous: Escape would fall back to clipboard content, causing unintended captures
- Now: Escape shows "Capture cancelled" message and aborts without any ingestion
Clipboard Fallback (Power User Feature)
- Preserved: Submitting an empty input box (Enter with no text) still reads from clipboard
- Use Case: Power users can copy content to clipboard, press
Ctrl+Alt+C, then Enter to capture
Content Source Transparency
- Improved: Output channel now logs the source of captured content:
- "Capturing from Editor Selection (X chars)"
- "Capturing from User Input (X chars)"
- "Capturing from Clipboard (X chars)"
- Benefit: Users can verify what content was actually captured via Output > Flowbaby
Empty-All-Sources Handling
- Added: When no selection exists, input is empty, and clipboard is empty, shows "Nothing to capture" info message
- Benefit: Clear feedback instead of silent failure when there's nothing to capture
[0.4.8]
Fixed - Plan 040.1: First-Time Initialization Hotfix
Critical Hotfix - Resolves first-time workspace initialization failure introduced in v0.4.7 that required window reload.
FlowbabyClient Recreation After Environment Setup (M1)
- Bug: Fresh workspaces showed "No module named 'cognee'" error after clicking "Initialize" because FlowbabyClient was created at activation time with system Python before venv existed
- Root Cause: When
createEnvironment()succeeded, the existing client retained its stalepythonPath: "python3"instead of detecting the newly-created.flowbaby/venv - Fix: Recreate FlowbabyClient after successful environment creation to detect the new venv Python interpreter
- Benefit: Users can now use
@flowbabyimmediately after initialization without any window reload
Initialization Timeout Fix (M1.1)
- Bug: First-run database creation could timeout on slower machines because
initialize()used the default 10-second timeout - Fix: Increased
init.pytimeout from 10 seconds to 60 seconds - Benefit: First-run initialization (SQLite, Kuzu, LanceDB setup) completes successfully on slower systems
Initialization Logging (M2, M3)
- Added detailed progress logging throughout the initialization flow:
[Plan 040] Starting workspace initialization...[Setup] Virtual environment created successfully.[Setup] Starting dependency installation...[Setup] Dependency installation complete.[Plan 040] ✅ Environment created successfully[Plan 040] Recreating FlowbabyClient with new environment...[Plan 040] ✅ Flowbaby client initialized successfully
- Benefit: Users and support can trace initialization issues via Output > Flowbaby channel
User Experience Improvements
- No-reload workflow: First-time initialization now completes in a single process
- Clear progress: Setup notifications show venv creation → dependency install → database init
- Error transparency: Detailed logging aids troubleshooting when issues occur
[0.4.7]
Fixed - Plan 040: Initialization JSON Errors and No-Reload Workflow
User Experience Release - Enables frictionless first-run experience by fixing JSON parse errors, eliminating window reloads, and providing clearer health status messaging.
M1: Fix init.py Stdout Pollution (Critical)
- Bug: The cognee SDK prints "User X has registered" and other messages to stdout during database initialization, corrupting the JSON output and causing
JSON.parse()failures in the TypeScript client - Root Cause:
create_db_and_tables(),get_graph_engine(), and other cognee operations print directly to stdout - Fix: Added
suppress_stdout()context manager that captures all stdout/stderr during cognee operations and redirects to file logger - Contract:
init.pynow emits exactly one JSON line to stdout and nothing else
M2: Chain flowbabyClient.initialize() After Environment Setup
- Bug: The "Initialize Workspace" command only created the venv but did not initialize the Flowbaby client, forcing users to reload the window
- Fix: After successful environment creation, the command now chains into
flowbabyClient.initialize(), setsclientInitialized = true, and registers all providers/tools - Benefit: Users can immediately use
@flowbabyafter clicking "Initialize" without any page reload - Added: Structured error handling with user-facing notifications and Output channel logging for initialization failures
M3: Unify Health Check Logic for Fresh Workspaces
- Bug: Fresh workspaces with only
.flowbaby/logsdirectory were incorrectly marked as "BROKEN" instead of "FRESH" - Root Cause:
checkWorkspaceHealth()returnedBROKENif.flowbabyexisted butbridge-env.jsonwas missing - Fix: Missing
bridge-env.jsonnow correctly returnsFRESH(setup required), notBROKEN(repair required) - Benefit: Fresh workspaces show "Initialize" prompt instead of confusing "Repair Environment" prompt
- Updated: UX messaging now clearly distinguishes between "needs setup" (FRESH) and "needs repair" (BROKEN) states
M4: Increase Initialization Timeout
- Bug: First-run initialization could time out prematurely (15s) during database creation on slower machines or when downloading LanceDB embedding models
- Fix: Increased timeout from 15 seconds to 60 seconds for first-run initialization
- Benefit: Slow first-run initializations complete successfully without false timeout failures
User Experience Improvements
- No-reload workflow: Complete initialization from setup to ready state without any window reload
- Clear messaging: Distinct prompts for fresh workspaces ("Initialize") vs broken environments ("Repair")
- Error transparency: Initialization failures now show user-facing notifications with actionable guidance
[0.4.6]
Fixed - Plan 039: Initialization UX and Security Hardening
User Experience and Security Release - Resolves activation deadlock, improves initialization guidance, and implements security hardening from Plan 037 audit.
M1: Fix Activation Deadlock
- Bug: Extension activation could hang indefinitely when initialization failed, requiring VS Code restart
- Root Cause: Blocking
await vscode.window.showWarningMessage()in failure path preventedactivate()from returning - Fix: Replaced blocking
awaitwith non-blocking.then()callback pattern, ensuring activation completes within 2 seconds
M2: Register Flowbaby.initializeWorkspace Command
- New: Added
Flowbaby.initializeWorkspacecommand for workspace initialization - Change:
Flowbaby.setupEnvironmentretained as backward-compatible alias - Benefit: Consistent command naming within
Flowbaby.*namespace
M3: Proactive Health Check
- New:
checkWorkspaceHealth()method returnsFRESH | BROKEN | VALIDstatus - Change: Activation flow now checks workspace health before attempting client initialization
- Benefit: Targeted UX guidance based on actual workspace state (fresh vs corrupted vs ready)
- Added: Migration marker validation (
.migration-in-progresscheck) per architecture review R3
M4: Full Database Initialization
- Verified:
init.pyalready performs complete database priming (SQLite, Kuzu, LanceDB) for fresh workspaces - No changes required: Existing implementation meets acceptance criteria
M5: Remove .env API Key Support (Security - F2)
- Breaking Change: Removed workspace
.envfile API key loading - Migration: Users must use
Flowbaby: Set API Keycommand for secure SecretStorage - Rationale: Plaintext API keys in
.envfiles are credential exposure risk - Files Updated:
flowbabyClient.ts,init.py,ingest.py,retrieve.py,list_memories.py,validate_memories.py
M6: Audit Logging (Security - F7)
- New:
AuditLoggerclass for security event tracking - Format: JSON-lines structured logging to
.flowbaby/logs/audit.jsonl - Events Logged: API key changes, memory clear operations, environment initialization
- Benefit: Security audit trail for credential and data operations
M7: Safe Memory Clear with Soft-Delete (Security - F8)
- Change:
clearMemory()now moves data to.flowbaby/.trash/{timestamp}/instead of permanent deletion - Benefit: Recovery possible for accidentally cleared memories
- New:
purgeTrash()method for permanent trash cleanup - Audit: All clear operations logged via AuditLogger
M8: Version and Release Artifacts
- Version: 0.4.5 → 0.4.6
- Changelog: Updated with Plan 039 changes
Breaking Changes
- API Key Source: Workspace
.envfiles no longer used for API key resolution. UseFlowbaby: Set API Keycommand or setLLM_API_KEYenvironment variable.
Security Improvements
- Credentials now stored in VS Code SecretStorage (encrypted)
- Security-relevant operations logged to audit trail
- Data deletion uses soft-delete with recovery option
[0.4.5]
Fixed - Plan 034: Initialization Bugs and Background Notification Issues
Maintenance Release - Resolves 3 critical bugs affecting new workspace initialization and background processing notifications.
Database Initialization for Fresh Workspaces
- Bug: Fresh workspaces threw
sqlite3.OperationalError: no such table: principalsduring user registration - Root Cause: Database table creation was implicitly part of
prune_system(). Fresh workspaces (where pruning is skipped) never called table creation - Fix: Explicitly call
create_db_and_tables()fromcognee.infrastructure.databases.relationalin the fresh workspace initialization path
Lance Namespace Import Error
- Bug:
ModuleNotFoundError: No module named 'lance_namespace'prevented vector engine loading - Root Cause: The
lance-namespace==0.2.0package on PyPI is broken/incomplete - missing thelance_namespacetop-level module - Fix: Pinned
lance-namespace==0.0.21inrequirements.txt(verified working version)
Background Notification False Positives
- Bug: "Flowbaby processing failed" notifications appeared despite successful ingestion in logs
- Root Cause:
ingest.pywrote status stubs to.cognee/background_ops/(legacy path) whileBackgroundOperationManager.tslooked for stubs in.flowbaby/background_ops/ - Fix: Updated
ingest.pyto write status stubs to.flowbaby/background_ops/
Technical Notes
- All fixes maintain backward compatibility with existing workspaces
- Legacy
.cognee/background_opsstubs will be ignored (no functional impact) - No migration required from v0.4.4
[0.4.4]
Fixed - Plan 033: Complete Environment Variable Hotfix
Hotfix - Completes the v0.4.3 environment variable fix that missed init.py, preventing "still initializing" hang and .cognee folder creation.
Root Cause
v0.4.3 correctly fixed ingest.py and retrieve.py to set SYSTEM_ROOT_DIRECTORY and DATA_ROOT_DIRECTORY before importing Cognee SDK. However, init.py was missed, causing:
- Creation of orphan
.cogneefolder in workspace root - Missing
.flowbaby/datadirectory - "Flowbaby is still initializing..." hang on first activation
- Retrieval failures ("no relevant memories found")
Fix Applied
- Set
SYSTEM_ROOT_DIRECTORYandDATA_ROOT_DIRECTORYenvironment variables beforeimport cogneeininit.py(lines 178-215) - Changed legacy
.cogneedirectory creation to.flowbabyfor marker files (line 263) - Conducted bridge-wide import audit - all 8 scripts now follow the "env vars before import" invariant
- Fixed additional non-compliant scripts:
list_memories.py,validate_memories.py,recover_data.py
Bridge-Wide Invariant (Documented)
All bridge entrypoints must now follow this sequence:
- Compute
.flowbaby/systemand.flowbaby/datapaths - Create directories with
Path.mkdir(parents=True, exist_ok=True) - Set
os.environ['SYSTEM_ROOT_DIRECTORY']andos.environ['DATA_ROOT_DIRECTORY'] - Only then
import cognee
This invariant is enforced because Cognee SDK uses pydantic-settings with @lru_cache, reading environment variables at import time.
Test Coverage Added
test_sets_env_vars_before_cognee_import- verifies env var valuestest_creates_flowbaby_dirs_not_cognee_dirs- filesystem regression testtest_env_vars_contain_flowbaby_path- path validation
[0.4.3]
Fixed - Hotfix: Cognee SDK Environment Variable Names
Critical Hotfix - Fixes storage directory misconfiguration causing FileNotFoundError: Storage directory does not exist: '.cognee_data'.
Root Cause
v0.4.2 used incorrect environment variable names (COGNEE_SYSTEM_ROOT_DIRECTORY, COGNEE_DATA_ROOT_DIRECTORY). The Cognee SDK's BaseConfig uses pydantic-settings which reads environment variables matching the exact field names—no COGNEE_ prefix.
Fix Applied
- Changed
COGNEE_SYSTEM_ROOT_DIRECTORY→SYSTEM_ROOT_DIRECTORYiningest.pyandretrieve.py - Changed
COGNEE_DATA_ROOT_DIRECTORY→DATA_ROOT_DIRECTORYiningest.pyandretrieve.py
Impact
- Background cognify operations now correctly use workspace-local
.flowbaby/paths - New data files appear in
.flowbaby/data/instead of~/.cognee_data
[0.4.2]
Fixed - Plan 032: Activation and Background Processing Bugs
Maintenance Release - Resolves 6 bugs affecting extension activation, database generation, log rotation, and branding consistency.
Chat Agent Registration (#1)
- Bug: @flowbaby chat participant only appeared after extension fully initialized, requiring user to reload window
- Root Cause:
registerFlowbabyParticipant()was called insideif (initialized)block, delaying UI registration - Fix: Moved chat participant registration BEFORE
flowbabyClient.initialize()with graceful degradation - handler shows "⏳ Flowbaby is still initializing..." message while backend completes setup
Cognee SDK Storage Pathing (#2)
- Bug: Database files created in
~/.cognee_datainstead of workspace-local.flowbaby/data - Root Cause: Cognee SDK may cache paths on import; environment variables were set after import in bridge scripts
- Fix:
- Added explicit
.flowbaby/datadirectory creation ininit.pyalongside.flowbaby/system - Restructured
ingest.pyandretrieve.pyto setCOGNEE_SYSTEM_ROOT_DIRECTORYandCOGNEE_DATA_ROOT_DIRECTORYenvironment variables BEFOREimport cognee - Safety check
workspace_has_data()already existed and continues to prevent accidental data loss
- Added explicit
Log Rotation Fix (#3)
- Bug: Python RotatingFileHandler writing to
.log.1instead of.logafter rotation - Root Cause: TypeScript
BackgroundOperationManagerwas opening log file descriptor and passing it to spawned Python process; TypeScript holding the fd prevented Python from rotating properly - Fix: Removed
logFdfile descriptor passing inspawnCognifyProcess(). Pythonbridge_logger.pynow handles all log rotation independently using its own RotatingFileHandler
Branding Consistency (#4)
- Bug: Toast notifications showed "⚠️ Cognify failed" and "✅ Cognify finished" instead of Flowbaby branding
- Fix: Updated all user-facing toast messages in
BackgroundOperationManager.ts:'✅ Cognify finished'→'✅ Flowbaby processing finished''⚠️ Cognify failed'→'⚠️ Flowbaby processing failed'- Updated corresponding internal log messages for consistency
Technical Notes
- Plan 032 follows architectural guidance from Plan 031 and maintains backward compatibility
- No migration required from v0.4.1; users can update seamlessly
- Log file location unchanged:
.flowbaby/logs/flowbaby.log
[0.4.1]
Fixed - Plan 031: Background API Key and Logging Consolidation
Critical Hotfix - Resolves v0.4.0 regressions affecting background ingestion and logging.
Background Ingestion API Key Fix
- Root Cause:
BackgroundOperationManager.spawnCognifyProcess()was not injectingLLM_API_KEYfrom SecretStorage into the spawned process environment, causingMISSING_API_KEYerrors for users who relied on the "Flowbaby: Set API Key" command. - Fix: Added
resolveApiKey()andgetLLMEnvironment()methods toBackgroundOperationManager, mirroring the working implementation inFlowbabyClient. These methods now properly inject API keys from:- Workspace
.envfile (highest priority) - VS Code SecretStorage (
flowbaby.llmApiKey) - System environment variable (
LLM_API_KEY)
- Workspace
- Scope: Applies to
spawnCognifyProcess()(background cognify) andrunPythonJson()(add-only retry).
Logging Consolidation
- Unified Log File: All Python bridge logs now write to
.flowbaby/logs/flowbaby.log(was split betweenbridge.logandingest.log). - Updated Logger:
bridge_logger.pyupdated to use.flowbaby/logs/flowbaby.logpath andflowbaby.*logger names. - View Logs Action: "View Logs" notification action now opens the consolidated log file.
Test Infrastructure
- rdflib Dependency: Added early detection for missing
rdfliblibrary in test environment with actionable error message inconftest.py. - Updated Tests:
test_logging_overhaul.pyupdated to use new log paths.
Documentation
- README.md: Fixed Windows path example to use
.flowbabyinstead of.cognee. - extension.ts: Fixed incorrect pip install instruction - changed "pip install flowbaby" to "pip install cognee" (flowbaby is the VS Code extension name, not a Python package).
[0.4.0]
⚠️ BREAKING CHANGES
This release rebrands the extension from "RecallFlow Chat Memory" to "Flowbaby" with significant breaking changes:
Branding Changes
- Extension renamed:
cognee-chat-memory→flowbaby - Publisher changed:
flowbaby→flowbaby - Display name:
RecallFlow Chat Memory→Flowbaby
Command Changes
- All
cognee.*commands renamed toFlowbaby.* - Example:
cognee.captureMessage→Flowbaby.captureMessage
Settings Changes
- All
cogneeMemory.*settings renamed toFlowbaby.* - Example:
cogneeMemory.enabled→Flowbaby.enabled - Action Required: Update your settings.json if you have custom configurations
Chat Participant Changes
@flowbaby-memory→@flowbaby
Tool Changes (for Agent Developers)
flowbaby_storeMemory→flowbaby_storeMemoryflowbaby_retrieveMemory→flowbaby_retrieveMemory#flowbabyStoreSummary→#flowbabyStoreSummary- Action Required: Update your
.agent.mdfiles
Workspace Storage Changes
- All extension data now stored under
.flowbaby/(was.cognee/,.cognee_data/,.cognee_system/) - Action Required: Re-set your API key via
Flowbaby: Set API Keycommand - Note: Previous workspace memories are not migrated
Logging Consolidation
- Single log file:
.flowbaby/logs/flowbaby.log - Removed redundant
ingest.log
Migration Steps
- Uninstall the old extension
- Install Flowbaby v0.4.0
- Run
Flowbaby: Set API Keyto configure your LLM API key - Update any custom keybindings from
cognee.*toFlowbaby.* - Update any agent definitions to use new tool names
[0.3.17]
Fixed - Plan 028: Post-v0.3.16 Bug Fixes and Developer Experience
- Duplicate Output Channels: Fixed issue where multiple "Flowbaby Memory" output channels were created. Implemented singleton pattern in
outputChannels.ts. - Status Bar Unclickable: Fixed status bar command registration timing issue. Commands are now registered early in activation with try/catch error handling.
Added
- Debug Logging Channel: New opt-in debug output channel for troubleshooting. Enable via
Flowbaby.debugLoggingsetting and use "Flowbaby: Show Debug Logs" command. - Isolated Python Environment: venv moved from
.venvto.flowbaby/venvto prevent conflicts with project virtual environments and Python language servers (e.g., Pylance/Jedi). - venv Conflict Detection: When an existing
.venvis detected, users are offered a choice between the isolated.flowbaby/venv(recommended) or using the existing.venv(advanced). - Global API Key via SecretStorage: New "Flowbaby: Set API Key" command stores API keys securely via VS Code's SecretStorage API. Keys are shared across all workspaces.
- API Key Priority: Resolution order is now workspace
.env> SecretStorage (global) > system environment variable. - Global LLM Configuration: New settings
Flowbaby.llm.provider,Flowbaby.llm.model, andFlowbaby.llm.endpointfor configuring LLM providers without per-workspace.envfiles. - Clear API Key Command: New "Flowbaby: Clear API Key" command to remove stored SecretStorage key.
Changed
- Python Interpreter Detection: Priority order updated to: explicit setting >
.flowbaby/venv>.venv(legacy) > system python3. - Documentation: Updated README and SETUP docs to reflect new setup flow, removed global pip install requirement, documented new features and troubleshooting steps.
[0.3.16]
Fixed - Plan 027: Migration Marker Data Loss Bug
- Critical P0 Bug Fix: Fixed a bug that caused 96% data loss when the cognee Python package was reinstalled. The migration marker was being written to the volatile venv location instead of the workspace-local
.flowbaby/system/directory. - Root Cause:
get_relational_config()was called BEFOREcognee.config.system_root_directory(), returning the venv path instead of the configured workspace path. - Reordered Initialization: Workspace directories are now configured FIRST, and the marker path is derived directly from the workspace path (never querying SDK config).
- Safety Check: Added
workspace_has_data()function that refuses to prune if existing LanceDB or Kuzu data is detected, preventing accidental data loss. - Prominent Warnings: Added visual warning separators (
====) before any prune operation to make the action obvious in logs. - Data Integrity Health Check: Added
get_data_integrity_status()function to compare SQLite vs LanceDB counts for consistency monitoring.
Testing
- Added
extension/bridge/tests/test_init_migration.pywith 15 test cases covering marker location, safety checks, and integrity status.
[0.3.15]
Fixed - Plan 026: Path Canonicalization and Retrieval Scoring
- Path Canonicalization: All 5 Python bridge scripts (
ingest.py,retrieve.py,init.py,list_memories.py,validate_memories.py) now strictly canonicalize workspace paths at entry. This fixesIngestionError 415when opening workspaces with relative paths (e.g.,code .). - UI Initialization: Fixed a "chicken-and-egg" bug where the Status Bar and Setup Service were only created after successful initialization. They now appear immediately, ensuring the "Setup Required" indicator is visible in fresh workspaces.
- Synthesized Answer Scoring: Fixed confusing display of synthesized graph answers (which have a raw score of 0.00). The bridge now detects this sentinel, assigns a high ranking score, and attaches a
confidenceLabel="synthesized_high"metadata field. - Qualitative UI Labels: The UI now displays "High relevance (synthesized)" for graph completions instead of overloading the numeric score or showing 0.00.
[0.3.14]
Added - Plan 025: Simplified Python Environment Setup
- Managed Python Environment: Flowbaby now automatically creates and manages a dedicated
.venvvirtual environment in your workspace, eliminating manual setup steps. - One-Click Setup: New "Initialize Workspace" command handles Python version checks (3.8+), virtual environment creation, and dependency installation in a single click.
- Status Bar Indicator: Added a status bar item showing environment health (Ready, Setup Required, Refreshing, Error) with quick access to repair actions.
- Dependency Management: New "Refresh Dependencies" command safely updates the bridge environment, coordinating with background operations to prevent conflicts.
- Smart Precedence: Automatically detects existing
.venvor configured Python paths, but prioritizes the managed environment for reliability. - Enhanced Walkthrough: The "Get Started" walkthrough now guides users through the automated setup process with context-aware completion steps.
- Robust Metadata: Tracks environment state and version compatibility in
.flowbaby/bridge-env.jsonto ensure stability across updates.
[0.3.13]
Added - Plan 024: Configurable Search Parameters
- Configurable Search Depth (
searchTopK): Added newFlowbaby.searchTopKsetting (default 10, range 1–100) to control how many candidates the Flowbaby search engine returns before ranking. - Higher Context Token Budget: Increased
Flowbaby.maxContextTokensdefault from 2000 to 32000 and maximum to 100000 to better support large-context models. - Bridge Safeguards:
retrieve.pynow clampsmax_tokensinto the [100, 100000] window, normalizestop_kso it is never lower thanmax_results, and hard-clampstop_kto 100 to prevent runaway latency. - Normalization & Logging: When a user-provided
top_kis raised to meetmax_resultsor clamped to the ceiling, the bridge logs a structured warning with both requested and effective values for easier debugging. - Client Logging & Truncation:
CogneeClientlogs the configuredsearchTopKvalue on each retrieval and passes it through to the bridge. Output-channel payloads remain truncated to keep the VS Code UI responsive.
[0.3.12]
Fixed - Plan 022: Retrieval Filtering and Truncation
- Retrieval Filtering: Fixed aggressive filtering of "no_relevant_context" responses. The bridge now uses an exact match check instead of a substring match, preventing valid answers that quote the sentinel value from being discarded.
- Client Truncation: Increased
CogneeClientstdout buffer from 2KB to 1MB. This fixes JSON parse errors when retrieval results exceed the default buffer size. - Error Logging: Improved error reporting to capture and log both stdout and stderr when JSON parsing fails, aiding in debugging bridge issues.
- Telemetry: Added
filtered_countto retrieval telemetry to track how many items are filtered by the bridge.
[0.3.11]
Fixed - Plan 021: Retrieval Display for Synthesized Answers
- Retrieval Display Bug: Fixed a regression where synthesized answers (score 0.0) were silently filtered out by the client-side safety check.
- Sentinel-Aware Filter: Updated
CogneeContextProviderto explicitly allow results withscore === 0.0(sentinel for synthesized answers) while maintaining strict filtering for low-confidence noise (e.g., 0.001 - 0.009). - Logging: Added debug logging to indicate when synthesized answers are included in retrieval results.
[0.3.10]
Fixed - Plan 023: Retrieval Scoring Hotfix
- Retrieval Regression: Fixed an issue where valid
GRAPH_COMPLETIONanswers (synthesized strings) were discarded because they lacked a semantic score and hit the strictscore <= 0.01filter introduced in v0.3.9. - Logic Update:
retrieve.pynow bypasses the strict score filter for synthesized answers (which default to score 0.0) while maintaining the filter forNO_RELEVANT_CONTEXTresponses.
[0.3.9]
Added - Plan 021: Logging Infrastructure Overhaul
Structured Bridge Logging - Python bridge scripts now use a shared logging utility that emits structured JSON-lines to both the VS Code Output Channel and a persistent workspace log file (.flowbaby/logs/bridge.log).
- Rotating Log File:
bridge_logger.pywrites untruncated diagnostics with 5MB rotation (3 backups) so retrieval and ingestion history is never lost. - Detailed Retrieval Telemetry:
retrieve.pylogs candidate lists, semantic scores, recency/status multipliers, filtering reasons, and final selections for each query. - Ingestion Metrics:
ingest.pyreports character counts and stage durations, making performance bottlenecks obvious. - Consistent Formatting: All bridge scripts (
init.py,validate_memories.py,list_memories.py) now produce structured JSON logs for easier parsing and UI rendering. - VS Code Output Contract: Stderr handler keeps Output Channel entries lightweight (~2KB) while retaining full fidelity in file logs.
Testing
- Added
extension/bridge/tests/test_logging_overhaul.pycovering log file creation, ingestion metrics, retrieval scoring telemetry, and stderr formatting.
[0.3.8]
Added - Plan 021: Memory Visibility and Trust
Zero-Hallucination Retrieval - Implemented strict filtering to prevent irrelevant memories from polluting context:
- Strict Score Threshold: Retrieval results with distance scores > 0.01 are now filtered out by default.
- Explicit "No Context" Signal: Bridge now returns
NO_RELEVANT_CONTEXTsignal when no memories meet the threshold, preventing hallucinated "matches". - Validation Tools: New commands for inspecting memory state:
Flowbaby: Validate Memories- Runs integrity checks on stored memories.Flowbaby: List Memories- Dumps raw memory content for debugging.
Fixed:
- Integration Test Stability: Fixed path resolution errors in integration tests by correctly injecting
extensionPathinto the mock context. All 149 tests now pass. - Branding Cleanup: Removed "formerly Cognee" references from extension description and UI strings for a cleaner "Flowbaby" identity.
[0.3.7]
Fixed - Plan 019: Flowbaby Rebranding Gaps
- Publisher Identity: Marketplace publisher ID now set to
flowbabywith author updated to "Flowbaby Team" so the extension no longer appears under the legacy Cognee brand. - Language Model Tools: Renamed tool identifiers and reference names to
flowbaby_storeMemory/flowbaby_retrieveMemoryso Configure Tools, chat autocomplete, and.agent.mddefinitions all reflect the Flowbaby brand. - Documentation Alignment:
README.mdandAGENT_INTEGRATION.mdnow show the correct tool names and usage examples, preventing confusion for agent developers. - Test Coverage: Integration tests updated to ensure the new tool identifiers register correctly with GitHub Copilot chat and that UI instructions stay in sync.
[0.3.6]
Added - Plan 019: Retrieval Fabrication and Silent Failure Fix
Rebranding to Flowbaby - The extension has been renamed to "Flowbaby" to better reflect its purpose as a memory and recall layer for AI agents.
- User-Facing Changes:
- Extension name: "Flowbaby Chat Memory"
- Commands:
Flowbaby: Capture to Memory,Flowbaby: Toggle Memory, etc. - Output Channel: "Flowbaby Agent Activity"
- Chat Participant:
@flowbaby-memory - Tools: "Store Memory in Flowbaby", "Retrieve Flowbaby Memory"
- Tool Renaming:
flowbaby_storeMemory→flowbaby_storeMemory,flowbaby_retrieveMemory→flowbaby_retrieveMemory
- Backward Compatibility:
- Internal configuration keys (
Flowbaby.*) remain unchanged - File paths (
.flowbaby/) remain unchanged - Python package (
cognee) remains unchanged
- Internal configuration keys (
Fixes & Improvements:
- Retrieval Fabrication Fix: Changed default semantic score for unscored results from 0.7 to 0.0. This prevents empty or irrelevant results from appearing with artificially high confidence scores.
- Silent Failure Detection:
- Implemented log rotation for background processes (
.flowbaby/logs/ingest.log) - Redirected
stdout/stderrof background processes to log files to capture crashes - Added "zombie" detection for processes that exit without writing a status stub
- Implemented log rotation for background processes (
- Proactive Prevention: Enforced 100k character limit on ingestion payloads to prevent bridge crashes and memory exhaustion.
- UX Enhancements: Added timestamps to
Flowbaby: Show Background Operationsquick pick items for better visibility.
[0.3.5]
Added - Plan 018: Metadata Infrastructure and Ranking
Intelligent Ranking & Filtering - Retrieval now prioritizes memories based on recency and status:
- Recency-Aware Ranking: New exponential decay algorithm prioritizes fresh memories. Configurable via
Flowbaby.ranking.halfLifeDays(default: 7 days). - Status Filtering: Memories can be marked as
Active,Superseded, orDecisionRecord.Supersededmemories are hidden by default to reduce noise.DecisionRecordmemories receive a relevance boost.
- Metadata-Rich Storage: Summaries now embed structured metadata (topicId, status, timestamps) directly in the text, enabling robust tracking even without graph metadata support.
Technical Implementation:
- Enriched Text Fallback: Implemented "Enriched Text" pattern to store metadata within summary text, bypassing Cognee 0.3.4 DataPoint limitations.
- Migration Script: New
migrate_summaries.pyscript automatically upgrades legacy memories to the new schema. - Safe Migration: Uses file locking (
.flowbaby/maintenance.lock) to pause background operations during migration. - Updated Tool Definitions:
flowbaby_storeMemoryandflowbaby_retrieveMemorytools updated with clearer descriptions and privacy guarantees ("Data stays in this workspace").
Fixed
- Ranking Quality: Addressed issue where old, less relevant memories cluttered retrieval results.
- Status Visibility: Superseded plans and decisions no longer confuse agents.
[0.3.4]
Release
This release packages the async cognify() optimization (Plan 017) with no functional changes from v0.3.3. Version bumped to v0.3.4 for clean release tracking.
All features, improvements, and technical details remain as documented in v0.3.3 below. This is a packaging-only release to formalize the deployment.
[0.3.3]
Added - Plan 017: Async cognify() Optimization
Universal Async Memory Ingestion - ALL ingestion flows (agent tools, manual capture, headless commands) now return in <10 seconds:
- Staged Messaging: Every ingestion surface shows: "Memory staged – processing will finish in ~1–2 minutes. You'll get a notification when it's done."
- Background Processing: Knowledge graph construction (
cognee.cognify()) runs in detached subprocess while agents continue working - Completion Notifications:
- Success (info): "✅ Cognify finished" with workspace name, summary digest, elapsed time, entity count, "View Status" action
- Failure (warning): "⚠️ Cognify failed" with workspace name, summary digest, remediation guidance, "Retry"/"View Logs" actions
- Independent Throttling: Success and failure notifications throttled separately (≤1 per 5 min per workspace per outcome type)
- Background Status Command: New
cognee.backgroundStatuscommand shows all in-flight/completed operations with quick-pick UI
Technical Implementation:
- Split
ingest.pyinto 3 modes:--mode sync(diagnostic),--mode add-only(fast staging <10s),--mode cognify-only(background graph construction) - BackgroundOperationManager service with:
- Dual-ledger persistence (
.flowbaby/background_ops.json+ VS Code globalState) - Concurrency limits: max 2 concurrent + FIFO queue of 3 pending operations
- Detached subprocess spawning with PID tracking
- Activation reconciliation (reattach live PIDs, mark stale entries
unknown) - Deactivation cleanup (SIGTERM with 5s grace + SIGKILL)
- Atomic status stub writes prevent corruption on crashes
- Dual-ledger persistence (
- Updated client methods:
ingestSummaryAsync()andingestAsync()for summary and conversation ingestion - Comprehensive bridge test suite (15+ tests) covering all modes, error handling, backward compatibility
Performance Impact:
- Agent blocking time: 73s → <10s (86% reduction)
- Manual capture blocking time: 73s → <10s (86% reduction)
- Background processing: 60-90s (unchanged, runs asynchronously)
- Result: Agents can store 3 memories in 30s instead of 219s
User Experience Changes:
- Manual capture (
Ctrl+Alt+C) now shows staged toast instead of blocking - Agent tools (
#cogneeStoreSummary) return immediately with operationId - All users receive completion notification when background processing finishes
- Output channel shows full audit trail:
[BACKGROUND]markers for start/success,[ERROR]for failures
Backward Compatibility:
- Sync mode (
--mode sync) preserves legacy behavior for diagnostic/test use - Conversation mode (positional args) continues to work with sync mode
- All existing tests pass unchanged
Fixed - Plan 016.1: Tool Lifecycle and Bridge Timeouts Hotfix
Bug Fixes:
- Tool Lifecycle UI Desync: Fixed issue where Configure Tools dialog showed stale enablement state when toggling tools on/off. Tools now register unconditionally at extension activation; VS Code's Configure Tools UI is the sole authorization mechanism (no redundant workspace setting).
- Bridge Timeout Opacity: Added comprehensive diagnostic logging to Python bridge scripts (ingest.py, retrieve.py) with
[PROGRESS],[WARNING], and[ERROR]markers. Users now see step-by-step progress in Output channel when bridge operations are slow or fail. - Redundant Authorization: Removed
Flowbaby.agentAccess.*workspace settings entirely. Simplified authorization model: users enable/disable tools via Configure Tools UI only.
Breaking Changes:
- Removed settings:
Flowbaby.agentAccess.enabled,Flowbaby.agentAccess.maxResultsDefault,Flowbaby.agentAccess.maxTokensDefault,Flowbaby.agentAccess.maxConcurrentRequests,Flowbaby.agentAccess.rateLimitPerMinute - Status bar "Cognee Agent Access" indicator removed (Configure Tools dialog provides feedback)
- Error code
ACCESS_DISABLEDno longer returned (tools always registered)
Technical Details:
- Bridge scripts emit structured error payloads with error codes:
LLM_API_ERROR,COGNEE_SDK_ERROR,PYTHON_ENV_ERROR,ONTOLOGY_LOAD_ERROR - TypeScript client (cogneeClient.ts) parses stderr for diagnostic markers and surfaces at appropriate log levels (INFO/ERROR/WARN)
- Fixed sys module import shadowing bug in retrieve.py
- Test suite updated to reflect new authorization model
User Impact:
- Simpler authorization: single source of truth (Configure Tools)
- Better debugging: diagnostic logs visible in Output > "Flowbaby" channel
- Faster resolution of bridge issues: progress markers identify exactly where operations block
[0.3.2]
Fixed - Plan 016.1: Tool Lifecycle and Bridge Timeouts Hotfix
Bug Fixes:
- Tool Lifecycle UI Desync: Fixed issue where Configure Tools dialog showed stale enablement state when toggling tools on/off. Tools now register unconditionally at extension activation; VS Code's Configure Tools UI is the sole authorization mechanism (no redundant workspace setting).
- Bridge Timeout Opacity: Added comprehensive diagnostic logging to Python bridge scripts (ingest.py, retrieve.py) with
[PROGRESS],[WARNING], and[ERROR]markers. Users now see step-by-step progress in Output channel when bridge operations are slow or fail. - Redundant Authorization: Removed
Flowbaby.agentAccess.*workspace settings entirely. Simplified authorization model: users enable/disable tools via Configure Tools UI only.
Breaking Changes:
- Removed settings:
Flowbaby.agentAccess.enabled,Flowbaby.agentAccess.maxResultsDefault,Flowbaby.agentAccess.maxTokensDefault,Flowbaby.agentAccess.maxConcurrentRequests,Flowbaby.agentAccess.rateLimitPerMinute - Status bar "Cognee Agent Access" indicator removed (Configure Tools dialog provides feedback)
- Error code
ACCESS_DISABLEDno longer returned (tools always registered)
Technical Details:
- Bridge scripts emit structured error payloads with error codes:
LLM_API_ERROR,COGNEE_SDK_ERROR,PYTHON_ENV_ERROR,ONTOLOGY_LOAD_ERROR - TypeScript client (cogneeClient.ts) parses stderr for diagnostic markers and surfaces at appropriate log levels (INFO/ERROR/WARN)
- Fixed sys module import shadowing bug in retrieve.py
- Test suite updated to reflect new authorization model
User Impact:
- Simpler authorization: single source of truth (Configure Tools)
- Better debugging: diagnostic logs visible in Output > "Flowbaby" channel
- Faster resolution of bridge issues: progress markers identify exactly where operations block
[0.3.1]
Added - Plan 015: Agent Ingestion Command
- Agent Ingestion API:
Flowbaby.ingestForAgentcommand enables GitHub Copilot agents and third-party extensions to store structured summaries in Cognee- TypeScript schema validation with detailed error messages
- Workspace-global access model with prominent privacy warnings
- Structured JSON request/response with camelCase field naming
- Auto-generation of missing IDs (topicId, timestamps)
- Fast-fail validation before bridge invocation
- Agent Access Control: New
Flowbaby.agentAccess.enabledsetting (default: false)- Workspace-global trust model (all extensions granted access when enabled)
- Prominent warning in settings UI about privacy implications
- Access enforcement at command handler level
- Audit Logging: Comprehensive logging for all agent ingestion attempts
- Real-time logs in
Output>Cognee Agent Activitychannel - Structured JSON audit log at
.flowbaby/agent_audit.log - Privacy-preserving topic digests (8-char SHA-256 hash)
- Tracks timestamp, agent name, result, error codes, duration
- Real-time logs in
- Agent Integration Documentation: Complete API guide at
extension/AGENT_INTEGRATION.md- TypeScript examples (minimal and full payloads)
- Error handling patterns with error codes
- Security model explanation
- Best practices for topic ID generation and ingestion timing
- Troubleshooting guide
- Bridge Contract Documentation:
extension/bridge/INGEST_CONTRACT.mddefines stable ingestion schema- JSON payload specification (required/optional fields)
- Error codes reference (ACCESS_DISABLED, INVALID_PAYLOAD, etc.)
- Example payloads (minimal, full, invalid)
- Performance characteristics
- Testing instructions
- Test Agent Extension: Reference implementation at
test-agent/- Validates all ingestion scenarios (valid, invalid, access control)
- Automated test suite with pass/fail reporting
- Can be used as template for custom agent development
Added - Plan 016: Agent Retrieval and UI-Visible Extension Tools
- Agent Retrieval API:
Flowbaby.retrieveForAgentcommand enables agents to query Cognee knowledge graph- Structured JSON request/response with
CogneeContextRequest/CogneeContextResponsetypes - Returns metadata-rich entries (topic, topicId, planId, score, decisions, timestamps)
- Concurrency limiting (max 2 in-flight requests, configurable up to 5)
- Rate limiting (max 10 requests/minute, configurable up to 30)
- Graceful degradation for legacy memories (null metadata fields)
- Structured JSON request/response with
- CogneeContextProvider Service: Centralized retrieval infrastructure with architectural guardrails
- FIFO request queueing with concurrency enforcement
- Per-minute rate limiting with sliding window
- Structured error responses (ACCESS_DISABLED, RATE_LIMIT_EXCEEDED, QUEUE_FULL, BRIDGE_TIMEOUT, INVALID_REQUEST)
- Settings clamping with safe upper bounds (prevents misconfiguration)
- UI-Visible Language Model Tools: Both tools appear in VS Code's "Configure Tools" dialog
flowbaby_storeMemory(#cogneeStoreSummary) - Store conversation summariesflowbaby_retrieveMemory(#cogneeRetrieveMemory) - Retrieve relevant memories- Tools support
#autocomplete in chat and.agent.mdfront-matter references - Atomic lifecycle: both tools register/unregister together when
agentAccess.enabledtoggles - Icon support for visual identity (
$(database)and$(search))
- Custom Agent Integration: Full support for custom
.agent.mdfiles- Tools reference name format:
tools: ['cogneeStoreSummary', 'cogneeRetrieveMemory'] - Confirmation messages for transparency (optional, depends on user trust settings)
- Retrieve tool returns BOTH narrative markdown AND verbatim JSON payload
- Tools reference name format:
- @flowbaby Participant Refactor: Now uses shared
CogneeContextProvider- Consistent retrieval behavior across participant and tools
- Leverages centralized concurrency/rate limiting
- Enhanced metadata display (topicId, planId, score when available)
- Transparency Indicators: All agent activity is auditable
- Output channel logs every retrieval/ingestion with timestamps, query hashes, result counts
- Status bar indicator shows "Cognee Agent Access: Enabled" with spinner during operations
- Click behavior opens Output channel for inspection
- Enhanced Documentation:
AGENT_INTEGRATION.mdextended with retrieval examples, tool integration guide, error code referenceREADME.mdincludes "Using Cognee Tools with Custom Agents" section with.agent.mdexamples- Complete TypeScript interfaces in
types/agentIntegration.ts
- Agent Access Settings: Additional configuration for retrieval behavior
Flowbaby.agentAccess.maxResultsDefault(default: 5)Flowbaby.agentAccess.maxTokensDefault(default: 4000)Flowbaby.agentAccess.maxConcurrentRequests(default: 2, max: 5)Flowbaby.agentAccess.rateLimitPerMinute(default: 10, max: 30)
Changed
- Minimum VS Code Version: Requires VS Code 1.106+ for
canBeReferencedInPrompt/toolReferenceNamesupport - Extension Activation: CogneeContextProvider initialization happens after CogneeClient setup
- Participant Behavior: @flowbaby now routes through CogneeContextProvider (no breaking changes to user experience)
Added - Test Coverage Enhancements (from previous release)
Added - Test Coverage Enhancements
- Summary Workflow Integration Tests: 14 new automated tests in
summaryWorkflow.integration.test.ts- 7 workflow tests validate complete "summarize → generate → store" flow
- 7 snapshot tests guard against README/template drift
- Tests cover trigger detection, no-history errors, cancellation, large conversations
- Template Consistency Validation: Round-trip preservation tests ensure format → parse cycle stability
- Mixed-Mode Test Coverage: Validates enriched vs legacy memory handling in integration context
- Section Heading Stability: Tests enforce that headings match DATAPOINT_SCHEMA.md exactly
Fixed
- Manual Test Isolation: Added
@pytest.mark.manualdecorator to manual scripts to prevent CI failures - Pytest Configuration: Registered
manualmarker inpytest.inifor proper test filtering - QA Documentation: Updated with environment-specific test execution guidance
Improved
- Test Suite Reliability: Default
pytestruns now succeed (37 passed, 1 skipped) - VS Code Test Coverage: 77 total tests passing (up from 63), no regressions
- Documentation Accuracy: Snapshot tests catch template/README divergence automatically
[0.3.0]
Added - Plan 014: Structured Conversation Summaries
- Conversation Summary Generation: Create structured summaries via
@flowbaby summarize this conversation- Adjustable turn count scope (default: last 15 turns)
- Interactive scope adjustment before generation
- LLM-powered summary extraction with Plan 014 schema
- User confirmation required before storage
- Enriched Summary Schema: Structured format with Topic, Context, Decisions, Rationale, Open Questions, Next Steps, References, and Time Scope
- Metadata-Rich Retrieval: Summaries include status badges (📋 Status, 📅 Created, 🏷️ Plan ID), structured content sections, and temporal awareness
- Mixed-Mode Support: Seamless handling of both enriched summaries (Plan 014+) and legacy raw-text memories
- In-Chat Help: Type
@flowbaby helpor invoke with no query to see usage guide - Bridge Contract Documentation:
DATAPOINT_SCHEMA.mdandRETRIEVE_CONTRACT.mddefine stable schemas for downstream consumers
Changed
- Retrieval Display: Now shows structured metadata badges and organized content sections for enriched summaries
- Python Bridge:
retrieve.pyreturns structured JSON with parsed metadata instead of raw text - CogneeClient:
retrieve()method returnsRetrievalResult[]with typed fields (topicId, status, createdAt, decisions, etc.)
Improved
- Summary Quality: Structured format improves retrieval precision by surfacing key decisions and rationale
- Temporal Context: Created timestamps enable recency-aware reasoning (foundation for Plan 015 ranking)
- Status Tracking: Active/Superseded status field enables decision lifecycle tracking (foundation for Plan 015 compaction)
- User Control: Explicit summary creation and confirmation flow ensures intentional memory capture
- Backward Compatibility: All legacy raw-text memories remain accessible; retrieval transparently handles both formats
Technical
- Enriched Text Storage: Summaries stored as markdown with embedded metadata per §4.4.1 (Cognee 0.3.4 constraint)
- Template Versioning:
<!-- Template: v1.0 -->tag enables future format migrations - Regex-Based Parsing: Deterministic section heading patterns for metadata extraction
- TypeScript Tests: 59/59 passing with updated RetrievalResult mocks
- Python Tests: 16/16 passing with enriched text formatting and contract validation
[0.2.3]
Fixed
- Display truncation in chat participant - users can now see full retrieved memory content (up to 2000 chars)
- Query logging truncation increased from 50 to 200+ characters for better debugging
- Ingestion timeout increased from 30s to 120s to reduce false-positive failures
- Error messages now distinguish timeout (may still succeed) from true ingestion failure
- Added comprehensive ingestion performance metrics (Python-side duration, step-level timing)
- Added process exit vs timeout logging for diagnosing bridge-level latency
Improved
- Transparent memory display with character count indicators aligns with discoverability goals (Epic 0.2.2.3)
- Clear truncation indication when memories exceed 2000 chars (shows "showing X of Y chars")
- Query length now shown in debug logs when queries exceed 200 chars
- Ingestion timeout errors now explain background processing may still succeed
- Extension logs include both Node-side and Python-side duration metrics for correlation
- Step-level metrics (load_env, init_cognee, config_llm, dataset_ontology, add, cognify) enable bottleneck identification
[0.2.2]
Fixed
- Display truncation in chat participant - users can now see full retrieved memory content (up to 2000 chars)
- Query logging truncation increased from 50 to 200+ characters for better debugging
Improved
- Transparent memory display with character count indicators aligns with discoverability goals (Epic 0.2.2.3)
- Clear truncation indication when memories exceed 2000 chars (shows "showing X of Y chars")
- Query length now shown in debug logs when queries exceed 200 chars
[0.2.1]
Breaking Changes
- Environment:
LLM_API_KEYis now required in workspace.env. Previously supportedOPENAI_API_KEYfallback removed to align with Cognee 0.4.0 conventions.
Fixed
- Ingestion failures and 30s timeouts caused by Cognee using site-packages storage instead of workspace-local directories
- Silent parameter fallback code that masked configuration errors
- File-not-found errors during ingestion due to cross-context storage mismatches
Changed
- All Cognee system and data directories now scoped to workspace (
.flowbaby/system/,.flowbaby/data/) - Removed fallback parameter retries; signature mismatches now surface as clear errors
- Enhanced error logging with structured details (exception type, parameters, context)
[0.2.0]
Added
- Debug Configuration: VS Code launch.json for F5 Extension Development Host debugging
- Visible Build Logging: esbuild now shows compilation progress and errors (logLevel: 'info')
- Developer Documentation: Enhanced SETUP.md and README.md with debugging workflow and troubleshooting guidance
Fixed
- Extension Activation Failure: Missing .vscode/launch.json prevented Extension Development Host from loading the extension
- Silent Build Errors: Build failures were hidden with logLevel: 'silent', now visible for rapid debugging
Implementation 008 Features (from v0.1.0 foundation)
Added
- Keyboard Shortcut Capture (Ctrl+Alt+C / Cmd+Alt+C): Selective conversation capture via keyboard shortcut + input box workflow
- @flowbaby Chat Participant: Explicit memory-augmented chat participant for context retrieval and informed responses
- Command Palette Capture: Alternative capture method via "Cognee: Capture to Memory" command
- Toggle Memory Command: Quick on/off toggle via "Cognee: Toggle Memory" command
- Clear Memory Command: Delete workspace memory via "Cognee: Clear Workspace Memory" command (with confirmation)
- OWL/Turtle Ontology: Chat-specific ontology file (
ontology.ttl) with 8 classes and 12 object properties for grounded entity extraction - Conversational Ingestion Format: Simplified natural prose format for better LLM extraction quality
- Step 6 Feedback Loop (Experimental): Optional automatic capture of @flowbaby conversations (disabled by default due to Cognee 0.4.0 bug)
- Graceful Degradation: Retrieval failures show warning but participant continues without context
- Configuration Setting:
Flowbaby.autoIngestConversationsfor experimental feedback loop control
Changed
- User Workflow: Shifted from automatic global capture to selective, user-controlled keyboard shortcut capture
- Participant Model:
@flowbabyrequires explicit invocation; no passive injection into other participants - Ontology Integration: Updated
ingest.pyto useontology_file_pathparameter with RDFLib validation and graceful fallback - Ingestion Format: Changed from bracketed metadata format to conversational prose for improved extraction
Improved
- Automatic Python Interpreter Detection: Extension now auto-detects workspace
.venvvirtual environment, eliminating need for manualFlowbaby.pythonPathconfiguration in most cases - Enhanced Error Messages: Python errors (missing packages, API key issues) now visible in Output Channel with actionable troubleshooting hints
- Workspace-Relative Execution: Bridge scripts run from workspace context for reliable path resolution
- Context Display: Retrieved memories formatted with clear markdown previews ("📚 Retrieved N memories")
- Performance Logging: Retrieval timing logged to Output Channel for monitoring (<1000ms P95 target)
- Error logs sanitize sensitive data (API keys, tokens) before display
- Configuration documentation clarifies when manual Python path setting is needed
- Structured error extraction from Python subprocess stdout
- Better diagnostics for missing dependencies and environment issues
Fixed
- Generic "exit code 1" errors replaced with specific failure reasons
- Missing
cogneepackage now clearly diagnosed instead of silent failure - Python interpreter mismatch no longer requires manual configuration for standard
.venvsetups - Keyboard shortcut comment typo in code (Ctrl+Shift+M → Ctrl+Alt+C)
Known Issues
- Cognee 0.4.0 File Hashing Bug: Intermittent ingestion failures for repeated identical content affect Step 6 auto-ingestion; workaround via
Flowbaby.autoIngestConversations=false(default) - Manual Capture Workflow: Keyboard shortcut requires copy-paste; cannot extract message from chat UI directly (VS Code API limitation)
- Explicit Participant Invocation: Must type
@flowbaby; cannot inject context into other participants (API limitation)
Technical Implementation
- 6-step participant flow: retrieval → format display → augment prompt → generate response → capture conversation (conditional)
- RDFLib ontology parsing with graceful fallback to no-ontology mode
- Asynchronous fire-and-forget ingestion (non-blocking)
- Comprehensive integration test suite (27 passing tests)
- VS Code Chat API v1.105+ compatibility
0.1.0
Added
- Initial release of Flowbaby extension
- Automatic capture of GitHub Copilot chat conversations
- Automatic context retrieval from Cognee memory before responses
- Workspace-isolated memory with separate knowledge graphs per workspace
- Chat-specific ontology defining User, Question, Answer, Topic, Concept, Problem, Solution, and Decision entities
- Hybrid graph-vector search combining relationship traversal with semantic similarity
- Recency and importance weighting for intelligent context relevance scoring
- Configurable settings:
Flowbaby.enabled- Toggle memory on/offFlowbaby.maxContextResults- Maximum results to retrieve (1-10)Flowbaby.maxContextTokens- Token budget for context (100-10000)Flowbaby.recencyWeight- Prioritize recent conversations (0-1)Flowbaby.importanceWeight- Prioritize marked conversations (0-1)Flowbaby.pythonPath- Custom Python interpreter pathFlowbaby.logLevel- Debug verbosity (error/warn/info/debug)
- Comprehensive integration test suite with 6 test cases
- Python bridge scripts for Cognee library communication
- Output Channel logging for debugging and monitoring
Technical Implementation
- Uses Cognee 0.3.4 with dataset-based logical isolation
- SHA1-hashed workspace identifiers for stable and unique dataset naming
- Global marker file pattern prevents data loss during concurrent initialization
- Stateless ontology configuration applied per ingestion operation
- TypeScript extension with Python subprocess bridge architecture
- esbuild-based compilation for optimized bundle size
Known Limitations
- Requires workspace folder (doesn't work in single-file mode)
- Currently captures conversations through Chat Participant API
- Python and Cognee must be installed separately (not bundled)
- First conversation in new workspace has no context (memory starts empty)
- macOS and Linux tested; Windows support may require additional configuration