Skip to content

🚀 release: fix install bug and enhance checksum verification - #75

Merged
nathfavour merged 150 commits into
releasefrom
master
Feb 7, 2026
Merged

🚀 release: fix install bug and enhance checksum verification#75
nathfavour merged 150 commits into
releasefrom
master

Conversation

@nathfavour

@nathfavour nathfavour commented Feb 7, 2026

Copy link
Copy Markdown
Owner

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 over vibeaura-* and metadata.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.go into chat_types.go, chat_handlers.go, chat_logic.go, and chat_ui.go, while adding an Auracle autonomous 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 use daemon.NewServer with an ensureDaemonRunning helper. .gitignore is tightened for local build/test binaries, and new agent context/skill docs are added under AGENTS.md and .agent/skills/*.

Written by Cursor Bugbot for commit 2fa9d1b. This will update automatically on new commits. Configure here.

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.
@codemaker-ai-app

Copy link
Copy Markdown

Hello from @codemakerai.

CodeMaker AI GitHub App integration.

Usage:

@codemakerai [command or prompt]

Assistant

All Assistant features are supported in GitHub. Assistant can answer general questions as well as questions directly
related to code. It also has code editing capabilities.

@codemakerai assistant prompt - the assistant prompt
@codemakerai prompt - the assistant prompt. Alias to assistant command.

Commands

Pull Request Commands - commands that can be posted as comments on the pull request:

@codemakerai help - prints this help message
@codemakerai review process - process the most recent code review and all it's comments
@codemakerai generate code [codepath] - generate code for all files in pull request, or only for matching code path.
@codemakerai generate docs [codepath] - generate documentation for all files in pull request, or only for matching code path.
@codemakerai replace code [codepath] - replace code for all files in pull request, or only for matching code path.
@codemakerai replace docs [codepath] - replace documentation for all files in pull request, or only for matching code path.
@codemakerai fix syntax - fixes the syntax in all files
@codemakerai commit undo - removes the most recent commit

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
@codemakerai explain - explains the code
@codemakerai review - reviews the code

Triggers

To 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.
codemakerai-pull-request-syntax-autocorrection - automatically corrects syntax on Pull Request creation.
codemakerai-pull-request-review-process - automatically processes code review comments on Pull Request Review submission.

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

@nathfavour
nathfavour merged commit 835b40e into release Feb 7, 2026
2 checks passed

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant