Skip to content

fix: remove tmux-claude-teams plugin - #1330

Merged
shunkakinoki merged 3 commits into
mainfrom
fix/cass-macos-sources-path
Apr 2, 2026
Merged

fix: remove tmux-claude-teams plugin#1330
shunkakinoki merged 3 commits into
mainfrom
fix/cass-macos-sources-path

Conversation

@shunkakinoki

@shunkakinoki shunkakinoki commented Apr 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Remove run-shell for tmux-claude-teams from tmux.conf
  • Remove claude-teams hooks from settings.json (added and removed in same branch)

Claude Code has native tmux teammate support via CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 + teammateMode: tmux in settings. No plugin needed.


Summary by cubic

Remove tmux-claude-teams hooks and harden the cass daily index job by forcing full rebuilds and adding a semantic index build.

  • Bug Fixes
    • Removed tmux-claude-teams run-shell from tmux and related hooks from settings; use Claude Code native teammate mode (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1, teammateMode: tmux).
    • Updated cass index script: run --full --force-rebuild to pick up new session files, then build the semantic vector index with fastembed and tolerate OOM (|| true).

Written for commit 2805de3. Summary will update on new commits.

Copilot AI review requested due to automatic review settings April 2, 2026 05:53
@mesa-dot-dev

mesa-dot-dev Bot commented Apr 2, 2026

Copy link
Copy Markdown

You do not have enough credits to review this pull request. Please purchase more credits to continue.

@coderabbitai

coderabbitai Bot commented Apr 2, 2026

Copy link
Copy Markdown

Caution

Review failed

Failed to post review comments

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added semantic daemon service that runs continuously.
    • Added daily indexer job that synchronizes sources, rebuilds indexes, performs semantic indexing, and regenerates analytics.
  • Configuration

    • Updated SSH source synchronization from automatic daily schedule to manual control.

Walkthrough

This PR introduces a new cass semantic daemon service for Home Manager with platform-specific configurations (macOS launchd and Linux systemd), adds a daily indexing script with sequential cass operations, updates the kyber SSH source configuration to manual synchronization with explicit paths, modifies token refresh timestamp handling in the cliproxyapi keychain sync script, and includes comprehensive test coverage for the new indexer script.

Changes

Cohort / File(s) Summary
Cass Service Module
home-manager/services/cass/default.nix, home-manager/services/cass/index.sh
New service module implementing cass daemon and indexer with platform-specific configurations: macOS launchd agents for daemon (KeepAlive) and daily indexer (04:00 schedule), Linux systemd service/timer units with restart policies and daily calendar intervals.
Cass Source Configuration
home-manager/programs/cass/sources.toml
Updated kyber SSH source with explicit paths list covering multiple storage locations, added empty path_mappings, and changed synchronization from daily to manual scheduling.
Cliproxyapi Token Management
home-manager/services/cliproxyapi/scripts/keychain-sync.sh
Enhanced sync\_claude to update destination token file's last_refresh timestamp using jq when access\_token is unchanged, previously left file untouched.
Service Integration
home-manager/services/default.nix
Added import and inclusion of new cass service module in the services list.
Test Coverage
spec/cass_indexer_spec.sh, spec/coverage_spec.sh
Added shell specification tests validating cass/index.sh header, command execution (sources sync, index rebuild, analytics rebuild), and binary existence guard; extended coverage assertions to include new script.

Sequence Diagram

sequenceDiagram
    participant Timer as Daily Timer<br/>(04:00)
    participant Launcher as launchd/systemd<br/>Scheduler
    participant Indexer as index.sh
    participant Cass as cass CLI
    
    Timer->>Launcher: Trigger scheduled event
    Launcher->>Indexer: Execute index.sh
    
    Indexer->>Indexer: Validate cass binary<br/>at ~/.local/bin/cass
    
    Indexer->>Cass: cass sources sync
    Cass-->>Indexer: (tolerates failures)
    
    Indexer->>Cass: cass index --full<br/>--force-rebuild
    Cass-->>Indexer: Rebuild complete
    
    Indexer->>Cass: cass index --semantic<br/>--embedder fastembed
    Cass-->>Indexer: (tolerates failures)
    
    Indexer->>Cass: cass analytics rebuild
    Cass-->>Indexer: Rollup tables regenerated
    
    Indexer-->>Launcher: Complete with logs
Loading

Estimated Code Review Effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly Related PRs

Poem

🐰 A daemon awakens with semantic might,
Indexing sources through morning light,
Token timestamps refresh on the clock,
While cass rebuilds analytics like a rock!
Hop hop, new tests make coverage complete. ✨

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning PR title claims to remove tmux-claude-teams plugin, but the raw_summary shows changes primarily to cass configuration, services, and an indexer script with no mention of tmux modifications. Update the PR title to accurately reflect the primary changes: cass configuration updates and service setup, or clarify if the tmux removal is the intended main focus.
Description check ⚠️ Warning PR description focuses on removing tmux-claude-teams plugin, but the raw_summary indicates changes are primarily to cass services, sources, and indexer scripts with no tmux-related modifications shown. Update the description to match the actual changeset (cass configuration and services) or provide the omitted tmux changes in the raw_summary.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/cass-macos-sources-path
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch fix/cass-macos-sources-path

Warning

Review ran into problems

🔥 Problems

Timed out fetching pipeline failures after 30000ms


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mesa-dot-dev

mesa-dot-dev Bot commented Apr 2, 2026

Copy link
Copy Markdown

Mesa Description

TL;DR

Introduced cross-platform cass daemon and daily indexer services, updated cass source configurations, and optimized cliproxyapi token syncing to prevent redundant refreshes.

What changed?

  • home-manager/programs/cass/sources.toml: Updated the kyber source configuration, adding new paths for AI development and editor configurations, changing its sync_schedule to manual, and introducing an empty path_mappings array.
  • home-manager/services/cass/default.nix: New file introducing Home Manager configurations for cass services, including a cass-daemon for a persistent background ML embedding model and a cass-indexer for a daily index and analytics rebuild at 4 AM, supporting both macOS (launchd) and Linux (systemd).
  • home-manager/services/cass/index.sh: New shell script automating cass maintenance tasks: synchronizing remote sources, performing a forced full reindex, building a semantic vector index using fastembed, and rebuilding analytics rollup tables.
  • home-manager/services/cliproxyapi/scripts/keychain-sync.sh: Modified the sync_claude function to only update the last_refresh timestamp in the token file if the access token hasn't changed but the file exists, preventing cliproxyapi from unnecessarily re-fetching an unchanged token.
  • home-manager/services/default.nix: Updated to integrate the new cass service by importing its configuration and adding it to the list of available services.
  • spec/cass_indexer_spec.sh: New shellspec tests to validate the home-manager/services/cass/index.sh script, ensuring proper execution of cass commands and the binary's existence.
  • spec/coverage_spec.sh: Updated to extend coverage checks to the new home-manager/services/cass/index.sh service script.

Description generated by Mesa. Update settings

- Use --force-rebuild to work around upstream bug where --full skips
  new session files (github.com/Dicklesworthstone/coding_agent_session_search/issues/153)
- Add semantic vector index build with fastembed embedder
- Tolerate OOM on semantic index (low-memory machines)
@shunkakinoki
shunkakinoki force-pushed the fix/cass-macos-sources-path branch from 4b565dc to 2805de3 Compare April 2, 2026 05:55

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No issues found across 7 files

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces a new cass background service (daemon + scheduled indexer) and adds ShellSpec coverage for the new indexer script, while also adjusting cliproxyapi’s Claude keychain sync behavior to update last_refresh even when the access token is unchanged.

Changes:

  • Add a cass Home Manager service module (launchd + systemd units) plus an index.sh script to run sync/index/analytics tasks on a schedule.
  • Extend ShellSpec coverage enforcement and add a new spec for the cass indexer script.
  • Update keychain-sync.sh to bump last_refresh when the token is unchanged; expand cass source paths in sources.toml.

Reviewed changes

Copilot reviewed 1 out of 1 changed files in this pull request and generated no comments.

Show a summary per file
File Description
spec/coverage_spec.sh Enforces presence of a spec for the new cass indexer script; adds cass index script to the “covered scripts” list.
spec/cass_indexer_spec.sh New ShellSpec tests asserting key properties/commands exist in cass/index.sh.
home-manager/services/default.nix Registers the new cass service module in the services list.
home-manager/services/cliproxyapi/scripts/keychain-sync.sh Bumps Claude last_refresh even when the access token hasn’t changed.
home-manager/services/cass/index.sh New bash script to run cass source sync, full index, semantic index (best-effort), and analytics rebuild.
home-manager/services/cass/default.nix New launchd + systemd user units for a cass daemon and daily indexer timer.
home-manager/programs/cass/sources.toml Adds multiple paths to index from a remote SSH source; switches sync schedule to manual.
Comments suppressed due to low confidence (1)

home-manager/services/cass/index.sh:8

  • The “cass binary not found” message is currently printed to stdout. Since this is an error path, it should go to stderr (and ideally include a brief hint on how to install/enable cass) so service logs and callers can distinguish failures from normal output.
if [ ! -x "$CASS" ]; then
  echo "cass binary not found at $CASS"
  exit 1

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces the 'cass' service, including its configuration, a shell script for indexing, and associated systemd/launchd service definitions. It also updates the 'keychain-sync.sh' script to prevent unnecessary token refreshes by updating the 'last_refresh' timestamp when tokens remain unchanged. Feedback was provided regarding the use of hardcoded '/tmp' paths for logging in the 'cass' service, which may cause permission issues or log loss, and a suggestion was made to apply the 'last_refresh' update logic consistently to the 'sync_codex' function.

I am having trouble creating individual review comments. Click here to see my feedback.

home-manager/services/cass/default.nix (18-19)

medium

Using /tmp for log files in a persistent service is problematic because logs are lost on reboot, making it difficult to debug issues that occur across restarts. Additionally, in a multi-user environment, hardcoded paths in /tmp can lead to permission conflicts if multiple users attempt to run the same service. Consider removing these lines to let launchd handle logging via the system log, or use a user-specific directory if you have access to the home directory variable.

home-manager/services/cass/default.nix (37-38)

medium

Similar to the daemon configuration, using /tmp for the indexer logs is not ideal for persistence or multi-user safety. It is recommended to either omit these to use system logging or use a more appropriate, user-specific log location.

home-manager/services/cliproxyapi/scripts/keychain-sync.sh (90-96)

medium

The addition of this elif block to update last_refresh when the token is unchanged is a good fix to prevent cliproxyapi from triggering its own refresh. However, for consistency, this same logic should be applied to the sync_codex function (which starts at line 100), as it likely suffers from the same issue where cliproxyapi might rotate tokens that are still valid in the local configuration.

@shunkakinoki
shunkakinoki merged commit 718d6bb into main Apr 2, 2026
34 checks passed
@shunkakinoki
shunkakinoki deleted the fix/cass-macos-sources-path branch April 2, 2026 07:18
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.

2 participants