Skip to content

Commit 3587415

Browse files
doublegateclaude
andcommitted
chore(release): v0.3.9 - iced 0.14.0 migration and CI improvements
Release v0.3.9 includes: ## GUI Framework Upgrade - Complete migration from iced 0.13.1 to iced 0.14.0 - Resolved 82+ breaking API changes including: - Space widget API migration - Application API builder pattern - Checkbox builder pattern - Scrollable ID and operations updates - Style struct snap field additions - Pixels type updates ## CI/CD Improvements - Added checks:write permission for security-audit workflow - Fixed artifact naming (matrix.os -> runner.os) - Migrated from deprecated codecov/test-results-action@v1 to codecov/codecov-action@v5 ## Tech Debt Remediation - Fixed criterion::black_box deprecation (7 occurrences) - Updated tokio 1.48 -> 1.49 - Applied clippy fixes (unused imports, derive Default) - Rewrote benchmarks for async StateManager API ## Repository Cleanup - Closed superseded PRs (#27, #32) - Pruned 20+ stale remote branches - Added Claude Code memory bank patterns to .gitignore ## Quality Assurance - Zero compilation errors - Zero clippy warnings - All 62 tests passing Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 289425c commit 3587415

File tree

12 files changed

+103
-54
lines changed

12 files changed

+103
-54
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,12 @@ CLAUDE.local.md
256256
!docs/
257257
!to-dos/
258258

259+
# Claude Code memory bank files (auto-generated context files)
260+
.github/CLAUDE.md
261+
.github/workflows/CLAUDE.md
262+
crates/*/CLAUDE.md
263+
crates/*/src/CLAUDE.md
264+
259265
# CI/CD artifacts
260266
.github/workflows/*.local.yml
261267
artifacts/

CHANGELOG.md

Lines changed: 48 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@ All notable changes to RustIRC 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-
## [Unreleased]
8+
## [0.3.9] - 2026-01-10 (iced 0.14.0 Migration & CI Improvements)
9+
10+
### Summary
11+
Complete GUI framework upgrade from iced 0.13.1 to iced 0.14.0 with 82+ breaking API changes resolved, along with CI/CD improvements and tech debt remediation. This release modernizes the GUI framework while maintaining full backward compatibility with existing functionality.
912

10-
### Changed - 2026-01-10 (Iced 0.14.0 Migration)
13+
### Changed
1114

12-
#### GUI Framework Upgrade: Iced 0.13.1 to 0.14.0
15+
#### GUI Framework Upgrade: iced 0.13.1 to 0.14.0
1316
- **Major Version Upgrade**: Complete migration from iced 0.13.1 to iced 0.14.0 with 82+ breaking API changes resolved
1417
- **Key Features**: Reactive rendering improvements, time-travel debugging, and enhanced API design
1518

@@ -25,7 +28,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2528
- **Style Structs**: Added required `snap: bool` field to `button::Style` and `container::Style`
2629
- **Pixels Type**: Updated return types from `u16` to `f32` for Pixels trait bounds
2730

28-
#### Files Modified (19 total)
31+
### Fixed
32+
33+
#### CI/CD Improvements
34+
- **Security Audit Permissions**: Added `checks: write` permission for proper security-audit workflow execution
35+
- **Artifact Naming**: Fixed matrix.os to runner.os for consistent artifact naming across platforms
36+
- **Codecov Migration**: Updated from deprecated codecov/test-results-action@v1 to codecov/codecov-action@v5
37+
38+
#### Tech Debt Remediation
39+
- **Benchmark Deprecation**: Fixed criterion::black_box to std::hint::black_box (7 occurrences)
40+
- **Tokio Update**: Updated tokio from 1.48 to 1.49
41+
- **Clippy Fixes**: Applied clippy recommendations (unused imports, derive Default)
42+
- **Benchmark Rewrites**: Updated benchmarks for async StateManager API
43+
44+
### Dependencies
45+
- iced: 0.13.1 -> 0.14.0 (major version with breaking changes)
46+
- tokio: 1.48 -> 1.49
47+
48+
### Repository Cleanup
49+
- Closed superseded PRs (#27, #32)
50+
- Dropped obsolete stashes
51+
- Pruned 20+ stale remote branches
52+
53+
### Files Modified (19 GUI files)
2954
- `Cargo.toml` - Version bump to iced 0.14.0
3055
- `crates/rustirc-gui/src/app.rs` - Application API and rule widget
3156
- `crates/rustirc-gui/src/dialogs.rs` - Space, checkbox, and max_width APIs
@@ -43,22 +68,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4368
- `crates/rustirc-gui/src/components/organisms/responsive_layout.rs` - Space widget and Pixels type
4469
- `crates/rustirc-gui/src/components/organisms/rich_text_editor.rs` - text_input::Status patterns
4570

46-
#### Quality Assurance
71+
### Quality Assurance
4772
- **Build Status**: Zero compilation errors
4873
- **Clippy**: Zero warnings with -D warnings flag
49-
- **Tests**: All 131 tests passing (unit + doctests)
74+
- **Tests**: All 62 tests passing (unit tests)
5075
- **Compatibility**: Full backward compatibility with existing GUI functionality
5176

52-
### Added - 2025-08-26 (Material Design 3 Integration + Dependency Updates)
77+
## [Unreleased]
78+
79+
### Planned for Next Release (Phase 5: Advanced Features)
80+
- DCC support for file transfers and direct chats
81+
- Enhanced IRCv3 features (message-tags, server-time, batch)
82+
- Proxy support (SOCKS5, HTTP)
83+
- Native desktop notifications
84+
- Advanced channel management features
85+
86+
## [0.3.8] - 2025-08-26 (Material Design 3 Integration + Dependency Updates)
87+
88+
### Added
5389

54-
#### Material Design 3 Branch Integration Complete (2025-08-26 11:56 PM EDT)
90+
#### Material Design 3 Branch Integration (2025-08-26)
5591
- **Branch Merge Success**: Successfully merged `impr_gui``main` with comprehensive technical documentation
5692
- **51 Files Integrated**: 8,475 insertions of Material Design 3 implementation with zero conflicts
5793
- **Production Deployment**: Complete Material Design 3 implementation now available in main branch
5894
- **Branch Cleanup**: Removed `impr_gui` branch both locally and remotely after successful integration
5995
- **Version Tag Update**: v0.3.8 tag updated with comprehensive release notes and technical achievements
6096

61-
#### Comprehensive Dependency Security Updates (2025-08-26 11:52 PM EDT)
97+
#### Comprehensive Dependency Security Updates
6298
- **actions/checkout@v5**: Upgraded from v4 with Node.js 24 runtime and enhanced security posture
6399
- Research via Context7 confirmed zero API breaking changes
64100
- GitHub-hosted runners fully compatible with minimum runner version v2.327.1
@@ -74,11 +110,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
74110
- **Research Methodology**: Each PR analyzed via Context7 + Brave Search for comprehensive security verification
75111
- **Zero Breaking Changes**: All updates confirmed safe with detailed workflow compatibility analysis
76112

77-
### Previous Additions - 2025-08-25 (GUI Framework Explorations)
113+
#### GUI Framework Explorations (2025-08-25)
78114

79-
#### New Feature Branches
115+
##### New Feature Branches
80116
- **impr_gui branch**: Material Design 3 components for Iced v0.13.1
81-
- Comprehensive atomic design architecture (atoms molecules organisms)
117+
- Comprehensive atomic design architecture (atoms -> molecules -> organisms)
82118
- Material Design 3 theme with full color system and typography scale
83119
- Advanced components: RichTextEditor with IRC formatting, ResponsiveLayout, MaterialSidebar
84120
- Fixed Unicode escape sequences for IRC control characters
@@ -94,13 +130,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
94130
### Infrastructure
95131
- Installed system libraries for Dioxus support (webkit2gtk4.1-devel, libsoup3-devel, atk-devel, gtk3-devel)
96132

97-
### Planned for Next Release (Phase 5: Advanced Features)
98-
- DCC support for file transfers and direct chats
99-
- Enhanced IRCv3 features (message-tags, server-time, batch)
100-
- Proxy support (SOCKS5, HTTP)
101-
- Native desktop notifications
102-
- Advanced channel management features
103-
104133
## [0.4.0] - 2025-11-18 (Phase 4 Scripting & Plugins - COMPLETE)
105134

106135
### Release Highlights 🎉

CLAUDE.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ The project prioritizes full compatibility with IRC standards including IRCv3 ex
1414

1515
## Development Status
1616

17-
**v0.3.8 Enhanced Iced Material Design GUI** (2025-08-26 10:48 PM EDT - Released with Material Demo Fix)
17+
**v0.3.9 iced 0.14.0 Migration & CI Improvements** (2026-01-10)
1818

1919
- **Phase 1**: Research & Setup ✅ (Complete 2025-08-14)
2020
- **Phase 2**: Core IRC Engine ✅ (Complete 2025-08-17)
@@ -24,12 +24,13 @@ The project prioritizes full compatibility with IRC standards including IRCv3 ex
2424
- **Advanced Interface Features**: Tab completion, key handling, command routing ✅ (Complete 2025-08-21 9:18 PM EDT)
2525
- **100% Full Implementation**: All code complete with no stubs or placeholders ✅ (Complete 2025-08-21 10:55 PM EDT)
2626
- **v0.3.5 GitHub Actions Resilience**: Comprehensive sccache HTTP 400 fallback, cross-platform timeout compatibility ✅ (Complete 2025-08-24 1:35 AM EDT)
27-
- **v0.3.8 Material Design 3 GUI**: Enhanced Iced implementation on impr_gui branch ✅ (100% COMPLETE - ZERO ERRORS!)
28-
- **GUI Framework**: Material Design 3 with complete serialization architecture
27+
- **v0.3.8 Material Design 3 GUI**: Enhanced Iced implementation merged to main ✅ (100% COMPLETE - ZERO ERRORS!)
28+
- **v0.3.9 iced 0.14.0 Migration**: Complete GUI framework upgrade with 82+ breaking API changes resolved ✅
29+
- **GUI Framework**: Material Design 3 with iced 0.14.0 - reactive rendering, time-travel debugging
2930
- **Working Features**: typography, input, chip, plus major fixes in 7+ other components (0 errors)
30-
- **Implementation Complete**: SerializableColor wrapper, Iced 0.13.1 API migration, lifetime management, ALL components fully functional
31-
- **Current Status**: 100% functional MD3 implementation achieved with production-ready code quality - ZERO errors, ZERO warnings
32-
- **Interface Status**: Main branch stable, impr_gui branch COMPLETE with 100% functional Material Design 3
31+
- **Implementation Complete**: SerializableColor wrapper, iced 0.14.0 API migration, lifetime management, ALL components fully functional
32+
- **Current Status**: 100% functional MD3 implementation with iced 0.14.0 - ZERO errors, ZERO warnings
33+
- **Interface Status**: Main branch stable with iced 0.14.0 and Material Design 3 integration
3334

3435
The repository now contains:
3536

@@ -54,7 +55,7 @@ The repository now contains:
5455

5556
- **Language**: Rust
5657
- **Async Runtime**: Tokio for network I/O
57-
- **GUI Framework**: Iced 0.13.1 (functional API implementation)
58+
- **GUI Framework**: Iced 0.14.0 (functional API implementation)
5859
- **TUI Framework**: ratatui
5960
- **TLS**: rustls
6061
- **Scripting**: mlua for Lua integration
@@ -75,7 +76,7 @@ cargo test
7576
cargo test -- --nocapture # Show println! output
7677

7778
# Run the client (multiple modes available)
78-
cargo run # GUI mode (simplified Iced 0.13.1 interface)
79+
cargo run # GUI mode (Iced 0.14.0 interface)
7980
cargo run -- --cli # CLI prototype mode for testing
8081
cargo run -- --tui # TUI mode with ratatui
8182
cargo run -- --config path/to/config.toml # With custom config
@@ -232,7 +233,7 @@ RustIRC/
232233
When addressing GUI issues in RustIRC:
233234

234235
1. **IRC Protocol Verification**: Always check field names against protocol definitions (e.g., WHOIS uses `targets` not `target/nickmasks`)
235-
2. **Iced 0.13.1 Styling**: Use proper border syntax with `0.0.into()` for radius, container styling for pane dividers
236+
2. **Iced 0.14.0 Styling**: Use proper border syntax with `0.0.into()` for radius, container styling for pane dividers
236237
3. **Case-Sensitive Filtering**: Handle both "System" and "system" message senders in filtering logic
237238
4. **State Synchronization**: Use getter methods like `get_filter_state()` to sync UI checkmarks with actual filter states
238239

Cargo.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ clap = { version = "4.5.53", features = ["derive"] }
6666

6767
[package]
6868
name = "rustirc"
69-
version = "0.3.8"
69+
version = "0.3.9"
7070
edition = "2021"
7171
rust-version = "1.75.0"
7272
authors = ["RustIRC Contributors"]

README.md

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
![RustIRC Logo](images/RustIRC_Logo.png)
77

8-
[![Version](https://img.shields.io/badge/version-0.4.0-blue.svg)](CHANGELOG.md)
8+
[![Version](https://img.shields.io/badge/version-0.3.9-blue.svg)](CHANGELOG.md)
99
[![Rust Version](https://img.shields.io/badge/rust-1.75%2B-orange.svg)](https://www.rust-lang.org)
1010
[![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](LICENSE-MIT)
1111
[![Tests](https://img.shields.io/badge/tests-62%20passing-success.svg)](.github/workflows/ci.yml)
@@ -15,12 +15,12 @@
1515
[![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://github.com/doublegate/RustIRC)
1616
[![IRC Protocol](https://img.shields.io/badge/IRC-RFC1459%2F2812-green.svg)](docs/specs/irc-protocol.md)
1717
[![IRCv3](https://img.shields.io/badge/IRCv3-Full%20Support-brightgreen.svg)](docs/specs/ircv3-extensions.md)
18-
[![GUI Framework](https://img.shields.io/badge/GUI-Enhanced%20Iced%200.13.1-purple.svg)](docs/architecture-guide.md)
18+
[![GUI Framework](https://img.shields.io/badge/GUI-Enhanced%20Iced%200.14.0-purple.svg)](docs/architecture-guide.md)
1919
[![Scripting](https://img.shields.io/badge/scripting-Lua%205.4-blueviolet.svg)](scripts/README.md)
2020

2121
A powerful, modern IRC client built in Rust with an enhanced Material Design 3 interface and comprehensive Lua scripting
2222

23-
**Last Updated**: 2025-11-18 | **Branch**: main - v0.4.0 Phase 4 Scripting Complete
23+
**Last Updated**: 2026-01-10 | **Branch**: main - v0.3.9 iced 0.14.0 Migration & CI Improvements
2424

2525
[Features](#-features)[Documentation](#-documentation)[Development Plan](#-development-plan)[Architecture](#️-architecture)[Contributing](#-contributing)
2626

@@ -63,10 +63,10 @@ Built with Rust for memory safety, performance, and cross-platform reliability.
6363

6464
## 📦 Latest Release
6565

66-
[![Version](https://img.shields.io/badge/version-0.4.0-blue.svg)](https://github.com/doublegate/RustIRC/releases/tag/v0.4.0)
67-
[![Release Date](https://img.shields.io/badge/released-November%2018%2C%202025-green.svg)](https://github.com/doublegate/RustIRC/releases/tag/v0.4.0)
66+
[![Version](https://img.shields.io/badge/version-0.3.9-blue.svg)](https://github.com/doublegate/RustIRC/releases/tag/v0.3.9)
67+
[![Release Date](https://img.shields.io/badge/released-January%2010%2C%202026-green.svg)](https://github.com/doublegate/RustIRC/releases/tag/v0.3.9)
6868

69-
**Version 0.4.0** - Phase 4 Scripting & Automation Complete
69+
**Version 0.3.9** - iced 0.14.0 Migration & CI Improvements
7070

7171
### 📜 Lua Scripting System Highlights
7272

@@ -107,7 +107,7 @@ Built with Rust for memory safety, performance, and cross-platform reliability.
107107

108108
## 🏗️ Current Development Status
109109

110-
**Last Updated**: November 18, 2025 - v0.4.0 Phase 4 Scripting Complete
110+
**Last Updated**: January 10, 2026 - v0.3.9 iced 0.14.0 Migration
111111

112112
### **Phase 1: Research & Setup** - **COMPLETE** (100%)
113113

@@ -269,7 +269,7 @@ RustIRC is being developed in 7 carefully planned phases over 24-26 weeks:
269269
│ │ └─ Feedback (Ripples, Progress, Toasts) ││
270270
│ └─────────────────────────────────────────────────────────┘│
271271
│ ┌─────────────────────────────────────────────────────────┐│
272-
│ │ Iced 0.13.1 Enhanced Runtime ││
272+
│ │ Iced 0.14.0 Enhanced Runtime ││
273273
│ │ ├─ WGPU GPU Acceleration ││
274274
│ │ ├─ Custom Shader Pipeline ││
275275
│ │ ├─ Animation Engine (Spring Physics) ││
@@ -317,7 +317,7 @@ RustIRC is being developed in 7 carefully planned phases over 24-26 weeks:
317317

318318
- **Language**: Rust (Edition 2021, MSRV 1.75.0)
319319
- **Async Runtime**: Tokio (multi-threaded, work-stealing)
320-
- **GUI Framework**: Enhanced Iced 0.13.1 with Material Design 3
320+
- **GUI Framework**: Enhanced Iced 0.14.0 with Material Design 3
321321
- WGPU backend for GPU acceleration
322322
- Custom shader support
323323
- Spring-based animation system
@@ -347,7 +347,7 @@ RustIRC is being developed in 7 carefully planned phases over 24-26 weeks:
347347

348348
## 🚦 Current Status
349349

350-
**Version**: 0.4.0 - Phase 4 Scripting Complete
350+
**Version**: 0.3.9 - iced 0.14.0 Migration & CI Improvements
351351
**Phase**: Phases 1-4 Complete ✅ | Lua Scripting Production Ready 📜
352352
**Build Status**: All 6 crates compile successfully, 62 tests passing
353353
**Total Tasks**: 249+ across 7 phases | Phase 4 Lua Scripting 100% complete
@@ -359,7 +359,20 @@ RustIRC is being developed in 7 carefully planned phases over 24-26 weeks:
359359
-**Phase 3: User Interface Enhanced** - Iced Material Design 3, TUI (ratatui), CLI prototype, advanced features
360360
-**Phase 4: Lua Scripting** - Complete Lua 5.4 engine with 50+ API functions, event hooks, built-in scripts
361361

362-
### 🆕 v0.3.8 Enhanced Iced Material Design Features (August 25, 2025 10:23 PM EDT)
362+
### 🆕 v0.3.9 iced 0.14.0 Migration & CI Improvements (January 10, 2026)
363+
364+
#### GUI Framework Upgrade
365+
- **iced 0.14.0**: Complete migration from iced 0.13.1 with 82+ breaking API changes resolved
366+
- **Key Features**: Reactive rendering improvements, time-travel debugging, enhanced API design
367+
- **Breaking Changes Fixed**: Space widget API, Application API, checkbox builder pattern, scrollable IDs/operations, text input status, button/container style structs
368+
369+
#### CI/CD Improvements
370+
- **Security Audit Permissions**: Added `checks: write` for proper security-audit workflow
371+
- **Artifact Naming**: Fixed matrix.os to runner.os for consistent artifact naming
372+
- **Codecov Migration**: Updated from deprecated codecov/test-results-action@v1 to codecov/codecov-action@v5
373+
- **Tech Debt**: Fixed criterion::black_box deprecation, tokio 1.48 to 1.49, clippy fixes
374+
375+
### Previous v0.3.8 Enhanced Iced Material Design Features (August 25, 2025 10:23 PM EDT)
363376

364377
#### Material Design 3 Components Implemented
365378

@@ -513,7 +526,7 @@ RustIRC maintains three active development branches exploring different GUI para
513526

514527
#### 🏠 **main Branch** - Stable Iced Implementation
515528

516-
- Iced 0.13.1 functional API
529+
- Iced 0.14.0 functional API
517530
- Production-ready GUI
518531
- Proven stability
519532
- Full IRC functionality

crates/rustirc-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rustirc-core"
3-
version = "0.3.8"
3+
version = "0.3.9"
44
edition = "2021"
55
authors = ["RustIRC Contributors"]
66
description = "Core functionality for RustIRC client"

crates/rustirc-gui/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rustirc-gui"
3-
version = "0.3.8"
3+
version = "0.3.9"
44
edition = "2021"
55
authors = ["RustIRC Contributors"]
66
description = "GUI implementation for RustIRC"

crates/rustirc-plugins/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rustirc-plugins"
3-
version = "0.3.8"
3+
version = "0.3.9"
44
edition = "2021"
55
authors = ["RustIRC Contributors"]
66
description = "Plugin system for RustIRC"

crates/rustirc-protocol/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rustirc-protocol"
3-
version = "0.3.8"
3+
version = "0.3.9"
44
edition = "2021"
55
authors = ["RustIRC Contributors"]
66
description = "IRC protocol implementation for RustIRC"

0 commit comments

Comments
 (0)