Commit Graph
126 Commits
Author SHA1 Message Date
M3gA-Mind a0654c0b67 feat: add macOS build scripts and update input schema handling
- Introduced new build scripts for macOS targeting Intel architecture, including options for debug and release builds.
- Updated input schema handling in the skill instance to ensure consistent naming with the `inputSchema` property for better compatibility with JSON serialization.
2026-03-19 11:37:41 +05:30
M3gA-Mind 232767c19a feat: integrate TinyHumans memory client for skill data synchronization
- Added `syncMemoryClientToken` utility to synchronize JWT token with the TinyHumans memory client after user login and Redux rehydration.
- Updated `PersistGate` in `App.tsx` to call `syncMemoryClientToken` on lift.
- Modified `SkillManagementPanel` to use `triggerSync` for skill management instead of stopping and starting skills.
- Implemented memory commands in Tauri for initializing and querying the TinyHumans memory client.
- Enhanced skill instance handling to persist sync data and clear memory on OAuth revocation.
- Introduced a new memory module to manage skill data synchronization effectively.
2026-03-18 17:05:16 +05:30
cyrus 8eaf682d83 remove: deprecated QuickJS runtime and associated libraries
- Deleted `bootstrap.js`, `qjs_ops`, and `mod.rs` from QuickJS runtime module.
- Removed unused QuickJS-related code, including APIs for browser-like shims, IndexedDB, WebSocket, TDLib, and OAuth.
- Simplified project structure by eliminating redundant QuickJS dependencies.
2026-03-17 23:09:37 +05:30
cyrus fd5eba17ba Remove TDLib build scripts and manager implementation
Eliminated `build-tdlib-from-source.sh`, `download-tdlib.sh`, and the `TdLibManager` implementation, effectively removing local TDLib management. Transitioning away from local TDLib usage simplifies code and infrastructure by relying on alternative methods or prebuilt libraries.
2026-03-17 23:08:58 +05:30
cyrus 3393bb25c0 Merge remote-tracking branch 'upstream/main' into develop
# Conflicts:
#	package.json
#	src-tauri/.gitignore
2026-03-17 16:39:41 +05:30
Steven Enamakel 4bce89c5de feat: add comprehensive documentation for architecture, MVP, teams API, and TODOs
- Introduced detailed architecture documentation outlining the cross-platform capabilities and high-level design of AlphaHuman.
- Added MVP specification for the Telegram-based Agent Assistant, detailing phased development plans and core functionalities.
- Created a complete reference for the Teams API, covering team management, member management, invite management, and billing management endpoints.
- Included a TODO file to track future enhancements and features for the project.
- Removed outdated example skill files for better clarity and maintenance.
2026-03-15 06:18:55 -07:00
M3gA-Mind 5d2fbc9e47 Refactor Gmail email handling and improve HTTP client management
- Updated `gmailSlice` to replace `GmailEmailSummary` with `GmailEmailBatch`, enhancing email data structure.
- Modified `SkillProvider` to dispatch emails as `GmailEmailBatch | null`.
- Improved HTTP client management in `ops_net.rs` by implementing a shared client for fetch calls, optimizing connection handling and timeout management.
- Enhanced deep link handling in `desktopDeepLinkListener.ts` to trigger synchronization after OAuth completion.
2026-03-14 04:33:03 +05:30
M3gA-Mind a2a81ee9c1 Enhance Notion metadata synchronization and update tool documentation
- Updated `syncNotionMetadataToBackend` to include additional Notion data (pages and summaries) for backend integration.
- Refactored `syncNotionStateToSlice` to handle profile, pages, and summaries more effectively.
- Revised `TOOLS.md` to improve clarity and organization of parameters for Gmail and Notion tools.
- Added new entries to `.gitignore` for prebuilt TDLib files.
2026-03-12 05:05:26 +05:30
cyrus 4169b6dcae Disable unnecessary health monitoring log
Commented out a redundant health monitoring log in the `alphahuman` module to reduce clutter. Additionally, fixed an issue in `package.json` where the `test:unit:watch` script had an incorrect command.
2026-03-10 19:11:00 +05:30
M3gA-Mind 65baaaced5 feat: enhance Conversations component with detailed logging and tool call execution
- Updated the inference request structure to improve type safety and added comprehensive logging for both requests and responses.
- Modified tool call execution to handle only the latest tool call while sending placeholders for previous calls.
- Implemented error handling for tool results, ensuring proper logging and formatting of error messages.
- Introduced a timeout parameter for network requests in the ops_net module to enhance request reliability.
2026-03-10 05:24:16 +05:30
M3gA-Mind 9436fdef1c Merge remote-tracking branch 'substream/develop' into feat/set-tool-call 2026-03-10 03:29:31 +05:30
cyrus e0af9e923d log: enhance runtime logging and tool filtering for debugging
- Added detailed logging for tool schema generation, tool execution, and runtime state checks to improve traceability.
- Enhanced Gmail/Notion tool filtering with additional
2026-03-10 02:00:58 +05:30
cyrus ae187de9d1 feat: introduce agent system types, execution panel, and service tests
- Added new `AgentSystem` types to support enhanced agent execution, tool tracking, API compatibility, and integration with thread system.
- Developed `AgentExecutionPanel` React component for detailed real-time monitoring of agent execution status and history.
- Created comprehensive tests for `AgentLoopService` covering execution flow, tool integration, error handling, and timeout scenarios.
2026-03-10 00:40:00 +05:30
M3gA-Mind f91e409a0d Enhance development scripts and improve tool documentation
- Updated `package.json` scripts for better error handling and streamlined execution of Tauri commands.
- Added a new `gmail-skill-integration.md` document detailing the Gmail skill integration process, including OAuth2 flow and tool definitions.
- Improved formatting and consistency in `TOOLS.md` for better readability and clarity.
- Enhanced logging in skill management and transport layers for better debugging and monitoring of tool calls.
2026-03-09 19:27:48 +05:30
cyrus 72fe40db84 Remove noisy logs and update package references
Redundant debug logs in the daemon were removed to reduce noise in the logging system. Updated package references in `yarn.lock` and `package.json` to use `registry.npmjs.org` instead of `registry.yarnpkg.com`, ensuring consistency in package resolution.
2026-03-05 21:22:12 +05:30
cyrusandClaude f55a0de3f8 feat: implement auto-update TOOLS.md system with real runtime tool discovery
Replace hardcoded mock data (4 tools) with dynamic discovery system that
generates TOOLS.md from actual V8 skills runtime (152+ tools).

Key Features:
- Real-time tool discovery via runtime_all_tools() command
- Auto-generates comprehensive documentation with examples
- Throttled updates (10s limit) to prevent excessive calls
- Vite file watching exclusion to prevent reload loops
- Manual update capability via dev mode button
- OpenClaw-compliant formatting for AI context injection

Technical Implementation:
- New auto-update.ts module with discovery, grouping & markdown generation
- Enhanced Tauri write_ai_config_file command for secure file operations
- Removed auto-trigger from skill activation for better performance
- Added ai/ directory to Vite ignore list

Result: TOOLS.md now shows real tools from telegram (48), gmail (7),
notion (25), github (72) instead of 4 hardcoded examples.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-05 21:20:50 +05:30
cyrusandClaude aef7df5dce feat: implement unified AI injection system with dynamic TOOLS.md generation
- Create complete modular AI configuration system following OpenClaw standards
- Add dynamic TOOLS.md generation from V8 skills runtime discovery
- Implement unified injection system with injectAll() for SOUL + TOOLS contexts
- Update all 4 integration points to use unified injection consistently

## New Features:

### Modular AI Configuration System
- loadSoul() → SoulConfig (personality, voice, behavior)
- loadTools() → ToolsConfig (available tools and capabilities)
- loadAIConfig() → AIConfig (unified SOUL + TOOLS configuration)
- Multi-layer caching: memory → localStorage → GitHub → bundled

### Dynamic TOOLS.md Generation
- yarn tools:generate command for build-time tool discovery
- Spawns Tauri runtime to call runtime_all_tools() from V8 skills
- Generates OpenClaw-compliant documentation with usage examples
- Professional formatting with environment configs and statistics
- Currently discovers 4 tools from 3 skills (telegram, notion, gmail)

### Unified Injection System
- injectAll() function combines SOUL + TOOLS injection
- injectSoul() and injectTools() for individual injection
- Consistent [PERSONA_CONTEXT] and [TOOLS_CONTEXT] formatting
- Updated all integration points: Conversations.tsx, threadSlice.ts, threadApi.ts, tauriCommands.ts

### Build System Integration
- Added tools:generate script to package.json
- Rust binary: src-tauri/src/bin/alphahuman-tools-discovery.rs
- Cross-platform discovery scripts in scripts/tools-generator/
- Fixed Cargo.toml binary configuration and main.rs imports

### Enhanced Settings UI
- AI Configuration panel shows both SOUL and TOOLS
- Individual refresh buttons for each component
- Combined "Refresh All AI Configuration" functionality
- Source indicators and statistics display

## Technical Implementation:

### File Structure:
- /ai/TOOLS.md - Auto-generated tool documentation
- src/lib/ai/tools/injector.ts - Tools injection system
- src/lib/ai/injector.ts - Unified injection orchestrator
- src/lib/ai/loader.ts - Unified configuration loader
- scripts/tools-generator/ - Build-time discovery system

### Message Format:
```
[PERSONA_CONTEXT]
I am AlphaHuman: incredibly smart, funny friend...
[/PERSONA_CONTEXT]

[TOOLS_CONTEXT]
4 tools across 3 skills
Categories: Communication (2), Productivity (1), Email (1)
[/TOOLS_CONTEXT]

User message: Hello!
```

### Performance & Reliability:
- Multi-layer caching with 30min TTL
- Graceful degradation if injection fails
- Cross-platform build support (Windows, macOS, Linux)
- Full TypeScript compliance with comprehensive error handling

🤖 Generated with Claude Code(https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-05 19:42:55 +05:30
Mega MindandGitHub c3718d9e4f Feat/final flow check (#155)
* feat: add mnemonic recovery flow and encryption key management

- Introduced a new Mnemonic page for users to generate or import their recovery phrase.
- Updated routing to redirect users to the Mnemonic page after onboarding.
- Enhanced state management to store and retrieve AES encryption keys derived from the mnemonic.
- Added utility functions for generating and validating BIP39 mnemonic phrases.
- Updated selectors and reducers to handle encryption key state in the auth slice.
- Included new dependencies for cryptographic operations.

* feat: integrate Web3 wallet functionality and enhance state management

- Added WalletInfoSection component to display connected wallet address, network, and balance.
- Updated auth slice to manage primary wallet address derived from mnemonic.
- Enhanced SkillManager to pass wallet address as load parameters for wallet skill.
- Introduced utility function to derive EVM wallet address from mnemonic.
- Updated dependencies for cryptographic operations related to wallet functionality.

* fix: improve error handling and network selection in WalletInfoSection

- Enhanced the parsing of network data to ensure robustness against undefined values.
- Updated network selection logic to prioritize valid entries and provide a fallback.
- Improved error logging for better debugging of wallet information loading issues.
- Adjusted balance retrieval to handle cases where chain_id may be missing.

* feat: add socket event contract for Tauri integration

- Documented the socket event contract for communication between the backend and frontend in Tauri mode.
- Introduced constants for `REQUEST_ENCRYPTION_KEY` and `ENCRYPTION_KEY_EVENT` to facilitate encryption key management.
- Updated `setupTauriSocketListeners` to handle the encryption key request and response flow.

* Refactor wallet information fetching and connection status handling

- Updated `WalletInfoSection` to improve loading state management and error handling during wallet info retrieval.
- Introduced a retry mechanism for fetching wallet information with a maximum of 5 attempts.
- Enhanced connection status logic in `SkillsGrid` to treat missing authentication status as connected.
- Added a new method in `SkillManager` to set the wallet address and notify the wallet skill accordingly.

* feat: add integration token fetching and decryption functionality

- Introduced `fetchIntegrationTokens` API call to retrieve encrypted OAuth tokens for integrations.
- Implemented decryption logic for integration tokens using a provided key.
- Enhanced deep link handling to support fetching and storing integration tokens upon successful OAuth login.
- Added utility functions for hex and base64 conversions to facilitate token decryption.
- Updated `authApi.ts` and `desktopDeepLinkListener.ts` to integrate new functionality.

* refactor: move integration token encryption/decryption logic to a new utility file

- Extracted encryption and decryption functions for integration tokens into `integrationTokensCrypto.ts`.
- Removed redundant functions from `desktopDeepLinkListener.ts` to streamline the code.
- Updated deep link handling to store only the encrypted tokens instead of decrypted ones.
- Improved type definitions for integration tokens and their payloads.

* feat: enhance Gmail skill integration and state management

- Updated `SkillManager` to accept an optional access token for Gmail during OAuth completion.
- Introduced `gmailSlice` to manage Gmail user profile and emails in the Redux store.
- Implemented synchronization of Gmail skill state with the Redux store to keep user data updated.
- Refactored `SkillProvider` to handle Gmail state changes and fetch initial state from the backend.
- Adjusted deep link handling to pass decrypted access tokens for Gmail integration.
- Modified API endpoint for onboarding completion to remove the Telegram prefix.

* feat: implement Gmail metadata synchronization to backend

- Added a new utility function `syncGmailMetadataToBackend` to emit Gmail profile and email summaries to the backend via the `integration:metadata-sync` socket event.
- Updated `SkillProvider` to call the new synchronization function, ensuring Gmail skill state is sent to the backend when updated.

* refactor: update Tauri socket event handling and improve Mnemonic component typing

- Revised the Tauri socket event contract to clarify that encryption key handling is managed via the API instead of the socket.
- Removed outdated socket event constants related to encryption key requests from `tauriSocket.ts`.
- Enhanced type definitions in the `Mnemonic` component by specifying the event type for keyboard events.

* fix: update Gmail provider constant and adjust metadata synchronization logic

- Changed the constant for the Google provider from 'google' to 'gmail' for clarity.
- Commented out the email metadata synchronization logic in `syncGmailMetadataToBackend` to prevent potential issues with undefined email states.

* feat: implement Gmail metadata synchronization service

- Added a new file `metadataSync.ts` to handle the synchronization of Gmail profile and email summaries to the backend via the `integration:metadata-sync` socket event.
- Updated import paths in `SkillProvider` to reflect the new location of the Gmail metadata synchronization function.
- Enhanced type definitions for Gmail profile and email summaries to ensure proper data structure during synchronization.

* refactor: clean up code formatting and improve readability across multiple components

- Standardized import statements and formatting in various files, including `WalletInfoSection`, `AgentChatPanel`, and `SkillsPanel`.
- Enhanced readability by adjusting line breaks and spacing in JSX elements and function definitions.
- Improved consistency in the use of arrow functions and destructuring across components.
- Updated type definitions and ensured proper alignment of code for better maintainability.

* feat: enhance error handling in WalletInfoSection and improve user feedback

- Added error reporting functionality in `WalletInfoSection` to capture and enqueue errors when wallet info fails to load.
- Updated `Mnemonic` component to handle user state more robustly, ensuring encryption key is only set if the user is loaded.
- Refactored `TauriCommandsPanel` to improve string comparisons for loading states by converting to lowercase.
- Adjusted deep link handling in `desktopDeepLinkListener` to use trimmed hex values for encryption key conversion.

* fix: improve balance parsing and error handling in WalletInfoSection

- Updated balance parsing logic in `WalletInfoSection` to ensure that non-finite values default to zero.
- Enhanced error handling in `desktopDeepLinkListener` by adding error reporting for invalid encryption keys and conversion failures, improving user feedback and debugging capabilities.

* Merge remote-tracking branch 'upstream/develop' into feat/final-flow-check

* chore: update submodule URL for skills repository to use HTTPS

* chore: update skills submodule to latest commit and enhance SkillsGrid component

- Updated the skills submodule to the latest commit for improved functionality.
- Refactored `SkillsGrid` to better handle skill setup logic, ensuring accurate representation of skills with setup requirements.
- Cleaned up code formatting and improved readability in various components, including `SkillActionButton` and `desktopDeepLinkListener`.

* feat: implement Notion metadata synchronization and user profile management

- Added a new service `metadataSync.ts` to handle synchronization of Notion user metadata to the backend via the `integration:metadata-sync` socket event.
- Introduced a new Redux slice `notionSlice.ts` for managing the Notion user profile state.
- Updated `SkillProvider` to fetch and sync Notion user profile upon connection, ensuring seamless integration with the backend.
- Enhanced the store configuration to include the new Notion reducer.

* refactor: remove unnecessary console warnings in SkillProvider

- Eliminated console warnings related to Notion user retrieval errors and auto-loading skills, streamlining the logging process for better clarity and reducing noise in the console output.
- Improved code readability by cleaning up commented-out warning messages that were no longer needed.
2026-03-04 14:33:17 +05:30
fb4a88867a feat: self evolving skills (#150)
* feat(skills): extend GenerateSkillSpec with full_index_js and update generator

- Add optional `full_index_js` field to GenerateSkillSpec so LLM-generated
  JS source can be written verbatim instead of using the default template
- Change generate_alphahuman() return type from PathBuf to Vec<PathBuf>
  (returns both manifest.json and index.js paths for audit logging)
- Add UnifiedSkillRegistry::skills_dir() and engine() helper accessors
  needed by the self-evolve orchestrator

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(skills): add isolated QuickJS skill tester with mock bridge globals

Introduces SkillTester::run_isolated() which spins up a fresh rquickjs
context (no shared state), injects no-op mock globals for all bridge APIs
(db, net, state, platform, cron, skills), loads index.js, and calls
init/start plus each tool's execute() with empty args.

The test passes only if every exported tool returns without throwing and
produces valid output. Used by the self-evolve loop to validate generated
code before registering it into the live registry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(skills): add LLM code generator using Anthropic Claude API

Introduces LlmGenerator with two methods:
- generate_spec(task): first-pass generation from a natural-language task
  description; produces a complete GenerateSkillSpec including full_index_js
- fix_spec(task, prev_code, error): retry pass that feeds the previous
  code and the test error back to the model for correction

Uses claude-3-5-haiku-20241022 via direct reqwest POST to the Anthropic
messages API. System prompt teaches the model the exact QuickJS index.js
format, available bridge globals, and synchronous net.fetch semantics.
Strips markdown code fences from the response before use.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(skills): add self-evolve orchestrator with iteration loop and audit log

Introduces SkillEvolver::evolve() which implements the full pipeline:
  1. LLM generates a GenerateSkillSpec from a task description
  2. generator::generate_alphahuman() writes manifest.json + index.js
  3. SkillTester::run_isolated() validates the code in a fresh sandbox
  4. On failure: feed error back to LLM and regenerate (up to max_iterations)
  5. On success: discover_skills() + start_skill() to register live, then
     execute() to run the real task and capture final output
  6. Returns SelfEvolveResult with full audit log, files_created, and
     the final UnifiedSkillResult

Wraps the entire evolve() call in tokio::time::timeout (default 120s).
Cleans up written skill directory on permanent failure so no partial
skill is left registered.

Key types:
  SelfEvolveRequest  — task_description, max_iterations, timeout_secs,
                       optional anthropic_api_key override
  SelfEvolveResult   — skill_id, success, iterations_used, audit_log,
                       files_created, final_result, failure_reason
  IterationLog       — per-iteration code, test output, pass/fail flag

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(tauri): register unified_self_evolve_skill command with progress events

Adds unified_self_evolve_skill Tauri command that:
- Accepts a SelfEvolveRequest (task_description + optional limits)
- Emits skill:evolve:progress event after each iteration so the frontend
  can show live progress without polling
- Delegates to SkillEvolver::evolve() and returns SelfEvolveResult
- Mobile stub returns an informative error (feature requires desktop runtime)

Registers the command in generate_handler![] in lib.rs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): add SelfEvolveModal and Auto-Generate button to SkillsGrid

SelfEvolveModal (src/components/skills/SelfEvolveModal.tsx):
- createPortal modal with 4 states: idle / running / success / failed
- Text input for natural-language task description
- Calls unified_self_evolve_skill via invoke() on submit
- Subscribes to skill:evolve:progress Tauri events to show live iteration
  updates (iteration number, pass/fail indicator)
- On success: displays audit log accordion with per-iteration code,
  test output, and final task result
- On failure: shows failure reason and full audit trail for debugging
- Calls onSkillCreated() callback to trigger grid refresh

SkillsGrid changes:
- Add selfEvolveOpen state + "Auto-Generate" button in the toolbar
- Extract refreshSkills as a named async function reused by both the
  initial load and the SelfEvolveModal's onSkillCreated callback
- Add activeSkillType state so SkillSetupModal shows the correct badge
  when opened from either the Connect or Manage flow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(skills): fix alphahuman skill template and generation pipeline

- generator.rs: use bare `tools = []` (not const) for globalThis access,
  add `execute: async function(args)` method, fix `input_schema` casing
- mod.rs: call start_skill() after generate() so skills are immediately executable
- llm_generator.rs: update model to claude-haiku-4-5-20251001, sync system prompt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(skills): fix tools not loading for generated skills and add robustness fixes

- llm_generator: require 'var tools = [...]' in system prompt (const/let are
  block-scoped and do not attach to globalThis, causing extract_tools() to find
  an empty array in the production QuickJS engine)
- llm_generator: add smart_name() — deterministic display name from task
  description (strips preambles + lead fillers + stop words, title-cases 3
  tokens); replaces brittle LLM-dependent naming
- llm_generator: improve sandbox testing rules in system prompt so placeholder
  values prevent test failures when net.fetch returns empty JSON
- skill_tester: detect {error: '...'} return values as test failures (both sync
  and Promise paths) so the iteration loop attempts a fix instead of treating
  them as success
- manager.ts: dispatch setSkillSetupComplete(true) for skills without a setup
  flow so deriveConnectionStatus() returns "connected" instead of "connecting"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 19:58:42 +04:00
ca11b001c8 feat: comprehensive Tauri Command Console redesign with runtime panic fixes (#136)
* feat: add .mcp.json for MCP server configuration

- Introduced `.mcp.json` with server details for managing MCP integrations
- Defines `readme` server with HTTP type and URL endpoint configuration

* fix: Update skills submodule with Telegram error handling improvements

- Fixed setup flow showing false success when TDLib errors occurred
- Improved async error handling in setup steps
- Added client reset mechanisms for error recovery
- Enhanced error messaging for better user experience
- Cleaned up excessive debug logging while maintaining error logs

Resolves issue where Telegram setup showed success modal despite underlying TDLib errors.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: comprehensive redesign of Tauri Command Console

Transform 845-line admin interface into premium crypto-styled experience:

- Complete architectural redesign with 6 logical categories
- Premium card system with priority-based styling (Ocean blue, Slate, Amber)
- Progressive disclosure system (Basic → Advanced → Developer modes)
- Contextual descriptions for all 60+ form fields
- Responsive design with desktop grid and mobile accordion
- 100% functionality preservation while dramatically improving UX

Categories reorganized:
• System Configuration (Critical - API keys, model settings)
• Runtime & Execution (Critical - V8 engine, skills, services)
• Security & Data (Critical - encryption, integrations)
• Network & Infrastructure (Infrastructure - gateway, tunnels, memory)
• Development & Operations (Development - diagnostics, hardware)
• Interactive Tools (Tools - agent chat, output console)

Components added:
- SectionCard: Priority-based collapsible sections
- InputGroup: Consistent form field organization
- ActionPanel: Enhanced action buttons with loading states

Features:
- Smart progressive disclosure with user preference memory
- Contextually accurate field descriptions and guidance
- Professional typography using Cabinet Grotesk and Inter
- Sophisticated color gradients matching crypto aesthetic
- Mobile-responsive accordion behavior
- Accessibility improvements with proper ARIA labeling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: remove tooltips and reposition descriptions in Tauri Commands Panel

- Remove tooltip system entirely from InputGroup components
- Move full descriptions directly below labels instead of after input fields
- Improve spacing and readability throughout interface
- Delete unused Tooltip component and textUtils utilities
- Enhance Field and CheckboxField components with better typography

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* style: improve spacing and layout in Tauri Commands Panel

- Enhance spacing between sections and components for better readability
- Improve grid gaps and padding throughout the interface
- Refine ActionPanel and SectionCard component spacing
- Better organize skills display with improved item spacing
- Polish overall visual hierarchy and component alignment

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: implement comprehensive UI consistency for Tauri Command Console

- Replace all white backgrounds with sophisticated dark theme styling
- Update input fields with bg-stone-900/40 and proper focus states
- Implement custom button system replacing DaisyUI dependencies
- Apply consistent glass morphism patterns throughout interface
- Enhance checkbox and form component styling for better integration
- Fix textarea elements with proper dark theme colors and borders
- Add professional hover states and accessibility improvements
- Achieve perfect visual consistency with Intelligence and Skills pages

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: implement accordion pattern for System Configuration, Runtime & Execution, and Security & Data sections

- Convert three critical sections to use collapsible accordion pattern
- Add isSectionVisible() conditional wrappers for progressive disclosure
- Change collapsible={false} to collapsible={true} for all three sections
- Add defaultExpanded={!isCollapsed()} for consistent state management
- Fix section ID consistency in getSectionVisibility() function
- Maintain all existing functionality and content
- Provide consistent UX matching Network & Infrastructure pattern

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* style: standardize all sections with Network & Infrastructure color scheme

- Change all priority values to "infrastructure" for visual consistency
- System Configuration: priority="critical" → "infrastructure"
- Runtime & Execution: priority="critical" → "infrastructure"
- Security & Data: priority="critical" → "infrastructure"
- Development & Operations: priority="development" → "infrastructure"
- Interactive Tools: priority="tools" → "infrastructure"

All sections now use unified slate gradient backgrounds and icon colors
for a cohesive, professional appearance throughout the interface.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: resolve JSX syntax error in Interactive Tools section

- Fix extra '>' character in ChatBubbleLeftRightIcon icon prop
- Corrects TypeScript compilation error on line 1050
- Ensures proper JSX syntax for SectionCard component

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: remove view mode selector and always show all 6 sections

- Remove view mode state and selector UI (basic/advanced/developer)
- Always show all sections: System Configuration, Runtime & Execution, Security & Data, Network & Infrastructure, Development & Operations, Interactive Tools
- All sections start expanded by default for immediate access
- Simplify section visibility logic to always return true
- Keep loading indicator positioned on the right
- Improve UX by removing unnecessary progressive disclosure

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: resolve runtime panic and infinite loading in Test Connection

- Fixed "Cannot drop a runtime in a context where blocking is not allowed" panic
- Implemented Handle::try_current() pattern in TDLib manager and skills bridge
- Added runtime safety utilities with proper async execution patterns
- Fixed ownership issues with request_rx and future parameters
- Added timeout protection to config loading operations
- Enhanced error handling for runtime creation conflicts
- Resolved compilation errors with proper variable cloning

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: enhance Tauri Commands Panel with comprehensive validation system

- Added ValidatedField component with real-time validation and visual feedback
- Implemented provider-specific smart defaults and URL auto-population
- Enhanced Test Connection with proper timeout and error handling
- Added change tracking with unsaved changes indicator
- Improved field validation for API keys, URLs, providers, models, and temperature
- Enhanced ActionPanel and SectionCard with loading states and change indicators
- Added provider configuration system with model suggestions
- Implemented comprehensive error handling with field-specific feedback

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: update skills submodule with dependency updates

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-26 19:56:51 +04:00
b037627d84 Feat/daemon setup (#148)
* feat: add .mcp.json for MCP server configuration

- Introduced `.mcp.json` with server details for managing MCP integrations
- Defines `readme` server with HTTP type and URL endpoint configuration

* fix: Update skills submodule with Telegram error handling improvements

- Fixed setup flow showing false success when TDLib errors occurred
- Improved async error handling in setup steps
- Added client reset mechanisms for error recovery
- Enhanced error messaging for better user experience
- Cleaned up excessive debug logging while maintaining error logs

Resolves issue where Telegram setup showed success modal despite underlying TDLib errors.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add daemon lifecycle management system to frontend UI

This implementation integrates the Rust daemon's health monitoring and lifecycle management into the React frontend. Key features include real-time health indicators, automatic start/error recovery, and detailed control panels, enhancing both user experience and operational reliability.

* Enhance daemon health monitoring with detailed logging, event tracking, and state management improvements.

* Add extensive logging for Tauri socket lifecycle and event listeners

This update improves troubleshooting and debugging by adding detailed logs throughout Tauri socket initialization, event listener setup, and error handling processes.

* Define global Tauri interface types in TypeScript

* Fix daemon service management and health communication issues

This comprehensive fix resolves two critical daemon-related issues:

1. **Launchctl "Input/output error" fix**:
   - Add intelligent state checking before service operations
   - Only load LaunchAgent if not already loaded
   - Treat "already running" as success, not failure
   - Add helper functions for cross-platform service state detection
   - Implement idempotent service start operations

2. **Daemon health communication fix**:
   - Add ALPHAHUMAN_DAEMON_INTERNAL environment variable to external service plist
   - Force external daemon to use file-based communication (daemon_state.json)
   - Implement file watching bridge in main app to emit Tauri events
   - Ensure frontend receives proper health updates from external daemon

**Key Changes**:
- Enhanced `start()` function with state checking across all platforms
- Added `is_service_loaded_macos()`, `is_service_enabled_linux()`, `is_task_exists_windows()`
- Modified macOS plist to include `ALPHAHUMAN_DAEMON_INTERNAL=false`
- Added `watch_daemon_health_file()` function for external daemon communication
- Updated daemon mode detection logic for cross-platform consistency
- Added comprehensive logging for service management operations

**Expected Results**:
- No more "Input/output error" when clicking daemon start button
- External daemon status shows "connected" instead of "disconnected"
- Idempotent service operations (safe to run multiple times)
- Single daemon process prevents resource conflicts
- Cross-platform daemon service reliability

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add `ALPHAHUMAN_DAEMON_INTERNAL` env variable to configuration documentation

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-26 19:55:53 +04:00
2876f4468e Feat/zeroclaw x alphahuman (#140)
* feat(runtime): add skill_type to SkillManifest for unified registry

Add optional skill_type field (alphahuman | openclaw) with serde default
'alphahuman' so existing manifest.json files remain valid. Enables
type-based dispatch in the unified skill system.

* feat(runtime): add UnifiedSkillEntry and UnifiedSkillResult types

UnifiedSkillEntry provides a common interface for both alphahuman (QuickJS)
and openclaw (SKILL.md/TOML) skills: id, name, skill_type, version,
description, status, tools. UnifiedSkillResult standardizes execution
responses (skill_id, tool_name, content, is_error, executed_at) and is
MCP-spec compatible for content blocks.

* feat(runtime): expose skills_source_dir() on RuntimeEngine

Public getter for the skill source directory so the unified skill
generator can write new alphahuman skills (manifest.json + index.js)
to the same directory the runtime discovers skills from.

* feat(skills): add unified skill registry, openclaw executor, generator

- UnifiedSkillRegistry: merges alphahuman (RuntimeEngine::discover_skills)
  and openclaw (load_skills from ~/.alphahuman/workspace/skills/), dispatches
  execute by skill_type, supports generate from GenerateSkillSpec.
- openclaw_executor: runs SKILL.toml tools via shell (sh -c) or http
  (reqwest), returns SKILL.md prompt as text when no tools;  interpolation.
- generator: generate_alphahuman writes manifest.json + index.js to skills dir;
  generate_openclaw writes SKILL.md or SKILL.toml to workspace/skills/<name>/.

* feat(commands): add Tauri commands for unified skill API

- unified_list_skills: returns Vec<UnifiedSkillEntry> (alphahuman + openclaw).
- unified_execute_skill: dispatches by skill_type to QuickJS or openclaw
  executor, returns UnifiedSkillResult.
- unified_generate_skill: generates skill from spec, returns new UnifiedSkillEntry.
Desktop implementations use UnifiedSkillRegistry; mobile stubs return
empty/error (QuickJS not available on Android/iOS).

* feat(tauri): register unified skill commands in generate_handler

Wire unified_list_skills, unified_execute_skill, and unified_generate_skill
into both desktop and mobile generate_handler![] blocks so the frontend
can invoke them via Tauri IPC.

* feat(skills): add skill_type to frontend skill types

- SkillManifest (lib/skills/types.ts): optional skill_type 'alphahuman' | 'openclaw'.
- SkillListEntry (skills/shared.tsx): same for list entries so the grid
  can show type badges and handle openclaw vs alphahuman differently if needed.

* feat(SkillsGrid): use unified registry, type badges, generate button

- Load skills via unified_list_skills (fallback to runtime_discover_skills
  when unavailable, e.g. mobile).
- Show SkillTypeBadge per row: blue for alphahuman, purple for openclaw.
- Add Generate button that calls unified_generate_skill with a demo
  alphahuman spec and refreshes the list so the new skill appears.

* feat(skills): unified skill registry with security hardening and PR fixes

- Add UnifiedSkillRegistry merging alphahuman (QuickJS) and openclaw (SKILL.md/TOML) skill types
- Add three Tauri commands: unified_list_skills, unified_execute_skill, unified_generate_skill
- Add skill_type field to SkillManifest and UnifiedSkillEntry
- Add SkillTypeBadge (blue=alphahuman, sage=openclaw) and Generate button in SkillsGrid

Security fixes from PR review:
- Fix shell injection in openclaw_executor: POSIX single-quote escaping + 30s timeout
- Fix SSRF in run_http_tool: URL scheme validation + DNS resolution + private IP blocking
- Add EscapeContext enum (Shell/Url/None) for context-aware arg interpolation

Generator fixes:
- Guard sanitize_id empty result with early Err in generate_alphahuman/generate_openclaw
- Fix JS description embedding via serde_json::to_string (proper newline/backslash escaping)
- Fix sanitize_fn_name to prepend _ when result starts with digit
- Replace manual TOML format! with serde structs + toml::to_string for correct escaping

Frontend fixes:
- Extract normalizeUnifiedEntry helper shared by initial load and post-generate refresh
- Replace hardcoded hasSetup/ignoreInProduction in refreshed mapping with data-driven values
- Use SkillType alias centralising 'alphahuman' | 'openclaw' union in types.ts and shared.tsx
- Fix SkillTypeBadge colors to approved palette (sage) and radius token (rounded-md)

Nitpick: remove status from UnifiedSkillEntry (frontend derives status from Redux)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 10:43:49 +04:00
Cyrus GrayGitHubClaudeSteven Enamakelgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
71aeb55f2e feat: redesign Tauri Command Console with premium UI/UX (#135)
* feat: add .mcp.json for MCP server configuration

- Introduced `.mcp.json` with server details for managing MCP integrations
- Defines `readme` server with HTTP type and URL endpoint configuration

* fix: Update skills submodule with Telegram error handling improvements

- Fixed setup flow showing false success when TDLib errors occurred
- Improved async error handling in setup steps
- Added client reset mechanisms for error recovery
- Enhanced error messaging for better user experience
- Cleaned up excessive debug logging while maintaining error logs

Resolves issue where Telegram setup showed success modal despite underlying TDLib errors.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: bump version to 0.45.0 [skip ci]

* chore: bump version to 0.46.0 [skip ci]

* chore: bump version to 0.47.0

* feat: comprehensive redesign of Tauri Command Console

Transform 845-line admin interface into premium crypto-styled experience:

- Complete architectural redesign with 6 logical categories
- Premium card system with priority-based styling (Ocean blue, Slate, Amber)
- Progressive disclosure system (Basic → Advanced → Developer modes)
- Contextual descriptions for all 60+ form fields
- Responsive design with desktop grid and mobile accordion
- 100% functionality preservation while dramatically improving UX

Categories reorganized:
• System Configuration (Critical - API keys, model settings)
• Runtime & Execution (Critical - V8 engine, skills, services)
• Security & Data (Critical - encryption, integrations)
• Network & Infrastructure (Infrastructure - gateway, tunnels, memory)
• Development & Operations (Development - diagnostics, hardware)
• Interactive Tools (Tools - agent chat, output console)

Components added:
- SectionCard: Priority-based collapsible sections
- InputGroup: Consistent form field organization
- ActionPanel: Enhanced action buttons with loading states

Features:
- Smart progressive disclosure with user preference memory
- Contextually accurate field descriptions and guidance
- Professional typography using Cabinet Grotesk and Inter
- Sophisticated color gradients matching crypto aesthetic
- Mobile-responsive accordion behavior
- Accessibility improvements with proper ARIA labeling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: remove tooltips and reposition descriptions in Tauri Commands Panel

- Remove tooltip system entirely from InputGroup components
- Move full descriptions directly below labels instead of after input fields
- Improve spacing and readability throughout interface
- Delete unused Tooltip component and textUtils utilities
- Enhance Field and CheckboxField components with better typography

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* style: improve spacing and layout in Tauri Commands Panel

- Enhance spacing between sections and components for better readability
- Improve grid gaps and padding throughout the interface
- Refine ActionPanel and SectionCard component spacing
- Better organize skills display with improved item spacing
- Polish overall visual hierarchy and component alignment

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: implement comprehensive UI consistency for Tauri Command Console

- Replace all white backgrounds with sophisticated dark theme styling
- Update input fields with bg-stone-900/40 and proper focus states
- Implement custom button system replacing DaisyUI dependencies
- Apply consistent glass morphism patterns throughout interface
- Enhance checkbox and form component styling for better integration
- Fix textarea elements with proper dark theme colors and borders
- Add professional hover states and accessibility improvements
- Achieve perfect visual consistency with Intelligence and Skills pages

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: implement accordion pattern for System Configuration, Runtime & Execution, and Security & Data sections

- Convert three critical sections to use collapsible accordion pattern
- Add isSectionVisible() conditional wrappers for progressive disclosure
- Change collapsible={false} to collapsible={true} for all three sections
- Add defaultExpanded={!isCollapsed()} for consistent state management
- Fix section ID consistency in getSectionVisibility() function
- Maintain all existing functionality and content
- Provide consistent UX matching Network & Infrastructure pattern

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* style: standardize all sections with Network & Infrastructure color scheme

- Change all priority values to "infrastructure" for visual consistency
- System Configuration: priority="critical" → "infrastructure"
- Runtime & Execution: priority="critical" → "infrastructure"
- Security & Data: priority="critical" → "infrastructure"
- Development & Operations: priority="development" → "infrastructure"
- Interactive Tools: priority="tools" → "infrastructure"

All sections now use unified slate gradient backgrounds and icon colors
for a cohesive, professional appearance throughout the interface.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: resolve JSX syntax error in Interactive Tools section

- Fix extra '>' character in ChatBubbleLeftRightIcon icon prop
- Corrects TypeScript compilation error on line 1050
- Ensures proper JSX syntax for SectionCard component

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: remove view mode selector and always show all 6 sections

- Remove view mode state and selector UI (basic/advanced/developer)
- Always show all sections: System Configuration, Runtime & Execution, Security & Data, Network & Infrastructure, Development & Operations, Interactive Tools
- All sections start expanded by default for immediate access
- Simplify section visibility logic to always return true
- Keep loading indicator positioned on the right
- Improve UX by removing unnecessary progressive disclosure

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-21 10:56:25 +04:00
c2ff8b693b feat/openclaw (#128)
* feat: add initial project structure and documentation

- Introduced the GNU General Public License (GPL) v3 in LICENSE file.
- Added MCP configuration in .claude/mcp.json for server integration.
- Created architecture documentation in docs/ARCHITECTURE.md outlining the platform's design and components.
- Defined MVP specifications in docs/MVP.md for the Telegram-based Agent Assistant.
- Established API reference for team management in docs/teams-api-reference.md.
- Set up basic HTML structure in public/index.html and added logo image in public/logo.png.

* feat: add initial project documentation and HTML structure

- Introduced CODE_OF_CONDUCT.md to establish community guidelines and standards for behavior.
- Created CONTRIBUTING.md to outline contribution process, development setup, and project conventions.
- Added SECURITY.md to define the security policy, supported versions, and reporting procedures for vulnerabilities.
- Established basic HTML structure in index.html for the application interface.

* chore: remove hello-python skill files

- Deleted skill.json and skill.py files for the Hello Python example runtime skill, as they are no longer needed in the project.

* feat: port tinyhuman agent runtime from ZeroClaw into Tauri backend

Port daemon supervisor, health registry, security (policy, secrets, audit,
pairing), agent traits, and config modules from ZeroClaw (MIT) into a new
tinyhuman/ module under src-tauri/src/. The daemon auto-starts on desktop
and shuts down gracefully on app exit via CancellationToken.

- health: global HealthRegistry with component tracking and JSON snapshots
- security/policy: SecurityPolicy with command validation, risk levels, rate limiting
- security/secrets: ChaCha20-Poly1305 SecretStore with legacy XOR migration
- security/audit: AuditLogger with JSON-line events and log rotation
- security/pairing: PairingGuard with brute-force protection and SHA-256 hashing
- security/traits: Sandbox trait + NoopSandbox
- config: minimal DaemonConfig with autonomy, reliability, secrets, audit sub-configs
- daemon: supervisor with health state writer emitting Tauri events
- agent/traits: Provider, Tool, Memory, Observer, RuntimeAdapter traits + Noop impls
- commands/tinyhuman: Tauri commands for health, security policy, encrypt/decrypt
- 185 inline unit tests across all modules
- README updated with custom inference/tunneling/memory positioning

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: update README to reflect AlphaHuman Mk1 branding and enhanced description

- Changed project title to "AlphaHuman Mk1" for clarity.
- Revised project description to emphasize user-friendly AI capabilities and the use of the Neocortex Mk1 model.
- Removed outdated sections on custom inference, tunneling, and memory, streamlining the content for better readability.

* update readme

* Port zeroclaw runtime into tinyhuman

* Replace CLI mentions with UI language

* Split gateway module into smaller units

* Split channels and config schema modules

* Fix tinyhuman build, tests, and tunnel integration

* feat(tinyhuman): add missing modules and ui-friendly services

* refactor: rename tinyhuman to alphahuman

* chore: remove bottom text from Welcome component

* feat(settings): add tauri command console

* feat(daemon): enhance daemon mode handling and integrate rustls with ring feature

* feat(settings): implement comprehensive configuration management in TauriCommandsPanel

* refactor(TauriCommandsPanel): streamline error handling and enhance async function usage

* feat(settings): add skill management functionality to TauriCommandsPanel

* style(TauriCommandsPanel): update input styles for improved readability and user experience

* feat(settings): add Skills and Agent Chat panels with navigation and integration management

* feat(settings): implement browser access management in SkillsPanel and enhance AgentChatPanel with local storage functionality

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:03:15 +04:00
github-actions[bot] dc77d14401 chore: bump version to 0.46.0 [skip ci] 2026-02-12 22:47:20 +00:00
github-actions[bot] f4840b1add chore: bump version to 0.45.0 [skip ci] 2026-02-12 21:14:48 +00:00
Steven Enamakel 6b00e46366 Merge remote-tracking branch 'upstream/develop' into develop 2026-02-13 01:08:51 +05:30
github-actions[bot] 2a939a5aa3 chore: bump version to 0.44.0 [skip ci] 2026-02-12 19:30:31 +00:00
github-actions[bot] a6be43c7d6 chore: bump version to 0.43.0 [skip ci] 2026-02-12 19:26:12 +00:00
Steven EnamakelGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>Claude Opus 4.6
8a8b3acf13 Move TDLib init to Rust side with reactive param auto-send (#105)
* chore: bump version to 0.38.0 [skip ci]

* chore: bump version to 0.39.0 [skip ci]

* chore: bump version to 0.40.0 [skip ci]

* chore: bump version to 0.41.0 [skip ci]

* chore: bump version to 0.42.0 [skip ci]

* feat: implement TDLib client initialization and ensure parameters are set

- Added early TDLib client startup in `run` function to prepare for skill execution.
- Introduced `ensureInitialized` method in QuickJS to create the client and set parameters atomically.
- Enhanced `TdLibManager` with `ensure_initialized` method to streamline client creation and parameter handling.
- Improved logging for client creation and parameter setting processes, aiding in debugging and monitoring.

* feat: reactive TDLib param auto-send and query initial auth state

- Rust worker loop auto-sends setTdlibParameters when TDLib requests them
- Add getAuthorizationState call after update loop starts in TS skill
- Add verbose logging to TDLib manager for debugging

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* update skill

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:34:24 +05:30
github-actions[bot] 5498c3ecb3 chore: bump version to 0.42.0 [skip ci] 2026-02-11 12:28:12 +00:00
Steven EnamakelandGitHub 27d4e65f87 Merge pull request #103 from vezuresdotxyz/develop
chore: merge develop into main (v0.42.0)
2026-02-11 17:57:59 +05:30
f4801726f3 Fix async tool calls not fetching data in QuickJS runtime (#102)
* Implement data synchronization feature in SkillManagementPanel

- Added a new `handleSync` function to trigger manual synchronization for skills, enhancing user control over data updates.
- Integrated skill state management to track synchronization progress, errors, and completion status.
- Updated the UI to display synchronization status, including progress indicators and error messages, improving user feedback during sync operations.
- Enhanced the SkillManager and SkillRuntime classes to support the new sync functionality, ensuring proper handling of sync requests and lifecycle hooks.

Updated subproject commit reference in the skills directory.

* Implement Conversations UI with two-panel thread layout and resizable sidebar

Add full Conversations feature: thread types, API service, Redux slice, and a
two-panel page with a draggable resize handle. Uncomment Conversations nav item
in MiniSidebar and enable prefix-based active state matching.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add Intelligence page and integrate intelligence stats hook

- Introduced a new Intelligence page with a skill management interface, allowing users to view and manage skills.
- Implemented the `useIntelligenceStats` hook to fetch and display session statistics, memory files, and entity counts.
- Enhanced the SkillsGrid component to utilize shared skill icons and status displays, improving UI consistency.
- Added functionality for skill synchronization and management, including action buttons for skill setup and syncing.
- Updated the Conversations page to support sending messages with optimistic UI updates, enhancing user experience.

This commit lays the groundwork for a more interactive and informative intelligence management feature.

* Update subproject commit reference in skills directory and enhance fetch handling in bootstrap.js

- Updated the subproject commit reference in the skills directory to the latest version.
- Modified the fetch implementation in bootstrap.js to ensure options are sent as a JSON string and to parse the JSON response, improving data handling and error management.

* Update subproject commit reference in skills directory and comment out Conversations nav item in MiniSidebar

- Updated the subproject commit reference in the skills directory to the latest version.
- Commented out the Conversations navigation item in MiniSidebar for future implementation.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 17:56:47 +05:30
github-actions[bot] b82f68cc7e chore: bump version to 0.41.0 [skip ci] 2026-02-11 08:42:33 +00:00
Steven EnamakelandGitHub e2efdebe97 Merge pull request #101 from vezuresdotxyz/develop
chore: merge develop into main (v0.41.0)
2026-02-11 14:12:19 +05:30
Steven EnamakelandGitHub c54404bfe1 Fix TDLib client lifecycle and skill status handling (#99)
* Refactor skill management and enhance TDLib client handling

- Updated skill registration logic to retain skills with Error and Stopped statuses for better UI feedback and restart capability.
- Improved TDLib client management by introducing a flag to prevent concurrent client creation during destruction, ensuring proper resource cleanup and database lock handling.
- Enhanced error handling in TDLib client destruction process to ensure graceful shutdown and resource release.

* Update skills subproject reference and enhance connection status handling

- Updated the subproject commit reference in the skills directory.
- Modified connection status checks in `SkillsGrid.tsx` and `hooks.ts` to account for 'stopping' state, improving the accuracy of skill status reporting.
- Added handling for 'stopped' and 'pending' statuses in `SkillProvider.tsx` to reset UI state appropriately.

* Update skills subproject commit reference to latest version
2026-02-11 13:14:12 +05:30
github-actions[bot] 18ee205e5d chore: bump version to 0.40.0 [skip ci] 2026-02-10 21:34:04 +00:00
Steven EnamakelandGitHub cf5ad31f24 Merge pull request #98 from vezuresdotxyz/develop
chore: merge develop into main (v0.40.0)
2026-02-11 03:03:52 +05:30
Steven EnamakelandGitHub 105a5fc08f Fix/tuesday (#97)
* Update submodule URL for skills and refresh commit reference

- Changed the submodule URL for the "skills" repository to use SSH instead of HTTPS.
- Updated the subproject commit reference in the skills directory to the latest commit.

* Update subproject commit reference for skills to latest version b5d138f

* updated skills

* Update ping interval and refactor context usage in QjsSkillInstance

- Reduced the PING_INTERVAL from 60 seconds to 5 seconds for more frequent pings.
- Refactored the context parameter in lifecycle calls and message handling functions to use the runtime context, improving consistency and performance.
- Updated subproject commit reference for skills to the latest version.
2026-02-11 02:50:50 +05:30
github-actions[bot] 3312a93659 chore: bump version to 0.39.0 [skip ci] 2026-02-10 17:05:02 +00:00
github-actions[bot] 8bbb8a9e52 chore: bump version to 0.38.0 [skip ci] 2026-02-10 17:00:09 +00:00
Steven Enamakel 1886f493ff Merge remote-tracking branch 'upstream/main' into develop 2026-02-10 22:29:36 +05:30
e23b3643bd Add invite codes feature (#94)
* Refactor import statement in store configuration for clarity

- Combined the import of `configureStore` and `Middleware` from '@reduxjs/toolkit' into a single line for improved readability.

* Add invite codes feature with onboarding step and dedicated page

Implement frontend for the invite codes system: users get 5 invite codes
to share, can redeem codes for free credits, and new users are prompted
during onboarding (step 1) to enter an invite code.

- Add invite types, API service, and Redux slice
- Add InviteCodeStep as first onboarding step (skip-able)
- Add /invites page with redeem input and code list with copy buttons
- Add "Invite Friends" nav item to sidebar
- Update UserReferral interface to match backend PR #418

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Update reqwest dependency to enable HTTP/2 support and switch to rustls TLS in network requests

- Modified Cargo.toml to include the "http2" feature for reqwest.
- Updated network request implementations in bridge and ops_net modules to use rustls TLS instead of native TLS for improved security and compatibility.

* Update event loop to handle async tool calls and improve message processing

- Introduced a `PendingToolCall` struct to manage in-flight async tool calls.
- Enhanced the event loop to check for completion of async tool calls and handle timeouts.
- Updated message handling to support async tool execution, allowing the event loop to process other messages concurrently.
- Refactored `handle_tool_call` to differentiate between synchronous and asynchronous tool results.
- Modified JavaScript fetch functions to use async/await for improved readability and performance.

* Enhance skill instance with initial ping verification and job driving

- Added an immediate ping to verify the connection health during skill execution, logging the result or any errors encountered.
- Updated the event loop to drive jobs asynchronously after the initial ping check.
- Removed unnecessary logging statements from the network operations for cleaner output.

* Update subproject commit reference in skills directory

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:28:54 +05:30
Cyrus GrayGitHubSteven Enamakelgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>Claude
561da4a0b4 feat: Implement complete team management system with role-based access control (#92)
* chore: bump version to 0.34.0 [skip ci]

* chore: bump version to 0.35.0 [skip ci]

* feat: add .mcp.json for MCP server configuration

- Introduced `.mcp.json` with server details for managing MCP integrations
- Defines `readme` server with HTTP type and URL endpoint configuration

* chore: bump version to 0.36.0 [skip ci]

* feat: implement complete team management flow with role-based access control

- Add comprehensive team management system with proper role handling
- Create TeamManagementPanel for team-specific management hub
- Fix role case sensitivity issues (API returns lowercase, UI expects uppercase)
- Implement proper team context routing for members and invites panels
- Add teams API reference documentation for development reference
- Update navigation hooks to support team management routing
- Apply consistent max-w-md width constraints across all team panels
- Support team switching, creation, joining, and leaving functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: resolve role dropdown case sensitivity issue in TeamMembersPanel

- Fix dropdown showing incorrect default role due to case mismatch
- API returns lowercase roles ("admin", "member") but UI expects uppercase
- Normalize member.role to uppercase in dropdown value and badge display
- Ensures dropdown correctly shows actual member role instead of defaulting to first option

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: correct navigation flow from team management members/invites back to team management

- Fix route detection to prioritize team management paths over regular team paths
- Ensure back button from /team/manage/{id}/members goes to /team/manage/{id} instead of /team
- Ensure back button from /team/manage/{id}/invites goes to /team/manage/{id} instead of /team
- Replace unreliable document.referrer with proper URL path pattern matching
- Add proper hierarchical navigation for team management flow

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: add loading states for team members and invites pages

- Add separate loading states (isLoadingMembers, isLoadingInvites) to team slice
- Display spinner with "Loading members..." message while fetching team members
- Display spinner with "Loading invites..." message while fetching team invites
- Hide member count and show loading UI during fetch operations
- Improve user experience by providing visual feedback during API calls
- Ensure proper loading state management in Redux reducers

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* improve: enhance loading UX for team members and invites

- Show existing data during refresh instead of hiding everything
- Add subtle "Refreshing members..." indicator when data exists
- Add subtle "Refreshing invites..." indicator when data exists
- Only show full loading screen when no existing data (first load)
- Use amber color for refresh indicators to distinguish from main loading
- Maintain member/invite count visibility during refresh operations
- Significantly better user experience with non-blocking refresh states

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: implement complete team edit and delete functionality

- Add Team Settings button with modal to edit team name using updateTeam() API
- Add Delete Team button with confirmation modal using deleteTeam() API
- Prevent deletion of personal teams (safety check)
- Include proper error handling with user-friendly messages
- Add loading states for update/delete operations
- Modal overlays with proper styling and responsive design
- Navigate back to teams list after successful deletion
- Refresh teams data after successful name update
- Complete the remaining team management API integrations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: add confirmation modals for all critical team management actions

- Add confirmation modal for removing team members with impact explanation
- Add confirmation modal for changing member roles with permission details
- Add confirmation modal for revoking invite codes with validation info
- Include specific warnings for admin role changes (granting/removing admin rights)
- Display invite codes in confirmation modal for clarity
- Maintain loading states during confirmation flow
- Enhance user safety by preventing accidental critical actions
- Follow consistent modal design patterns across all confirmations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: add visual indicators for used/expired invite codes

- Add status detection for expired and used up invites
- Implement visual styling with reduced opacity for inactive invites
- Add status badges (Expired/Used Up) next to invite codes
- Disable copy button for inactive invites with visual feedback
- Restrict revoke button to active invites only
- Improve invite code styling based on status

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: add confirmation modal for leaving teams

- Add confirmation modal for team leave action matching other critical actions
- Update handleLeaveTeam to show confirmation instead of immediate action
- Add new confirmLeaveTeam function for actual leave operation
- Include loading states and proper error handling in leave button
- Show warning about losing access and needing new invite to rejoin

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-02-10 16:58:49 +05:30
github-actions[bot] 1617416700 chore: bump version to 0.37.0 [skip ci] 2026-02-10 11:14:15 +00:00
Steven EnamakelandGitHub 98f4ab7669 Merge pull request #84 from vezuresdotxyz/develop
chore: merge develop into main (v0.37.0)
2026-02-10 16:44:02 +05:30
Steven Enamakel fa41d90c2d Update subproject commit reference and enhance GitHub workflows
- Updated the subproject commit reference in the skills directory.
- Modified the build workflow to enable submodule fetching.
- Standardized quotation styles in the package-and-publish workflow for consistency.
- Refactored the `setSkillOAuthCredential` function for improved readability.
- Added an attribute to the `Error` variant in the `SkillMessage` enum to suppress warnings for unused code.
2026-02-10 16:41:29 +05:30
Steven Enamakel 95b7e2acce Enhance error handling in skill message processing
- Added a new `Error` variant to the `SkillMessage` enum to notify skills of errors from async operations, including error type, message, source, and recoverability.
- Updated the `handle_message` function to handle `SkillMessage::Error`, invoking the `onError` JavaScript handler and logging any failures in the handler execution.
- Updated subproject commit reference in the skills directory.
2026-02-10 16:24:17 +05:30
Steven Enamakel a7e208a7cb Update subproject commit reference in skills directory and remove logging from get_session_token function for improved security 2026-02-10 16:22:20 +05:30
Steven Enamakel 81c61fac12 Update logging configuration and adjust ping interval for improved performance
- Enhanced logging setup in `lib.rs` to allow customizable verbosity and color-coded output based on log levels and tags.
- Reduced ping interval in `ping_scheduler.rs` from 5 minutes to 1 minute for more frequent health checks on skills.
- Added functionality to suppress TDLib's native C++ logs based on environment variable settings in `manager.rs`.
2026-02-10 15:30:57 +05:30