* fix(workspace): address PR #47 review feedback
- Use stable keys (item.label) instead of array indices in FileContextMenu
- Add clipboard feedback showing "Copied!" or "Failed" status
- Fix empty catch block in createFile to preserve error context
- Remove duplicate empty line in workspace page
- Remove unused MarkdownViewer component (replaced by FileEditor)
* refactor(workspace): streamline FileEditor layout and enhance responsiveness
- Simplified the FileEditor component by removing unused action buttons and restructuring the layout for better clarity.
- Updated styles for indicators and buttons to improve visual consistency and responsiveness across different screen sizes.
- Adjusted text sizes for better readability in various states (editing, saving, etc.) and ensured proper flex behavior for metadata display.
* style(workspace): update text sizes for indicators in FileEditor
- Increased font sizes for various indicators (Markdown, Editing, Unsaved, Saving, Saved, Save failed) to improve readability.
- Adjusted button visibility logic to only show the Save button when there are unsaved changes, enhancing user experience.
* feat(workspace): add file creation functionality in FileTree and NewFileDialog
- Introduced a button in the FileTree component to create new files within directories.
- Updated NewFileDialog to accept an optional folderPath prop, allowing file creation in specified directories.
- Enhanced WorkspacePage to manage folder paths for new file creation, improving user experience when organizing files.
* style(workspace): update file metadata display color in FileTree
- Modified the text color for file size metadata in the FileTree component to improve visual distinction based on selection state. The color now changes to a lighter shade when the file is selected, enhancing user experience and clarity.
* refactor(workspace): remove redundant editing indicator from FileEditor
- Eliminated the "Editing" mode indicator from the FileEditor component to streamline the UI. This change enhances clarity by focusing on the unsaved changes indicator, improving the overall user experience.
* style(workspace): refine flex properties and text wrapping in FileEditor
- Updated flex properties for various elements in the FileEditor component to enhance layout consistency and responsiveness.
- Improved text wrapping behavior for indicators and content areas, ensuring better readability and visual alignment across different screen sizes.
* style(workspace): update text weight in FileEditor for improved readability
- Changed font weight to 'light' for the text in the FileEditor component, enhancing visual clarity and consistency with the overall design.
* style(workspace): adjust flex properties and text sizes in FileTree
- Updated flex properties to remove redundant 'flex-shrink-0' classes, enhancing layout consistency.
- Increased font size for file metadata display to improve readability.
- Ensured consistent styling for folder and file icons, contributing to a cleaner UI.
* style(monitor): increase font sizes for improved readability across components
- Updated font sizes from 10px to 11px in various components including ActionNode, ExecNode, MobileMonitorToolbar, and others to enhance text clarity.
- Adjusted text sizes in the SettingsPanel and SessionList for consistency and better user experience.
- Ensured uniformity in font sizes across the monitor components to maintain a cohesive design.
- Updated instructions to emphasize brevity when communicating with users, ensuring they are not overwhelmed.
- Revised phrasing to enhance clarity in initiating feedback conversations, maintaining a conversational tone throughout.
- Removed the installation check for `qrencode` from the main installation steps to streamline the process.
- Added a new section detailing optional installation of `qrencode` for QR code display, with platform-specific commands for macOS, Debian/Ubuntu, Fedora, and Arch.
- Improved clarity and organization of installation instructions to enhance user experience.
- Add feedback skill for collecting user feedback via agents
- Feedback submitted as GitHub Issues with labels (bug, feature, general)
- Requires Crabwalk installation before feedback interview
- Agents prompt users for feedback after installation
- Capture issues during conversation as feedback
- Browse all feedback at https://crabwalk.app/#/feedback
- Added a new section for soliciting user feedback after initial use of Crabwalk, encouraging users to share their experiences.
- Introduced guidelines for capturing issues as feedback, outlining steps for assisting users and submitting feedback.
- Included resource links for submitting and browsing feedback to enhance user engagement and improve the feedback collection process.
- Updated language to encourage users to ask for assistance with installation rather than stating it directly.
- Enhanced conversational tone by rephrasing instructions to promote collaboration in the installation process.
- Maintained emphasis on the importance of having Crabwalk installed before proceeding with feedback collection.
- Revised the body field in the feedback JSON structure to encourage users to share details about the machine, location, and Crabwalk version number.
- Enhanced clarity and completeness of feedback submissions to improve the overall feedback process.
- Revised language to specify that the Crabwalk skill can assist with installation directly.
- Changed phrasing to enhance clarity and maintain a conversational tone, emphasizing collaboration in the installation process.
- Ensured users understand the importance of installation before proceeding with feedback collection.
- Introduced a new prerequisite section to ensure users verify Crabwalk installation before proceeding with feedback collection.
- Provided clear instructions for users on how to check for installation and what to communicate if Crabwalk is not installed.
- Emphasized the importance of not conducting interviews without Crabwalk being installed to enhance the feedback process.
- Updated language to maintain a conversational tone by consistently using "your human" instead of "the human" or "user."
- Added a new section to guide users on initiating feedback conversations with broad questions.
- Enhanced instructions for adapting questions based on responses and emphasized the importance of clarifying questions.
- Improved post-submission communication guidelines to ensure clarity in interactions with users.
- Enhanced language to promote a more conversational tone, replacing "user" with "human" for consistency.
- Added emphasis on asking clarifying questions and refining user feedback during interviews.
- Updated submission guidelines to ensure feedback is only submitted after confirming no further input from the human.
- Improved instructions for browsing feedback and post-submission communication.
- Introduced a new document outlining the Crabwalk Feedback Skill, detailing two feedback modes: User Research Interview and Quick Feedback.
- Provided guidelines for selecting a feedback mode, submitting feedback via API, and post-submission steps.
- Included notes on feedback processing and user interaction to enhance the feedback collection process.
- Simplified instructions for obtaining the gateway token, emphasizing automatic detection from the configuration file.
- Added manual retrieval options and explicit token setting commands for user convenience.
- Added detailed CLI usage section including commands, options, and examples for better user guidance.
- Included information on auto-detection of gateway token and QR code display on startup.
* feat: implement starred files functionality in workspace
- Added state management for starred files, allowing users to star and unstar files.
- Updated local storage handling to persist starred files across sessions.
- Enhanced sidebar to display starred files, with a collapsed view for better accessibility.
- Refactored sidebar animation logic for improved performance and user experience.
* feat: enhance FileTree component with starring functionality
- Added support for starring and unstarring files within the FileTree component.
- Integrated starred files state management in the WorkspacePage, persisting changes to local storage.
- Updated UI to display starred files in a dedicated section with both collapsed and expanded views.
- Refactored FileTree and FileTreeItem components to accommodate new props for starring functionality.
* refactor: remove starring functionality from FileTree and update MarkdownViewer
- Removed starred file management from FileTree and FileTreeItem components.
- Updated MarkdownViewer to include starring functionality with a star button.
- Adjusted WorkspacePage to handle starred files display and interactions.
- Cleaned up related props and UI elements for improved clarity and performance.
* feat: add mobile components and safe area padding for improved mobile experience
- Introduced MobileBottomToolbar, MobileFileDrawer, and MobilePathSheet components for enhanced mobile functionality.
- Updated WorkspacePage to conditionally render mobile components based on device type.
- Added safe area padding in styles.css to accommodate iOS devices.
* feat: update MobileBottomToolbar to include currentPath prop and enhance UI elements
- Added currentPath prop to MobileBottomToolbar for displaying the current workspace path.
- Improved button styles and layout for better mobile usability.
- Adjusted icon sizes and spacing for a more consistent appearance across buttons.
* fix: update text color in MobileBottomToolbar based on currentPath prop
- Changed text color in the MobileBottomToolbar to reflect the presence of currentPath, enhancing visual feedback for users.
- Ensured consistency in UI elements for improved user experience.
* feat: enhance MobilePathSheet and WorkspacePage with validation logic
- Added validatedPath and pathValid props to MobilePathSheet for improved path validation handling.
- Updated button states in MobilePathSheet and WorkspacePage to reflect path validation status, enhancing user feedback.
- Improved input styling and layout for better usability on mobile devices.
* feat: integrate NavTabs component into MonitorPage and WorkspacePage
- Replaced existing navigation tab implementation with the new NavTabs component for a consistent UI across pages.
- Simplified the navigation structure by removing redundant tab elements while maintaining connection status visibility.
* refactor: simplify SessionList component structure and improve UI transitions
- Replaced motion.button with a standard button for better performance.
- Enhanced header and search input visibility with smoother opacity transitions.
- Updated platform filter buttons to improve accessibility and visual feedback.
- Refactored session list rendering for improved animation consistency and clarity.
* refactor: improve SessionList and NavTabs components for better UI and functionality
- Enhanced SessionList component with improved header visibility and transition effects.
- Updated NavTabs to include dropdown functionality with better accessibility and user interaction.
- Refactored styles for both components to ensure consistency and responsiveness across different states.
* refactor: update NavTabs component styles for improved UI consistency
- Increased font size for terminal header and footer text for better readability.
- Removed decorative dots from the terminal header to streamline the design.
- Adjusted padding in the terminal footer for a more balanced layout.
* fix: remove workspace sidebar scrollbar
* feat: add mobile components to MonitorPage for enhanced mobile experience
- Introduced MobileSessionDrawer and MobileMonitorToolbar components for improved mobile functionality.
- Updated MonitorPage to conditionally render mobile components based on device type.
- Enhanced layout and state management for mobile interactions.
- Updated server startup instructions to emphasize sharing the network IP link instead of localhost.
- Added a new verification step for users to confirm access to the monitor link with their human.
- Included a prompt for users to encourage sharing feedback about Crabwalk.
* feat: add OpenClaw integration with client and persistence services
- Introduced ClawdbotClient for WebSocket communication with the OpenClaw gateway.
- Implemented persistence service for managing session, action, and execution event data.
- Added protocol definitions for request and response frames, chat and agent events.
- Created utility functions for parsing events and managing collections of sessions and actions.
- Included initial documentation for the OpenClaw repository structure and usage.
* refactor: update references from Clawdbot to OpenClaw
- Renamed instances of Clawdbot to OpenClaw across documentation and codebase.
- Updated file paths and configuration references to reflect the new OpenClaw integration.
- Adjusted WebSocket connection messages and error handling to align with OpenClaw terminology.
- Enhanced README and other documentation to provide accurate information regarding the OpenClaw setup and usage.
- Consolidated installation commands into a single step for clarity.
- Added verification step to check the installed version of Crabwalk.
- Updated instructions for starting the server and accessing the agent activity graph.
- Removed redundant sections and improved overall readability.
* feat: add crabwalk CLI
- bin/crabwalk: shell wrapper with start/stop/status/update commands
- daemon mode with --daemon flag
- auto-detect gateway token from ~/.clawdbot/clawdbot.json
- show network IPs on startup for remote access
- update skill.md and README with CLI usage
* auto-add ~/.local/bin to PATH during install
* support zsh PATH config
* feat(monitor): implement follow mode in ActionGraph for new nodes
- Added a follow mode feature that automatically pans the viewport to new nodes in the ActionGraph.
- Introduced a button to toggle follow mode, enhancing user experience by allowing users to track new nodes easily.
- Updated the ActionGraphInner component to manage viewport changes and node tracking effectively.
* feat(graph-layout): implement caching for spawn Y positions to prevent jitter
- Introduced a caching mechanism for spawn Y positions of child sessions to maintain stability during parent action accumulation.
- Updated the layoutGraph function to utilize cached values, reducing recalculation and improving layout consistency.
- Added cleanup logic to remove entries from the cache for sessions that no longer exist, ensuring efficient memory usage.
* style(ActionGraph): enhance follow mode button appearance
- Updated the styling of the follow mode button in the ActionGraphInner component to include a backdrop blur effect, improving visual feedback for users when the mode is active.
* refactor(clawdbot): update spawn inference logic
- Replaced parent session activity tracking with a pending spawns array to record Task tool calls.
- Adjusted the spawn inference window to 10 seconds, ensuring accurate tracking of recent Task calls.
- Enhanced the inferSpawnedBy function to utilize the new pending spawns structure for improved session mapping.
- Removed obsolete parent session activity tracking code for cleaner implementation.
* fix(clawdbot): normalize tool name handling in action tracking
- Updated the action tracking logic to convert tool names to lowercase for consistent comparison, ensuring accurate detection of 'Task' tool calls in both addAction and hydrateFromServer functions.
- Enhanced event parsing to process tool events more effectively, improving overall event handling and session state management.
* refactor(clawdbot): enhance spawn inference with parent session activity tracking
- Introduced a new Map to track recent parent session activity, providing a fallback for spawn inference when Task tool calls are not available.
- Updated the recordPendingSpawn and inferSpawnedBy functions to utilize this new tracking mechanism, improving the accuracy of session mapping.
- Enhanced the addAction and hydrateFromServer functions to incorporate parent session activity tracking, ensuring comprehensive spawn history management.
- Cleared parent session activity during collection resets to maintain data integrity.
* refactor(clawdbot): improve parent session action tracking for spawn inference
- Replaced the previous parent session activity tracking with a new structure to maintain a history of recent actions, allowing for more precise spawn inference.
- Updated the trackParentAction function to log actions with timestamps and manage a maximum history length.
- Modified the inferSpawnedBy function to utilize the new action history for better accuracy in linking subagents to their parent sessions.
- Adjusted the addAction and hydrateFromServer functions to reflect the new tracking mechanism, ensuring comprehensive session mapping.
- Cleared the action history during collection resets to maintain data integrity.
* style(monitor): adjust ActionGraph component dimensions
- Updated the ActionGraphInner component to include width and height styles, enhancing the layout and visual consistency of the graph representation.
- Revised the filtering logic for subagent sessions in the layoutGraph function to exclude empty sessions that lack associated actions or execs. This change enhances the accuracy of session representation in the graph layout by ensuring only relevant sessions are displayed.
- Improved the filtering logic for orphan subagents in the layoutGraph function. Subagent sessions are now validated against their parent sessions, ensuring only those with valid parents are included. Non-subagents are displayed if they lack a parent or have a valid one, enhancing the accuracy of session representation in the graph layout.
- Updated the graph layout logic to filter out orphan subagents, ensuring that sessions with a `spawnedBy` reference to non-existent parents are excluded from the layout. This improves the accuracy of session representation and enhances the overall stability of the graph layout.
* refactor(monitor): unify action node lifecycle in addAction function
- Updated the addAction function to consolidate the handling of action types (start, streaming, complete, error, aborted) into a single node per runId, improving data consistency and reducing redundancy.
- Enhanced the logic to ensure that all states for the same runId share one node ID, streamlining the update process and maintaining accurate session state representation.
* refactor(parser): streamline event handling for lifecycle and assistant streams
- Updated the agentEventToAction function to remove placeholder content for lifecycle events, relying on UI labels for clarity.
- Enhanced parseEventFrame to process assistant stream events, allowing for the inclusion of streaming content while maintaining lifecycle event handling.
- Improved overall event processing logic for better data consistency and clarity in session representation.
* fix(parser): enhance text handling in agentEventToAction and parseEventFrame
- Updated agentEventToAction to handle both 'text' type and string text properties for improved event processing.
- Modified parseEventFrame to accommodate the new structure of assistant stream events, ensuring accurate handling of streaming content.
- This change enhances the robustness of event parsing and improves data consistency across different event types.
* refactor(monitor): update ActionNode component for improved state representation
- Replaced the Play icon with Loader2 for the 'start' state to better reflect the action's progress.
- Adjusted border and background colors to enhance visual distinction for the 'start' state.
- Enabled animation for the 'start' state, improving user feedback during action execution.
* refactor(graph-layout): improve session sorting for stable layout representation
- Updated the sorting logic for rootSessions to use session keys instead of lastActivityAt, ensuring stable node positions during streaming and preventing unintended swaps in the layout.
* feat(monitor): add CloudDownload option for Gateway sync and remove Historical Mode toggle
- Introduced a new CloudDownload feature for syncing gateway sessions over the last 24 hours.
- Removed the Historical Mode toggle from the SettingsPanel to streamline the interface.
* feat(monitor): implement layout direction toggle in ActionGraph
- Added a state to manage layout direction (horizontal or vertical) in the ActionGraph component.
- Introduced a button to toggle between 'LR' (left-to-right) and 'TB' (top-to-bottom) layouts, enhancing user control over session display.
- Updated layout algorithm to accommodate the new direction state, improving visual organization of sessions and actions.
- Adjusted spacing constants for better alignment in both layout modes.
This update enhances the usability and flexibility of the ActionGraph visualization.
* feat(monitor): enhance session layout algorithm with hierarchical column mapping
- Introduced a new layout algorithm that organizes sessions into columns based on their spawn hierarchy, improving visual clarity.
- Added constants for layout spacing and offsets to better manage session positioning.
- Implemented functions to determine session depth and root index, facilitating a more structured representation of sessions and their relationships.
- Updated item sorting within sessions to ensure proper chronological order of actions and executions.
This update significantly enhances the organization and usability of the session display in the monitor component.
* feat(monitor): add ROOT_START_Y constant for root session positioning
- Introduced ROOT_START_Y constant to define the vertical offset for the first root session in the layout algorithm.
- Updated spawnY logic to position root sessions correctly below the crab, enhancing the visual hierarchy in the session layout.
This change improves the clarity and organization of session displays in the monitor component.
* feat(monitor): enhance session list with subagent grouping and improved filtering
- Introduced SubagentItem component for rendering subagent sessions.
- Grouped subagents under their parent sessions based on the spawnedBy relationship.
- Updated filtering logic to separate parent sessions from subagents.
- Enhanced sorting and display of sessions, including orphan subagents.
- Improved UI for session selection and status indication.
This update improves the organization and usability of the session list in the monitor component.
* fix(monitor): update session display to show recipient instead of agentId
- Changed the displayed identifier in the SessionList component from agentId to recipient for improved clarity in session representation.
* feat(monitor): add node position pinning and reorganize layout functionality
- Introduced functionality to pin node positions upon drag-end, enhancing user experience in the ActionGraph component.
- Added a button to reorganize the layout, clearing pinned positions and reapplying the layout for better visual management.
- Updated the node state handling to incorporate pinned positions during layout updates, ensuring a smoother interaction with the graph.
* fix(monitor): update styling for ExecNode and SessionNode components
- Changed the CSS class for text wrapping in ExecNode to improve readability.
- Modified the border and box shadow logic in SessionNode to enhance visual feedback based on session status, particularly for 'thinking' states.
* feat(monitor): enhance session node representation with thinking state
- Added logic to determine which sessions are in a "thinking" state based on the latest action type in the ActionGraph component.
- Updated SessionNode to accept a new `thinking` property, modifying the visual feedback (border and box shadow) to reflect this state, improving user experience and clarity in session status.
* revert: undo session thinking state and exec/session styling changes
* fix(monitor): update SubagentItem emoji representation
* feat(monitor): implement collapsible subagent groups in SessionList
- Added functionality to collapse and expand subagent groups within the SessionList component.
- Introduced a new state to manage collapsed groups and updated the UI to reflect the expanded/collapsed state with a ChevronDown icon.
- Enhanced user experience by allowing users to easily navigate through subagent sessions.
* style(monitor): update SessionList component styling
- Adjusted padding and alignment for improved layout in the SessionList component.
- Increased ChevronDown icon size for better visibility.
- Enhanced text styling for consistency and readability.
* refactor(monitor): optimize animation handling in SessionList component
- Updated SubagentItem animations to improve performance and visual feedback.
- Replaced AnimatePresence with motion.div for better control over height and opacity transitions during group collapse/expand.
- Simplified initial animation states for a smoother user experience.
- parse ALLOWED_HOSTS into vite server.allowedHosts for LAN/tailscale access
- copy src/, public/, vite.config.ts, tsconfig.json into Docker runtime stage
(dev server needs these, only dist/ was copied before)
- pass ALLOWED_HOSTS through docker-compose
Ref #10
Merging select features from https://github.com/luccast/crabwalk/pull/11
* feat(exec-events): bead-1 - add exec protocol and monitor types
* feat(exec-events): bead-2 - parse exec started output completed
* feat(exec-events): bead-3 - add exec collection and aggregation
* feat(exec-events): bead-4 - persist exec events
* feat(exec-events): bead-5 - hydrate exec events after actions
* feat(exec-events): bead-6 - emit exec events in subscription
* feat(exec-events): bead-7 - wire exec events into monitor route
* feat(exec-events): bead-8 - add exec node component
* feat(exec-events): bead-9 - render exec nodes under sessions
* feat(exec-events): bead-10 - final validation and hydrate exec-only data
* fix(parser): remove incorrect sessionKey assignment
* feat(monitor): link subagents to parent sessions via spawnedBy, add timestamps to session nodes
* feat(monitor): add clear completed execs button
- Add clearCompletedExecs() to remove completed/failed execs
- Add getCompletedExecCount() for UI badge count
- Add clearInactiveSessions() for optional inactive session cleanup
- Add "Clear Completed" button in monitor header with badge count
- Button only shows when there are clearable items
- Add keyboard shortcut: Ctrl+K / Cmd+K to clear
- Add vitest test infrastructure with 8 tests covering:
- Clearing completed execs
- Clearing failed execs
- Preserving running execs
- Counting clearable items
- Clearing inactive sessions by threshold
* feat(monitor): add copy PID button to ExecNode header
- Copy icon positioned left of status indicator
- Click copies PID to clipboard
- Animated feedback: copy → checkmark for 1.5s
- stopPropagation prevents expand/collapse on click
* feat(monitor): add copy session key button to SessionNode header
- Copy icon positioned left of status indicator
- Click copies full session key to clipboard
- Animated feedback: copy → checkmark for 1.5s
- stopPropagation prevents node selection interference
* feat(ui): horizontal spawn layout for action graph
- Redesigned graph layout algorithm for horizontal spawn positioning
- Sessions arranged in columns (X = spawn depth hierarchy)
- Events within a session flow DOWN vertically (Y = time progression)
- Child sessions appear to the RIGHT at the Y-level where spawned
- Added left/right handles on SessionNode for horizontal spawn edges
- Smoothstep edges connect parent → child sessions horizontally
- Collision avoidance for multiple sessions at same depth
- Orphan nodes (without session) get positioned in separate area
- Compact action nodes (180x80) vs larger session/exec nodes
* fix(ui): improve graph spacing and alignment
- Increase COLUMN_GAP from 300 to 400 for wider horizontal separation
- Increase ROW_GAP from 40 to 80 for more vertical breathing room
- Enlarge NODE_DIMENSIONS for better layout calculations
- Add MIN_SESSION_GAP (120px) for collision avoidance
- Implement adjustSpawnY to shift overlapping sessions down
- Sort sessions by column before positioning (parents first)
- Ensure all nodes in same depth share same X coordinate
* chore: remove non-feature files from contributor PR
Remove planning docs, security audit, vitest config, and revert
package.json/lockfile to original state.
* fix(monitor): add periodic update for session node component
- Introduced useEffect to trigger a state update every 30 seconds
- Simplified relative time calculation for better readability
* fix: Removed the Ctrl+K shortcut. The "clear completed" button in the UI still works — no need for a global keyboard shortcut that conflicts with browser/OS defaults.
* chore: update package dependencies and remove unused packages
- Removed "@types/dagre" and "dagre" from package.json and package-lock.json
- Added "peer": true to several dependencies in package-lock.json for better compatibility
* fix(clawdbot): optimize output chunk truncation logic
The new version iterates forward, accumulating dropped chars from the front until the remaining tail fits within budget. This keeps the maximum number of recent chunks possible.
- Refactored the logic for truncating output chunks to improve performance and readability.
- Changed variable declarations for clarity and adjusted the loop to determine the starting index for slicing the capped array.
* refactor(monitor, graph): introduce nodeData utility for type casting
- Added a utility function `nodeData` to cast domain data to ReactFlow's Node data type for improved type safety.
- Updated the ActionGraph and graph layout components to utilize the new `nodeData` function for data handling.
* fix(monitor): handle clipboard copy errors in ExecNode and SessionNode
- Updated clipboard copy functionality in ExecNode and SessionNode to handle potential errors by adding a catch block to the writeText method.
- Ensured that the user experience remains smooth by maintaining the existing feedback mechanism for copy actions.
Client-side workaround for linking subagent sessions to parent sessions
without server support. Tracks recent parent session activity and infers
spawn relationships based on timing (5-second window).
- Add spawnedBy field to SessionInfo and MonitorSession types
- Track parent session activity timestamps
- Infer parent when subagent session first appears
- Preserve spawnedBy once set (immutable)
- Handle inference during hydration
- Changed "Clawdbot" to "Moltbot (Clawdbot)" in CLAUDE.md and README.md for consistency.
- Updated the title in the Home component to reflect the new naming convention.
- Removed internal state management for the SettingsPanel component.
- Added props for open state and onOpenChange callback to manage visibility from the parent component.
- Updated MonitorPage to handle the settings panel state and trigger its visibility.
- Introduced a persistence service to enable data retention across sessions.
- Updated SettingsPanel to manage persistence state and actions.
- Implemented hydration from server persistence in collections.
- Enhanced TRPC router with persistence-related queries and mutations.
- Updated monitor page to handle persistence status and actions.
- Updated the Clawdbot client to accept a WebSocket URL from the environment variable `CLAWDBOT_URL`, defaulting to 'ws://127.0.0.1:18789' if not set. This change enhances flexibility for different deployment environments.
- Adjusted text sizing in the ActionNode component to use smaller font sizes for better readability.
- Replaced the overflow handling for truncated content with a line clamp for a cleaner presentation.
- Ensured consistent styling for Markdown content within the component.
- Changed the font-family for sub-headlines from display to mono for consistency in styling.
- Improved the connection logic in the MonitorPage component to include retry functionality with a maximum retry limit, enhancing user experience during connection attempts.
- Updated the status indicator to reflect connection states more accurately, providing clearer feedback to users during connection attempts.
- Introduced social links for GitHub and personal profile, improving user engagement and contribution opportunities.
- Updated the title from "Clawdbot Companion Monitor" to "Open-Source Clawdbot Companion" for better clarity.
- Removed unused CrabSilhouette component to streamline the code and improve performance.
- Updated the SessionList component to conditionally apply margin and padding based on the collapsed state, enhancing layout responsiveness.
- Simplified button styles by removing unnecessary border properties for a cleaner appearance.
- Adjusted footer styles to ensure consistent spacing and visual appeal when collapsed.
- Added useEffect to preload all crab animation frames on component mount, improving performance during animations.
- Introduced a constant for all crab animation frame paths to streamline the preloading process.
- Simplified styles in the ActionGraph and ActionNode components by removing unnecessary border styles for a cleaner look.
- Updated ActionNode to improve text sizing for better readability and consistency.
- Enhanced SettingsPanel by streamlining button styles and removing redundant border properties, improving overall UI consistency.
- Adjusted layout properties in the SessionList component to enhance responsiveness and visual appeal.
- Added `react-markdown` as a dependency to enable Markdown rendering.
- Updated the `ActionNode` component to display full content using Markdown when expanded, enhancing content presentation.
- Adjusted styles for the Markdown content to ensure readability and visual consistency within the component.
- Modified the SessionList component to adjust layout and improve responsiveness based on the collapsed state.
- Updated footer icon links and hover styles for better visual consistency and interaction.
- Removed unused hover styles for the footer icon, streamlining the CSS.
- Introduced a new lobster icon in place of the animated crab, enhancing visual representation.
- Updated styles for the lobster icon to improve interactivity and appearance.
- Adjusted the Handle component's z-index for better layering in the UI.
- Introduced a new footer icon component with hover effects for improved user interaction.
- Updated SessionList component to include the new footer icon and refined styling for better visual consistency.
- Adjusted SettingsPanel header styles for improved typography and layout.
- Ensured consistent use of quotation marks and formatting across the codebase.
- Updated chaser crab state management to include new states: 'wandering' and 'jumping', enhancing movement dynamics.
- Simplified the animation loop for crab movement, implementing step-based updates for smoother animations.
- Improved target detection logic for the chaser crab, allowing it to chase newly added or moved nodes effectively.
- Enhanced click handling for the chaser crab, enabling jump animations and state transitions based on user interaction.
- Refined the ChaserCrabNode component to accommodate new states and improve click event handling.
- Removed font size and line height from .font-console in styles.css for cleaner typography.
- Updated version number from v3.0 to v1.0.1 in SettingsPanel and Home components for consistency.
- Added .tanstack/tmp/* to .gitignore to prevent tracking of temporary files in the TanStack directory.
- Introduced JetBrains Mono font files (Regular, Medium, SemiBold, Bold) to the project.
- Updated styles.css to include local font-face definitions for JetBrains Mono.
- Replaced 'Space Mono' with 'JetBrains Mono' in the font stack for improved typography consistency.
- Eliminated TanStackRouterDevtools and associated devtoolsPlugins from the RootDocument, streamlining the component.
- Simplified the structure of the RootDocument to enhance performance and maintainability.
- Introduced new action types: 'start', 'streaming', and 'complete' to improve event tracking and state management.
- Updated ActionGraph component to apply edge styling based on action type, enhancing visual representation of action flows.
- Modified ActionNode to display state labels and metadata for completed actions, improving user feedback.
- Refined addAction function to handle new action types and associated metadata, ensuring accurate session tracking.
- Enhanced chatEventToAction and agentEventToAction functions to map new action types and extract relevant metadata.
- Simplified the initialization of the chaser crab node by using a static position and default state on mount.
- Enhanced the animation loop to directly update the chaser crab's position and state, improving performance and clarity.
- Updated the node management to ensure the chaser crab is preserved during layout changes, maintaining its behavior and state.
- Cleaned up dependencies in useEffect hooks for better performance and readability.
- Added state management for chaser crab, including position, target, and behavior states (idle, running, attacking).
- Integrated chaser crab into the ActionGraph layout, allowing it to dynamically chase new nodes.
- Removed the ChaserCrab component, consolidating functionality directly within ActionGraph for improved performance and maintainability.
- Enhanced animation loop for chaser crab movement and attack logic, improving interaction dynamics.
- Introduced ActionGraphInner as a separate component to utilize ReactFlow hooks.
- Added ChaserCrab overlay to display additional node information.
- Wrapped ActionGraph in ReactFlowProvider for improved context management.
- Updated layout and styling for better visual consistency.
- Added 'documents/*' to .gitignore to prevent tracking of all files in the documents directory.
- Ensured 'src/routeTree.gen.ts' is explicitly listed for tracking, maintaining clarity in ignored files.
- Implemented log collection functionality in the SettingsPanel, allowing users to start/stop recording events and view the count of collected logs.
- Enhanced the TRPC router with procedures for managing log collection state, downloading collected logs, and clearing logs.
- Updated MonitorPage to handle log collection state and integrate new log management features, improving event tracking and user experience.
- Added support for lifecycle events in the agentEventToAction function, distinguishing between 'start' and 'end' phases.
- Updated sessionKey handling to prioritize the event's sessionKey over the stream.
- Implemented filtering to skip system events and assistant streams in parseEventFrame, focusing on lifecycle events for session management.
- Introduced session status updates based on event phases, improving session tracking.
- Deleted the Header component to simplify the application structure.
- Adjusted layout in the RootDocument and Home components to utilize full-screen height, enhancing the visual experience.
- Ensured consistent styling across components by updating height calculations.
- Introduced a debug mode toggle in the SettingsPanel, allowing users to enable or disable debug logging.
- Updated the TRPC router to manage server-side debug mode state, including procedures to set and get the debug mode status.
- Enhanced event logging to output raw events and parsed actions when debug mode is enabled, improving troubleshooting capabilities.
- Added support for a collapsible sidebar in the SessionList component, allowing users to toggle the sidebar's visibility.
- Integrated responsive behavior to automatically collapse the sidebar on mobile devices.
- Updated the layout and styling to accommodate the new collapsed state, ensuring a seamless user experience.
- Refactored the component to include new props for managing the collapsed state and toggle functionality.