Skip to content

Commit 6d323d9

Browse files
8bit-wraithclaude
andcommitted
🚀 Release v5.0.0 - The Emotional Intelligence Update! 🎭
MAJOR FEATURES: ✨ Emotional Formatter - Files have feelings now! - 17 personality traits (Dramatic to Romantic) - Emotion detection based on age, size, and type - Project mood assessments - Messages from Trisha in Accounting 🧠 MEM|8 Integration (973x faster memory) - Wave-based conversation persistence - Claude Desktop conversation import - Emotional context preservation 🤝 Session-Aware Compression - Intelligent negotiation for optimal AI context - 5 compression modes - Auto-adjusts based on project size 🤖 Intelligent MCP Assistant - Pattern learning & recommendations - Context-aware tool suggestions - The best helper of all time! 📦 Claude Integration - st --setup-claude auto-configures projects - Git context awareness - Token-optimized CLAUDE.md PERFORMANCE: - 69% reduction in documentation tokens - 80-100x quantum compression - Constant memory for 100k+ file directories Run with: st --mode emotional Let your files express themselves! 🎉 🤖 Generated with Claude Code Co-Authored-By: Claude <[email protected]>
1 parent f2e2a7d commit 6d323d9

File tree

9 files changed

+85
-15
lines changed

9 files changed

+85
-15
lines changed

CHANGELOG.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,52 @@ All notable changes to Smart Tree will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [5.0.0] - 2025-09-10
9+
10+
### 🎭 Major New Features
11+
- **Emotional Formatter**: Files now have feelings! Every file expresses emotions based on:
12+
- Age (newborn 🎉, fresh ✨, ancient 👴, sleepy 😴)
13+
- Size (tiny mouse 🐁, heavyweight 🏋️, ghost 👻)
14+
- Type (tests worry 🧪, configs get grumpy 😤, README tells tales 📚)
15+
- 17 personality traits from Dramatic to Romantic
16+
- Dynamic mood assessments for your entire project
17+
- Messages from Trisha in Accounting to keep morale high!
18+
19+
### Added
20+
- **MEM|8 Integration**: Wave-based memory system (973x faster than traditional stores)
21+
- Conversation memory persistence in ~/.mem8/
22+
- Import Claude Desktop conversations from backup
23+
- Wave pattern conversion for emotional context
24+
- **Session-Aware Compression**: Intelligent MCP session negotiation
25+
- Auto-adjusts compression based on context size
26+
- Environment variables: ST_COMPRESSION, ST_TOOL_MODE, ST_SESSION_AWARE
27+
- Five compression modes: None, Light, Standard, Quantum, QuantumSemantic
28+
- **Intelligent MCP Assistant**: "The best helper of all time"
29+
- Tool usage pattern learning
30+
- Confidence-based recommendations
31+
- Helpful tips and contextual suggestions
32+
- Project-aware tool selection
33+
- **Claude Integration**: `st --setup-claude` command
34+
- Auto-configures .claude directory for projects
35+
- Detects project type (Rust, Python, JS/TS)
36+
- Generates optimized CLAUDE.md
37+
- Creates hooks for context-aware operation
38+
- **Git Context**: Automatic branch and commit detection
39+
- Shows current branch in context mode
40+
- Includes last commit message
41+
- Native Rust implementation using gix
42+
43+
### Performance
44+
- **Token Optimization**: CLAUDE.md compressed from 750+ to <200 lines
45+
- **Context Efficiency**: Quantum compression achieving 80-100x reduction
46+
- **Memory Usage**: Constant memory for directories >100k files
47+
48+
### Fixed
49+
- MCP tools compilation errors with Arc<McpContext>
50+
- FileNode structure access in formatters
51+
- Borrow checker issues in conversation memory
52+
- gix API compatibility issues
53+
854
## [4.8.4] - 2025-08-13
955

1056
### Added

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ members = ["expert_prompt_engineer"]
33

44
[package]
55
name = "st"
6-
version = "4.8.8"
6+
version = "5.0.0"
77
edition = "2021"
88
authors = ["8bit-wraith", "Claude", "Omni", "8b-is Team"]
99
description = "Smart Tree - An intelligent, AI-friendly directory visualization tool"

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 🌳 Smart Tree - Lightning Fast Directory Visualization
22

3-
[![Version](https://img.shields.io/badge/version-4.8.8-blue)](https://github.com/8b-is/smart-tree)
3+
[![Version](https://img.shields.io/badge/version-5.0.0-blue)](https://github.com/8b-is/smart-tree)
44
[![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)
55
[![Performance](https://img.shields.io/badge/speed-10--24x%20faster-brightgreen)](TERMINAL_EXAMPLES.md)
66
[![CO2 Saved](https://img.shields.io/badge/CO2-saving%20the%20planet-success)](TERMINAL_EXAMPLES.md#environment-impact)
@@ -16,6 +16,9 @@
1616
- **🔍 Smart Search**: Content search with line numbers and context
1717
- **📡 MCP Server**: 30+ tools for AI assistants via Model Context Protocol
1818
- **🌍 Eco-Friendly**: Saves CO2 with every scan through efficiency
19+
- **🎭 NEW: Emotional Mode**: Files express feelings based on age, size, and type!
20+
- **🧠 MEM|8 Integration**: Wave-based memory system for conversation history
21+
- **🤝 Session Awareness**: Intelligent compression negotiation for optimal AI context
1922

2023
## 🚀 Quick Start
2124

@@ -28,6 +31,7 @@ st # Classic tree view of current directory
2831
st --mode ai --compress # AI-optimized compressed output
2932
st --search "TODO" # Search for TODOs in all files
3033
st --mode quantum src/ # Quantum compression for massive codebases
34+
st --mode emotional # NEW: See how your files are feeling today! 🎭
3135
```
3236

3337
## 📦 Installation Options

src/bin/import_claude_memories.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,7 @@ fn extract_text_from_content(content: &Value) -> String {
180180
Value::Array(arr) => arr
181181
.iter()
182182
.filter_map(|item| {
183-
if let Some(text) = item.get("text").and_then(|t| t.as_str()) {
184-
Some(text.to_string())
185-
} else {
186-
None
187-
}
183+
item.get("text").and_then(|t| t.as_str()).map(|text| text.to_string())
188184
})
189185
.collect::<Vec<_>>()
190186
.join("\n"),

src/claude_init.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ impl ClaudeInit {
5252
}
5353

5454
/// Detect project type from file extensions
55-
fn detect_project_type(nodes: &[crate::FileNode], stats: &TreeStats) -> ProjectType {
55+
fn detect_project_type(nodes: &[crate::FileNode], _stats: &TreeStats) -> ProjectType {
5656
let mut rust_score = 0;
5757
let mut python_score = 0;
5858
let mut js_score = 0;

src/formatters/emotional_new.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ impl Formatter for EmotionalFormatter {
355355
writer: &mut dyn Write,
356356
nodes: &[FileNode],
357357
stats: &TreeStats,
358-
root_path: &Path,
358+
_root_path: &Path,
359359
) -> Result<()> {
360360
// Header with drama!
361361
writeln!(writer, "\n🎭 ═══════════════════════════════════════ 🎭")?;

src/mcp/assistant.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
//! - Providing helpful hints and tips
77
//! - Anticipating needs before they're expressed
88
9-
use anyhow::Result;
9+
// use anyhow::Result; // TODO: Use when needed
1010
use serde::{Deserialize, Serialize};
1111
use serde_json::{json, Value};
1212
use std::collections::{HashMap, VecDeque};
@@ -82,6 +82,12 @@ pub enum ProjectSize {
8282
Huge, // 1000+ files
8383
}
8484

85+
impl Default for McpAssistant {
86+
fn default() -> Self {
87+
Self::new()
88+
}
89+
}
90+
8591
impl McpAssistant {
8692
/// Create a new assistant
8793
pub fn new() -> Self {

src/mcp/session.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
//! Smart compression negotiation that adapts to AI preferences
44
//! No more redundant compression hints - negotiate once, compress always!
55
6-
use anyhow::Result;
6+
// use anyhow::Result; // TODO: Use when needed
77
use serde::{Deserialize, Serialize};
88
use std::path::PathBuf;
99
use std::sync::Arc;
@@ -154,6 +154,12 @@ pub struct McpSession {
154154
pub started_at: std::time::SystemTime,
155155
}
156156

157+
impl Default for McpSession {
158+
fn default() -> Self {
159+
Self::new()
160+
}
161+
}
162+
157163
impl McpSession {
158164
/// Create new session with defaults
159165
pub fn new() -> Self {
@@ -312,6 +318,12 @@ pub struct SessionManager {
312318
sessions: Arc<RwLock<std::collections::HashMap<String, McpSession>>>,
313319
}
314320

321+
impl Default for SessionManager {
322+
fn default() -> Self {
323+
Self::new()
324+
}
325+
}
326+
315327
impl SessionManager {
316328
pub fn new() -> Self {
317329
Self {

src/mem8/conversation.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,12 @@ pub struct ConversationAnalyzer {
156156
patterns: Vec<ConversationPattern>,
157157
}
158158

159+
impl Default for ConversationAnalyzer {
160+
fn default() -> Self {
161+
Self::new()
162+
}
163+
}
164+
159165
impl ConversationAnalyzer {
160166
pub fn new() -> Self {
161167
Self {
@@ -234,8 +240,8 @@ impl ConversationAnalyzer {
234240
.unwrap_or("unknown")
235241
.to_string(),
236242
timestamp: idx as u64,
237-
emotion: self.detect_emotion(&msg),
238-
importance: self.calculate_importance(&msg),
243+
emotion: self.detect_emotion(msg),
244+
importance: self.calculate_importance(msg),
239245
});
240246
}
241247
}
@@ -257,8 +263,8 @@ impl ConversationAnalyzer {
257263
.unwrap_or("unknown")
258264
.to_string(),
259265
timestamp: idx as u64,
260-
emotion: self.detect_emotion(&msg),
261-
importance: self.calculate_importance(&msg),
266+
emotion: self.detect_emotion(msg),
267+
importance: self.calculate_importance(msg),
262268
});
263269
}
264270
}

0 commit comments

Comments
 (0)