Releases: fenggwsx/SlashChat
Releases · fenggwsx/SlashChat
v1.0.0
Overview
This milestone graduates SlashChat to its first stable release. The stack now provides a production-ready TCP chat workflow spanning authentication, room messaging, and SHA-verified file sharing, delivered through a polished Bubbletea TUI and automated multi-platform builds.
Highlights
- Full authentication pipeline: server-side JWT handling (feat: implement server authentication flow, feat: support client auth commands) and the client-side connect/login/quit command set.
- Room-based chat with persistence (feat: add room chat support, refactor: embed file metadata in messages), plus automatic history replay and timestamps on every outbound envelope (fix: add timestamps to outbound envelopes).
- File sharing end-to-end: uploads reuse binaries by SHA-256 and downloads retrieve prior attachments (feat: add file upload support, feat: add file download support).
- Transport inspector view /pipe with live JSON framing to ease debugging (feat: add pipe transport inspector, fix: keep pipe view when sending chat).
User Experience & UI
- Significant TUI refreshes with ANSI styling, hints, status bar, layout improvements, auto-return to chat view, and long-line wrapping (refactor: rebuild client tui, feat: redesign client ui layout, feat: wrap long chat lines, feat: auto return to chat view, feat: colorize error footer messages, fix: disable vim scroll bindings in viewport).
- ASCII splash/home banner and clearer prompts before login (feat: render ascii home banner, fix: clarify chat prompt before login).
Operational & Release Tooling
- GitHub Actions workflow compiles CGO-disabled binaries for Linux, macOS, and Windows whenever a version tag is pushed (ci: build and release binaries per tag, fix: add timestamps to outbound envelopes).
- Codebase split into discrete client/server modules to simplify maintenance (refactor: split client and server modules).
Documentation & Licensing
- Comprehensive English and Chinese documentation covering setup, manual QA, and release workflow (docs: refresh agent brief, docs: add project readme, docs: refresh release guidance).
- Repository now explicitly licensed under MIT (docs: add MIT license).
Dependency & Maintenance
- Dependency refresh to keep Go modules current (chore: upgrade some dependencies), additional logging and pipeline chores (chore: expand server logging, chore: update status title, chore: add build pipeline).
Upgrade Notes
- Ensure environment variables (e.g., GOSLASH_JWT_SECRET) are set before deploying.
- Run make build or go build ./cmd/{server,client} with CGO_ENABLED=0 to reproduce the release binaries.
- Follow the manual QA checklist from the README prior to promoting the release tag.
Hope you enjoy SlashChat v1.0.0!
v0.2.0
Highlights
- Introduced the /pipe transport inspector with history, pretty-printed JSON frames, timestamps, and a /pipe clear command to reset captured traffic.
- Added automatic UTC timestamps to all outbound envelopes so server and inspector logs carry accurate send times.
Client UX
- Tab completion now expands commands to the longest common prefix when pressing Tab.
- Long chat messages wrap to the viewport width; footer switches between bright yellow info and red error states for clearer feedback.
- The client stays in /pipe while sending messages, auto-returns to /chat only from other views, and clarifies prompts when chatting before login.
- Status bar branding updated to “SlashChat” for consistency.
Docs
- Added an initial README.md and refreshed AGENTS.md to reflect the current architecture and workflows.
v0.1.0
Highlights
- First public build of the Go-based TCP chat stack with terminal TUI and roomed messaging.
- Registration/login flow handled end-to-end with bcrypt password storage and JWT-based session tokens.
- Rooms now support join/leave, presence listing, and real-time broadcast.
Messaging & File Sharing
- Unified message schema carrying kind, content, and optional file SHA makes text/file handling consistent.
- /upload checks the provided SHA for instant reuse or saves new files into uploads/ under their hash.
- /download retrieves file payloads by message ID; chat history surfaces IDs so users can reference them quickly.
Client UX
- Home and chat views merged; the interface shows an ASCII “SlashChat” banner (via go-figure) until a room is joined, then switches to the live transcript.
- Bubbletea interface refreshed with status bar, hints, history, and ANSI color palette.
- Connection lifecycle events now log clearly to the console.
Server & Infrastructure
- Server emits structured logs for startup (listening address), authentication, messaging, and file activity.
- GORM configured to ignore “record not found” cases to reduce noise.
- New GitHub Actions pipeline builds CGO-free binaries for Linux, macOS, and Windows; tag-triggered runs publish artifacts to the matching GitHub release and support manual workflow_dispatch with an explicit tag input.