Release v0.5.0 #29

Merged
Mike Bros merged 11 commits from release/0.5.0 into main 2026-02-19 16:37:17 +00:00
Contributor

Release v0.5.0

Changes

  • OP#1090: Initialize version branch from develop
  • OP#1078: Create README.md
  • OP#1079: Wiki: Configuration Reference
  • OP#1080: Wiki: Docker Deployment Guide
  • OP#1081: Wiki: Dashboard System
  • OP#1082: Wiki: Sharing & Collaboration
  • OP#1083: Wiki: Theme System
  • OP#1084: Wiki: Status Checks
  • OP#1085: Wiki: Import Guide
  • OP#1086: Wiki: Admin Guide
  • OP#1087: Wiki: Architecture Overview
  • OP#1088: Update wiki start page
  • OP#1089: Wiki housekeeping: ADRs and testing docs
  • OP#1092: DB migration: activity_logs table and indexes
  • OP#1093: Activity logging service: record and query functions
  • OP#1094: Instrument handlers to emit activity log events
  • OP#1095: Admin activity log viewer page
  • OP#1096: Activity log retention: TTL cleanup and admin settings
  • OP#240: Unit tests: User Activity Logs
  • OP#385: Update ADR-002 with expanded auth modes
  • OP#242: Break down Traditional Auth epic
  • OP#243: Research: Multi-provider OIDC architecture

Checklist

  • All version tasks closed in Gravity PM
  • Tests passing
  • go vet clean
  • Version file matches Gravity PM version (manifest.json → 0.5.0)

References

Version: v0.5.0 (Gravity PM)

## Release v0.5.0 ### Changes - OP#1090: Initialize version branch from develop - OP#1078: Create README.md - OP#1079: Wiki: Configuration Reference - OP#1080: Wiki: Docker Deployment Guide - OP#1081: Wiki: Dashboard System - OP#1082: Wiki: Sharing & Collaboration - OP#1083: Wiki: Theme System - OP#1084: Wiki: Status Checks - OP#1085: Wiki: Import Guide - OP#1086: Wiki: Admin Guide - OP#1087: Wiki: Architecture Overview - OP#1088: Update wiki start page - OP#1089: Wiki housekeeping: ADRs and testing docs - OP#1092: DB migration: activity_logs table and indexes - OP#1093: Activity logging service: record and query functions - OP#1094: Instrument handlers to emit activity log events - OP#1095: Admin activity log viewer page - OP#1096: Activity log retention: TTL cleanup and admin settings - OP#240: Unit tests: User Activity Logs - OP#385: Update ADR-002 with expanded auth modes - OP#242: Break down Traditional Auth epic - OP#243: Research: Multi-provider OIDC architecture ### Checklist - [x] All version tasks closed in Gravity PM - [x] Tests passing - [x] go vet clean - [x] Version file matches Gravity PM version (manifest.json → 0.5.0) ### References Version: v0.5.0 (Gravity PM)
Closes GP#1078

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Point to wiki as canonical source and condense in-repo doc to quick
reference. Removes duplicate patterns now covered by the comprehensive
wiki page.

Closes GP#1089

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create goose migration with activity_logs table for admin audit trail.
Includes indexes on created_at, event_type, user_id, and composite
event_type+created_at. Model supports nullable impersonator_id and
JSONB metadata.

Closes GP#1092

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create ActivityService with Log() for recording events and List() for
paginated queries with filtering by event type, user, and date range.
Add ImpersonatorFromContext to middleware so activity logs can track
which admin initiated an impersonated action.

Closes GP#1093

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add ActivityLogger interface and logActivity helper for nil-safe,
fire-and-forget event recording. Instrument dashboard create/delete,
section CRUD/reorder, item CRUD/reorder/move, admin settings, SMTP
settings, import, and impersonate start/stop handlers. Wire
ActivityService through handler constructors in main.go. Add
ImpersonatorFromContext to auto-capture impersonation in log entries.

Closes GP#1094

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create admin activity log page at /admin/activity with filterable,
paginated table showing all recorded events. Includes event type and
user dropdowns, date range picker, HTMX-powered filtering and
pagination, color-coded event badges, impersonation indicators, and
relative timestamps. Add Activity Log nav link to admin sidebar.

Closes GP#1095

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add activity_log_retention_days column to app_settings with goose
migration. Implement background hourly cleanup goroutine with batch
deletion to avoid long locks. Add retention period dropdown (never,
30d, 90d, 180d, 1y) to admin settings page. TTL=0 disables cleanup.

Closes GP#1096

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Covers event recording (CRUD, impersonation, metadata), list
filtering (event type, user, date range), pagination defaults,
and retention cleanup (TTL delete, skip, batch).

Closes GP#240

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
chore(release): bump version to 0.5.0
Some checks failed
CI / validate-branch (pull_request) Successful in -1s
CI / build (pull_request) Successful in 1m49s
CI / validate-release-pr (pull_request) Successful in 7s
CI / security (pull_request) Successful in 44s
CI / lint (pull_request) Failing after 1m17s
CI / test (pull_request) Has been skipped
2f64b51d5c
Refs GP#1091

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
style: fix gofumpt struct field alignment in model files
Some checks failed
CI / validate-branch (pull_request) Successful in -1s
CI / lint (pull_request) Failing after 1m16s
CI / test (pull_request) Has been skipped
CI / security (pull_request) Successful in 1m46s
CI / build (pull_request) Successful in 1m48s
CI / validate-release-pr (pull_request) Successful in 8s
44fa2a9c79
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: remove ineffectual n++ assignment in buildActivityWhere
All checks were successful
CI / validate-release-pr (pull_request) Successful in 6s
CI / validate-branch (pull_request) Successful in 0s
CI / lint (pull_request) Successful in 1m15s
CI / security (pull_request) Successful in 1m36s
CI / build (pull_request) Successful in 1m40s
CI / test (pull_request) Successful in 1m52s
e14e3faae7
The final n++ after the last filter condition is never read,
triggering golangci-lint ineffassign.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mike Bros deleted branch release/0.5.0 2026-02-19 16:37:18 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
mike/gashy!29
No description provided.