pew_pew_plx 0.5.0 copy "pew_pew_plx: ^0.5.0" to clipboard
pew_pew_plx: ^0.5.0 copied to clipboard

A Dart CLI tool for project file monitoring and tooling automation

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased] #

Added #

  • Cross-platform clipboard support via ClipboardService (macOS and Linux)
  • GitHub Actions CI workflow (analyze, format, test on PRs)
  • GitHub Actions release workflow (binary builds, GitHub Release, pub.dev publish)
  • Homebrew formula template for macOS and Linux distribution
  • Platform support documentation in README
  • External dependencies documentation in README

Changed #

  • Replaced macOS-only pbcopy/pbpaste clipboard calls with platform-aware ClipboardService
  • Prepared pubspec.yaml for pub.dev publishing (removed publish_to: none, replaced path dependencies)

0.5.0 - 2026-03-10 #

Added #

  • plx init command to ensure config schema is up to date (merge new keys, migrate legacy)
  • plx list feedback command to list feedback markers (default markdown, -o json/yaml)
  • plx list comments command to list unresolved PR review comments (default markdown, -o json/yaml)
  • plx create image <prompt> command for image generation from text prompts via Gemini API
  • plx create parent command grouping creation subcommands
  • CreateImageConfigDto with apiKey, defaultOutputDir, defaultModel in .plx/config.yaml
  • API key resolution: GEMINI_API_KEY, PLX_GEMINI_API_KEY, or create_image.api_key
  • --output, --filename, --count (1-8), --model CLI options for create image
  • Agent architecture with event bus and routing capabilities for Claude Code backend
  • Architecture documentation
  • Opsx workflow management commands
  • README "How It Works" section explaining project architecture and functionality

Changed #

  • Config keys migrated to snake_case (createImagecreate_image)
  • Renamed pew_pew_cli dependency to turbo_plx_cli for consistency
  • Centralized default output format for list commands
  • Enhanced PR review thread and feedback models
  • Config split: auth, agent, and create_image.api_key stored in user config (~/.plx/config.yaml); project config holds watch, feedback, paste, append, create_image output settings
  • Firebase API key removed from source; requires --define=PLX_FIREBASE_API_KEY at build time
  • Removed plxdev from public executables (dev-only, use make dev or dart run bin/plxdev.dart)

Fixed #

  • YamlConverter now emits valid YAML for list-of-maps (feedback/comments YAML output)
  • Default output format for list commands set to markdown
  • ConfigMerger treats null as "use default" for optional config objects
  • Version constant aligned with pubspec.yaml
  • LICENSE malformed line removed

Security #

  • .plx/ directory excluded from git tracking
  • Firebase auth export files excluded from git tracking
  • Firebase Functions PII emails moved to environment params
  • Hardcoded Firebase API key removed from source

0.4.0 - 2026-02-06 #

Added #

  • plx paste <filename> command to write clipboard content (via pbpaste) to a file in the current directory
  • plx append <source> <target> command to append source file content to target file, with duplicate detection and automatic source deletion

Fixed #

  • _flushThenExit in both bin/plx.dart and bin/plxdev.dart now uses stdout.flush()/stderr.flush() instead of stdout.done/stderr.done, which never completed for short-lived commands causing exit codes to silently default to 0

0.3.0 - 2026-01-21 #

Added #

  • get event type for reading single file content with metadata
  • list event type for recursive directory listing with file content
  • FileReaderService for handling file read operations
  • FileEntryDto for structured file list responses
  • lastModified field in WatchEventDto for file timestamp metadata
  • files field in WatchEventDto for list operation responses
  • copyWith method on WatchEventDto for immutable transformations

Fixed #

  • JSON output now uses compact format for CLI communication (removed indentation)

0.2.0 - 2026-01-20 #

Added #

  • Bidirectional file watcher: receive JSON write/delete requests via stdin
  • FileWriterService for processing incoming file operation requests
  • Optional id field in WatchEventDto for request/response correlation
  • WatchEventType.error for failure responses with error messages
  • Event deduplication to prevent duplicate watch events for stdin-triggered writes
  • Path traversal protection for write requests
  • Extension and ignored folder validation for write requests
  • Auto-creation of parent directories for write operations
  • Integration tests for bidirectional flow and deduplication

Changed #

  • Project renamed from "Pew Pew Plaza" to "Pew Pew Plx"

Fixed #

  • Path validation security to prevent directory traversal attacks

0.1.0 - 2026-01-12 #

Added #

  • plx watch project command for real-time file change monitoring
  • Configuration system with .plx/config.yaml auto-creation
  • Trailing-edge throttler for rate-limiting file events (default 1000ms)
  • Recursive directory watching with extension filtering
  • Configurable ignore folders (default: .git, node_modules, build, .dart_tool, .plx)
  • JSON event output to stdout with event type, path, and content
  • Signal handling for clean shutdown (SIGINT, SIGTERM)
  • CLI scaffold with args package command runner
  • Version flag (--version) support
  • LogService with logger package for structured logging
  • Dependency injection with get_it for service management
  • Unit and integration test infrastructure with BDD structure

Fixed #

  • Immediate output flushing for file watch events

Changed #

  • Area-based domain-driven code organization
  • Renamed models to DTOs for data transfer pattern