🚀 release: fix install bug and enhance checksum verification - #75
Conversation
Add a new method `ensureDaemonRunning` to the Brain module that checks the IPC socket's status and starts the daemon in the background if it is not running. This enhances the module's functionality by ensuring the necessary services are properly managed and operational.
Refactor the main command in `main.go` to simplify the initialization sequence and improve background daemon handling for IPC. Update imports in `brain.go` for better clarity and add a method to ensure the daemon is running automatically. This enhances the application's structure and reliability.
Create a new document outlining the strategy for the VibeAuracle project, including core narrative and technical roadmap for the upcoming hackathon. This document serves as a guide for the development and goals of the project.
Enhance 'install.sh' and 'install.ps1' to respect existing 'build_from_source' configurations and detect if running from within a source tree. The scripts now prioritize building via Go (or delegating to 'vibeaura update') when appropriate, avoiding unnecessary GitHub release downloads and ensuring consistency with developer environments.
… bin' Refactor source build logic in 'install.sh' and 'install.ps1' to avoid direct 'go install' to system/Go paths. All builds now produce a local binary that is explicitly moved to the project's preferred installation directory (~/.local/bin for Unix, ~/.vibeaura/bin for Windows).
Update 'install.sh' and 'install.ps1' to use regex-based detection for 'build_from_source' and 'beta' settings in the config file. This ensures that developer preferences are correctly identified regardless of YAML formatting, preventing accidental fallback to binary releases.
This commit updates the Go version in multiple module files from 1.25 and 1.24 to 1.21 across the project to ensure compatibility and leverage improvements in Go 1.21. The changes affect the go.mod files in various internal packages and the main command.
Refactor the healer registration logic to improve readability by aligning the lambda function structure. Additionally, change the return types of Config and GetSnapshot methods to be more generic, allowing for greater flexibility in handling configuration and snapshot data.
Eliminate the ensureDaemonRunning method in the Brain struct to simplify the codebase. This method was responsible for checking and starting the IPC daemon, which is no longer needed. Reducing code complexity enhances maintainability and clarity.
Replace `daemon.New` with `daemon.NewServer` in daemon.go. Add ensureDaemonRunning function call in main.go to guarantee daemon is operational before starting core functionality. Remove unused daemon import in brain.go to clean up dependencies.
Removed unused imports in brain.go and improved variable naming in self_healing.go for clarity. This enhances code readability and maintainability.
Updated comments in the initialModel function to clarify the purpose of the non-blocking engine and its components. This improves code readability and maintainability.
- Lowered required Go version to 1.21 across all 'go.mod' files and 'go.work'. - Resolved circular dependency between 'brain' and 'daemon' by introducing a 'Processor' interface. - Moved daemon auto-start logic from 'Brain' to 'main' command. - Fixed numerous type-assertion issues resulting from interface changes. - Cleaned up unused imports and improved code structure for broader compatibility.
Add support for the `/update` command in chat.go to allow users to check for the latest release. This addition enhances the command options available and improves user experience by facilitating easier updates. Also, introduce a new executable file, hello-world, to demonstrate basic functionality or serve as a placeholder.
- Separated /exit and /update command cases in chat.go to fix unreachable code. - Added type assertion in brain_test.go to support the updated Processor interface. - Verified workspace-wide build, vet, and test status.
Add core git-rewrite components, including backup refs, commit references, and necessary map files. This enhancement improves version control workflow and backtracking capabilities by allowing the backup of refs and the structured mapping of commits.
Deleted various unnecessary files in the .git-rewrite directory, including backup references, commit metadata, and mapping files. This cleanup helps reduce clutter and improve repository organization.
- Introduced 'initClipboard' and 'writeToClipboard' abstractions. - Used build tags (!android) to isolate the 'golang.design/x/clipboard' dependency, which pulls in heavy OpenGL requirements on Android/Termux. - Added a no-op implementation for Android to ensure smooth compilation on mobile environments without requiring system-level GLES headers. - Verified local build remains functional.
Reorganize struct fields in the chat model for improved readability. This change enhances the clarity of the code by grouping related fields together, making future modifications easier to manage.
- Refactor chat.go to add support for encoding states, including current and total encoding progress, and handle recording errors. - Modify main.go to improve initialization logic for the user interface and maintain a reference to the UI program. - Introduce shot.go utility function to check for required dependencies for video encoding and SVG to PNG conversion tools.
Refactor the chat functionality in `cmd/vibeaura/chat.go` by modifying the structure of the `processRecording` method to include a program parameter. This change enhances flexibility in managing program states during recording processes. Additionally, some import statements have been reformatted for clarity.
Updated the toggleRecording function to pass the output directory for screenshots when processing recordings. This change improves the handling of background message sending and configuration.
Refactor the Update method in chat.go to streamline handling of message types and component updates. This improves code readability and maintainability.
Refactor the Go module and workspace files to use Go version 1.25.0. Additionally, remove unused dependencies in `go.mod` and `go.sum` for a cleaner state. Enhance code readability by adjusting comments in `chat.go` and `main.go`.
Modified Go version to 1.21 in go.mod and go.work files. Refactored import statements in main.go and chat.go for better organization and readability.
Introduce clipboard management and inter-process communication capabilities to the application. - Implement `initClipboard` and `writeToClipboard` functions in `clipboard.go` to support clipboard operations on various platforms, including Termux. - Add an IPC mechanism in `ipc.go` with a Processor interface to manage daemon processes. - Update `.gitignore` to correctly ignore relevant directories and files. - Create a test file `vibeaura_test` to facilitate future testing.
Refactor the daemon command in vibeaura to manage daemon processes effectively. Introduced a function to ensure the daemon is running and clean up any stale sockets. Removed the IPC-related code from ipc.go to streamline the structure. Updated .gitignore to exclude new test files.
Bump the Go version in go.mod and go.work to 1.25.0. Update indirect dependencies in go.mod and go.sum to their latest compatible versions.
… update_discovery.go Removed the unused `strings` import in `update.go` for cleaner code. Improved the `ensureGoBinInPath` function in `update_discovery.go` for better readability and organization.
- Introduced new commands `/connect` and `/share` in chat functionality to enhance user interaction. - Updated command lists and handling logic to accommodate the new features. - Integrated a connector in the brain module for improved connectivity features.
- Enhance chat_handlers to support new P2P connection commands with error handling for connector startup. - Add StartConnector and GetConnectorAddress methods in the Brain struct to manage connection initialization and retrieval. - Introduce a ShareManager in the Connect module to handle shared sessions lifecycle. - Create a new SharedSession struct for better session representation.
Refactor the share command handler to use a constant for the default base URI instead of a hardcoded string. This improves maintainability and clarity by defining the default URI in one place, making future updates easier.
Introduce new parameters for session sharing functionality, allowing for fine-grained control over shared sessions in the connector module. The `ShareSession` method now accepts permissions, target user, and allowed clients, enhancing security and usability. Update related methods to accommodate these changes across the brain and connect packages.
Enhance the /connect command in chat_handlers.go by adding the /clients subcommand to provide users with a list of connected clients, improving the functionality of the remote access feature.
Introduce Anyisland handshake logic to check if the current process is managed by the Anyisland daemon. This includes a request and response structure for communication with the daemon over a Unix socket.
Add support for Anyisland management to the chat model, enhancing the application's ability to handle managed instances. Include conditional logic to check the management status and update the UI header accordingly. This improves user feedback for managed environments.
Updated the test cases to use `t.Skip` and `t.Skipf` instead of `t.Fatal` for scenarios where the CLI is not found. This allows tests to gracefully skip rather than failing outright, providing better test output clarity. Additionally, imported the `errors` package in `update_source.go` and changed the error handling to return an `errors.New` instead of `fmt.Errorf`.
- Introduced test files for the connect, context, model, and vibes packages. - Implemented basic test cases to validate core functionalities and ensure robustness. - This enhances test coverage and aids in maintaining code quality.
Introduce comprehensive unit tests for the brain and tooling packages. The new tests in `internal/brain/agent_test.go` validate the functionality of the Brain component, including its configuration management. The tests in `internal/tooling/registry_test.go` evaluate the Registry's ability to manage and retrieve tools. These additions enhance test coverage and ensure reliability in both areas.
Introduce a new test suite for the IPC server in ipc_test.go. This file includes a mock processor and various test cases to ensure the proper functionality and reliability of the IPC server implementation.
- Added tests for audit logging and its entry validation. - Introduced tests for daemon IPC functionality, ensuring correct data handling. - Added health checks and log monitoring tests for the doctor package. - Implemented tests for the MCP bridge functionality and tool execution. - Created submission tests for the reactor to verify proper task handling. - Added fallback mechanism tests for the vault, including secret file creation. - Implemented watcher tests for event subscription and debounce functionality.
Add the '/auracle' command to the chat command list and update the help message in chat_handlers.go. This enhancement improves the user interface by providing more command options for interacting with the chat system.
Introduce a comprehensive AURACLE mode that enhances the autonomous functionality of the system. The new mode integrates a dual-persona approach, featuring the Architect and the Shadow Auditor, to facilitate creative development and critical analysis. Key changes include: - Enhanced completion checks in chat.go to ensure the model reaches a defined perfection state before exiting AURACLE mode. - Addition of a detailed operational directives prompt in auracle.go that outlines the responsibilities and interactions of the personas. - Refactoring of system prompts in system.go to utilize the new AURACLE_SYSTEM_PROMPT, simplifying the mode description and operation guidelines.
- Add instructions for build isolation and preventing binary commits - Update Go version requirement to 1.25+ for workspaces
Improve error handling when initializing the config manager across multiple files. This change prevents crashes by ensuring that the application can gracefully handle failures when loading configuration settings.
Ensure error handling when creating a new ConfigManager in async_update.go, update_binary.go, and update_discovery.go. This change prevents potential nil pointer dereferences by checking for errors and returning early as necessary.
Refactor config management in async update and rollback functionalities to enhance error handling. Ensure that appropriate error checks are in place for loading configurations and initializing the config manager. This change improves the robustness of the application when encountering configuration issues.
- Set QUIC_GO_LOG_LEVEL to "error" to reduce noisy logs - Update error handling in updateFromSource function to properly return config load errors
Add a README.md to describe the project's purpose and current state. Create main.go with a basic structure for the Vibe-Check tool, including a placeholder function for vibe scoring.
Clean up the project by deleting unused files including README.md and main.go. These files are no longer relevant to the project direction and removing them helps reduce clutter.
Updated the regular expression for OSC sequences in shot_utils.go to properly handle escape sequences. This change ensures that the parsing of ANSI strings is more accurate, particularly in dealing with edge cases involving backslashes.
Update the release workflow to simplify checksum generation by using a subshell. Add additional validation in install.sh to check for invalid checksum files and improve error messaging for missing checksums, ensuring a smoother installation process.
|
Hello from @codemakerai. CodeMaker AI GitHub App integration. Usage: @codemakerai [command or prompt] AssistantAll Assistant features are supported in GitHub. Assistant can answer general questions as well as questions directly @codemakerai assistant prompt - the assistant prompt CommandsPull Request Commands - commands that can be posted as comments on the pull request: @codemakerai help - prints this help message Pull Request Code Review Commands - commands that can be posted as comments on the code review i.e. "Files changed" tab: @codemakerai assistant prompt - the assistant prompt TriggersTo automatically trigger certain actions on pull requests you can create and use the following GitHub labels. codemakerai-pull-request-generate-documentation - automatically generates comments/documentation on Pull Request creation. For in depth explanation of the features, please consult https://docs.codemaker.ai In case of any issues please report them to https://community.codemaker.ai |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
This is the final PR Bugbot will review for you during this billing cycle
Your free Bugbot reviews will reset on March 27
Details
You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| } | ||
| data, _ := json.Marshal(state) | ||
| sessionID := m.brain.GetSessionID() | ||
| _ = m.brain.StoreState(sessionID, data) |
There was a problem hiding this comment.
Double JSON encoding corrupts session state persistence
High Severity
The saveState function now pre-marshals chatState to JSON bytes before passing to StoreState. However, StoreState internally calls SaveState in context_memory.go, which also calls json.Marshal() on its argument. This causes double-encoding: the []byte gets marshaled as a base64 string. When RecallState later tries to unmarshal this into a *chatState, it will fail because the stored data is now a base64-encoded string, not the expected JSON object. This breaks all session state restoration.


This PR fixes the checksum mismatch bug in the installer and improves the release workflow's checksum generation. It also syncs dependencies across the workspace.
Note
Medium Risk
Large refactor of the TUI event loop plus changes to update/recording paths could introduce regressions in interactive behavior and background updating, but changes are localized to CLI tooling and workflows.
Overview
Release & distribution: The release workflow now generates
checksums.txt(sha256 overvibeaura-*andmetadata.json), and the docs workflow switches to the official GitHub Pages build/upload/deploy split with required token permissions.CLI/TUI behavior: The chat/TUI code is heavily refactored by splitting
chat.gointochat_types.go,chat_handlers.go,chat_logic.go, andchat_ui.go, while adding anAuracleautonomous loop toggle (Ctrl+Y//auracle), richer UI styling, adaptive textarea height, and more efficient recording/encoding with progress feedback and hardware-aware ffmpeg encoder selection.Update/daemon & hygiene: Async updates now use centralized
CheckForUpdate/PerformUpdate, add audit logging for background update success/failure, skip background updates when “managed” (Anyisland), and daemon startup is updated to usedaemon.NewServerwith anensureDaemonRunninghelper..gitignoreis tightened for local build/test binaries, and new agent context/skill docs are added underAGENTS.mdand.agent/skills/*.Written by Cursor Bugbot for commit 2fa9d1b. This will update automatically on new commits. Configure here.