Skip to content

v0.1.1

Latest

Choose a tag to compare

@kzndotsh kzndotsh released this 21 Jan 21:39
· 331 commits to main since this release
871370d

Added

  • Docker: Local Docker build script (docker-build.sh) with versioning options, auto-detection from git tags, custom tags, and build targets (production/dev)
  • Config: Configuration generation with JSON schema, .env.example, and env.md; config generate produces config.json.example, config.schema.json, .env.example, and env.md; config current for database revision
  • Docs: FAQ sections for admins, developers, users, self-hosters, and general inquiries
  • Sentry: Environment determination from config file, environment variable, or debug mode; init message includes determined environment
  • Starboard: Message expiration (TTL 365 days) for starboard entries; expiration timestamp on creation; clearer error logging on update failures
  • Jail system: Jail configuration and re-jail functionality
    • Commands to configure jail channel and role via /config jail and the Configuration Dashboard
    • Automatic re-jailing of members who leave and rejoin while jailed
    • is_jailed method to check user jail status from latest JAIL/UNJAIL cases
    • guilds_registered event to coordinate guild-dependent tasks after registration
    • update_jail_role_id in guild config for jail role configuration
    • Case controller: get_latest_jail_case and get_latest_jail_or_unjail_case for jail status checks
  • Error handling: Client event error handling
    • Error handler manages errors from both app commands and client events (e.g. on_ready, on_member_join)
    • Exceptions in non-command event listeners are logged and reported for diagnostics

Changed

  • Time conversion: convert_to_seconds supports multi-character and compound units
    • Multi-character units (e.g. 1wks, 2hrs, 5min) and compounds (e.g. 1h30m)
    • Case-insensitive unit lookups
  • Hot reload: Path shortening and log levels
    • _shorten_path utility for logs relative to base directory
    • Less verbose hot-reload watcher logs (debug for less critical messages)
  • Cog loader: Logging and terminology
    • Per-category extension counts (e.g. X plugins from atl) when a batch has multiple categories
    • Folder-level summary uses "plugins" for the plugins folder, "extensions" for others
    • Clearer labels and type annotations
  • Database logging: Reduced noise and clearer messages
    • Query: find_all execution logged at trace instead of debug
    • CRUD: refresh logging shows ID only when the instance has a singular id (avoids "unknown" for composite keys)
  • Config: Migrate from TOML and YAML to JSON-only; remove multi-format loaders and TOML/YAML generators; streamline settings; validation and generation focus on JSON and environment files
  • Dashboard: Streamline TextDisplay initialization in ConfigDashboard (component ID set at instantiation)
  • Activity: Simplify activity data handling in ActivityHandler; remove redundant JSON parsing, clearer naming, default activity fallback
  • Docs: Navigation (zensical.toml, Snippets link, FAQ); setup and developer references from config.toml to config.json; feature, configuration, environment, and template examples TOML→JSON; config doc titles and icons; .env and config.json loading order
  • Database migration plugin: config.json in setup and error handling; schema report runs in executor; error message truncation
  • Docker / env: Compose and Containerfile comments for required env and config/config.json; .env.example defaults for Postgres and external services
  • Dependencies: pyyaml and types-pyyaml updates; pydantic-settings-export removed from dev and Renovate
  • Docker: Merged compose.yaml and compose.production.yaml into one file; use --profile dev or --profile production; --profile adminer for DB UI
    • YAML anchors/aliases for deduplication between dev and production services
    • Enhanced develop.watch configuration with initial_sync for better developer experience
    • Updated all documentation to use profile-based compose commands
  • Entrypoint: Streamlined signal handling and cleanup process; simplified entrypoint script with enhanced comments on signal delivery
  • Docs: README and AGENTS.md updates
    • README: Clarified database description (SQLAlchemy and Pydantic), updated project metrics link, added FAQ link
    • AGENTS.md: Enhanced setup instructions with detailed commands, expanded project structure descriptions, updated development workflow with Docker Compose profiles

Fixed

  • Permissions: Explicit type list[PermissionRank] for instances in PermissionRankController
  • Logging: safe_message_filter escapes curly braces and angle brackets to avoid Loguru format errors and Discord mention misinterpretation
  • on_ready handlers: Error handling and startup order
    • Event handler: exception handling for guild registration, waiters unblocked on failure
    • Activity handler: exception handling for activity rotation startup
    • RemindMe: exception handling, timezone-aware expiry checks, reminder scheduling only when timer fires (prevents unawaited coroutine on shutdown)
    • Status roles: exception handling, guild-registration wait before status checks
  • TTY roles: Jailed members are skipped in role assignment on join so the jail role is not overridden by re-jail logic
  • Rank modals: Response handling in EditRankModal and CreateRankModal uses defer and followup for modal submissions; streamlined error handling for rank creation and editing
  • Permission ranks: Description handling in PermissionRankController: MISSING by default, None clears, omitting leaves unchanged
  • Docker entrypoint: Fixed TLDR cache directory permissions; entrypoint now ensures /app/.cache/tldr exists with proper ownership
  • Type checking: Fixed basedpyright deprecation warnings
    • Replaced deprecated asyncio.iscoroutinefunction with inspect.iscoroutinefunction (Python 3.14 compatibility)
    • Fixed MappingProxyType mutation by using object.__setattr__ instead of direct __dict__ assignment
  • Docs: Clarified Adminer web UI startup instructions in contributing guide; updated database startup instructions in error handling to use profile-based Docker Compose commands

Removed

  • Config: TOML and YAML configuration formats; config.toml.example and config.yaml.example; pydantic-settings-export and its type stubs
  • Docker: compose.production.yaml (merged into compose.yaml with profiles)