Skip to content

Releases: fenggwsx/SlashChat

v1.0.0

17 Nov 16:13

Choose a tag to compare

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

03 Nov 08:26

Choose a tag to compare

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

03 Nov 05:52

Choose a tag to compare

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.