Skip to content

Commit 4ec3680

Browse files
committed
fix: Critical hotfix for v0.3.3 - Fix missing TUI module in PyPI package
- Added .tcss file to package data in pyproject.toml - Updated MANIFEST.in to include TUI resources - Bumped version to 0.3.3 - Updated README and CHANGELOG with accurate version info This fixes the ModuleNotFoundError: No module named 'eyelet.tui' error that users were experiencing with v0.3.2 from PyPI.
1 parent ec28425 commit 4ec3680

18 files changed

+5122
-5
lines changed

.crush/crush.db-shm

32 KB
Binary file not shown.

.crush/crush.db-wal

3.98 MB
Binary file not shown.

.crush/init

Whitespace-only changes.

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.3.3] - 2025-01-30
11+
12+
### Fixed
13+
- **CRITICAL**: Fixed missing TUI module in PyPI package
14+
- Added .tcss file to package data to ensure TUI styles are included
15+
- Updated MANIFEST.in to include TUI resources
16+
1017
## [0.3.2] - 2025-01-30
1118

19+
### Added
20+
- **Recall Feature**: New `eyelet recall` command to search Claude Code conversation history
21+
- Full-text search across all conversations
22+
- Filter by date range, tool usage, or conversation ID
23+
- CLI and TUI modes available
24+
- **TUI Framework** (Experimental): Complete Textual-based Terminal User Interface
25+
- Multiple screens: Configure, Templates, Logs, Settings, Help
26+
- Theme support (Mocha/Latte)
27+
- Note: TUI has known issues with exit functionality
28+
- **Testing Improvements**:
29+
- Added pytest-asyncio for async test support
30+
- Added pytest-textual-snapshot for TUI testing
31+
- Fixed test suite compatibility with new schema format
32+
1233
### Changed
1334
- Complete rebrand from naval terminology to eyelet/hook terminology
1435
- Updated all CLI command descriptions to remove naval references
1536
- Cleaned up documentation to use consistent eyelet theming
1637
- Simplified command help text for better user experience
1738

39+
### Fixed
40+
- Test suite now compatible with new nested hooks schema format
41+
- Added missing test dependencies
42+
43+
### Known Issues
44+
- TUI exit functionality needs fixing (Ctrl+C doesn't work properly)
45+
- Recall screen not accessible from main TUI menu
46+
1847
### Removed
1948
- All naval-themed command descriptions ("Run out the guns!", "Check the ship's log", etc.)
2049
- Legacy rigging references in documentation and code

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ include LICENSE
33
include pyproject.toml
44
recursive-include schemas *.json
55
recursive-include docs *.md
6+
recursive-include src/eyelet/tui *.tcss
67
global-exclude __pycache__
78
global-exclude *.py[co]

README.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,19 @@
99
[![CI](https://github.com/bdmorin/eyelet/actions/workflows/ci.yml/badge.svg)](https://github.com/bdmorin/eyelet/actions/workflows/ci.yml)
1010
[![Status](https://img.shields.io/badge/status-alpha-yellow)](https://github.com/bdmorin/eyelet)
1111

12-
## 🎉 New in v0.3.0: SQLite Logging!
12+
## 🎉 New in v0.3.3: Recall Feature & TUI Framework!
1313

14-
**Eyelet now supports SQLite database logging!** Choose between JSON files, SQLite database, or both:
14+
### v0.3.3 Updates (Hotfix)
15+
- Fixed missing TUI module in PyPI package
16+
- Added .tcss file to package data
17+
18+
### v0.3.2 Updates
19+
- **Recall Feature**: Search Claude Code conversation history with `eyelet recall`
20+
- **TUI Framework**: Complete Textual-based UI (experimental)
21+
- **Test Improvements**: Better test coverage and pytest-asyncio support
22+
23+
### v0.3.0 Features
24+
**SQLite database logging support!** Choose between JSON files, SQLite database, or both:
1525

1626
```bash
1727
# Enable SQLite logging
@@ -113,6 +123,7 @@ uvx eyelet configure logging # Manage logging settings (JSON/SQLite) ✅
113123
uvx eyelet execute # Run as hook endpoint ✅
114124
uvx eyelet logs # View JSON execution logs ✅
115125
uvx eyelet doctor # Health check and diagnostics ✅
126+
uvx eyelet recall # Search Claude Code conversations (NEW!) ✅
116127

117128
# Query & Analytics (SQLite)
118129
uvx eyelet query search # Full-text search with filters ✅

WAKATIME-INTEGRATION.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# WakaTime/ActivityWatch Integration for Eyelet
2+
3+
## Overview
4+
5+
This document describes how Eyelet integrates with the WakaTime/ActivityWatch metrics stack located at `~/src/wakatime/`.
6+
7+
## What is the WakaTime Stack?
8+
9+
A comprehensive, self-hosted metrics tracking system that includes:
10+
- **ActivityWatch**: Tracks all computer activity (apps, browser, terminal)
11+
- **Wakapi**: Self-hosted WakaTime server for code metrics
12+
- **Custom Trackers**: Terminal commands, Claude Code usage
13+
14+
## Why Integrate?
15+
16+
Eyelet captures hook events from Claude Code, providing:
17+
- Precise timestamps of interactions
18+
- Git context (project, branch, files)
19+
- Session boundaries
20+
- Prompt metadata
21+
22+
This data can enhance metrics tracking by:
23+
- Eliminating polling-based tracking
24+
- Providing accurate project attribution
25+
- Enabling prompt-to-productivity analytics
26+
27+
## Hook Examples
28+
29+
### Send Wakapi Heartbeat
30+
31+
```bash
32+
#!/bin/bash
33+
# ~/.config/claude-hooks/user-prompt-submit-hook.d/50-wakatime-heartbeat.sh
34+
35+
# Use Eyelet context for accurate project info
36+
PROJECT=$(eyelet context get project)
37+
BRANCH=$(eyelet context get git.branch)
38+
39+
# Send to Wakapi (see ~/src/wakatime/hooks/ for full implementation)
40+
```
41+
42+
### Track in ActivityWatch
43+
44+
```python
45+
#!/usr/bin/env python3
46+
# ~/.config/claude-hooks/user-prompt-submit-hook.d/51-activitywatch-event.py
47+
48+
# Get rich context from Eyelet
49+
context = eyelet.get_context()
50+
51+
# Send structured event to ActivityWatch
52+
# (see ~/src/wakatime/hooks/ for full implementation)
53+
```
54+
55+
## Installation
56+
57+
The WakaTime stack provides hooks that Eyelet can install:
58+
59+
```bash
60+
# Install Eyelet hooks first
61+
uvx eyelet configure install-all
62+
63+
# Then add WakaTime integration hooks
64+
cd ~/src/wakatime
65+
./install-eyelet-hooks.sh # Coming soon
66+
```
67+
68+
## Data Flow
69+
70+
```
71+
Claude Code → Eyelet Hooks → WakaTime/ActivityWatch
72+
73+
SQLite Database
74+
75+
Analytics & Reports
76+
```
77+
78+
## See Also
79+
80+
- Full integration docs: `~/src/wakatime/EYELET-INTEGRATION.md`
81+
- WakaTime stack README: `~/src/wakatime/README.md`
82+
- Hook implementations: `~/src/wakatime/hooks/`

0 commit comments

Comments
 (0)