← Back to Home

Changelog

Latest public updates to this site.

2026-03-04 - MFA Rollout, Invitation Flow, and Account Recovery Controls

Introduced full MFA onboarding and verification improvements, role-aware invitation prompts, and admin recovery/reset controls.

  • Updated MFA verification page UX to default to authenticator app when configured, with quick switch to email or recovery code methods.
  • Added post-login MFA invitation screen in login-page style with role-aware messaging (recommended for members, mandatory wording for admin/mod roles).
  • Added decline tracking so dismissed MFA invitations are recorded and not repeatedly shown unless manually reset.
  • Added admin-side user MFA reset action to clear authenticator/email MFA and recovery codes when a user loses access.
  • Added superadmin-only action to reset a user's declined MFA invitation state so prompt flow can be re-issued.
  • Added account-level MFA decision visibility by showing invitation decline timestamps/notes and moderation notes in account/admin user views.
  • Updated MFA setup flow to include scannable QR code, manual secret display, and one-click copy button for easier mobile authenticator setup.

2026-02-27 - Admin Feature Toggle Area

Added a new admin area to disable and enable major site features without editing environment files.

  • Added an Admin > Features page where blog and automation can be toggled on or off.
  • Added database-backed feature flags with admin change tracking for runtime feature state.
  • Updated route protection to use feature middleware so disabled features return 404 immediately.
  • Updated admin navigation and dashboard logic to respect current feature toggle state.

2026-02-27 - Uptime Reliability and Admin Ops Improvements

Hardened uptime detection to reduce false alerts and added one-click admin maintenance tooling.

  • Adjusted scheduler strategy for uptime checks to improve compatibility on shared hosting environments.
  • Added manual 'Run Manual Check' action on the uptime dashboard for sanity checks.
  • Implemented staged outage confirmation logic with repeated probes and delayed reconfirmation before marking down.
  • Set configurable uptime target threshold to 95% and updated graph/legend status logic.
  • Added admin dashboard one-click maintenance action for migrate, cache clear, and cache rebuild commands.

2026-02-26 - Uptime Access and Invite Enhancements

Expanded uptime access controls, added role-based admin invites, and updated Plex monitor target reachability.

  • Changed Plex uptime target to plex.harrisonlink.uk on port 443 for reliable remote-server connectivity.
  • Added admin invite flow with email + role selection (Member, View Access, Admin).
  • Updated invite acceptance flow to create account with real name, locked email display, and password setup.
  • Added per-user toggle for View Access accounts to disable or enable uptime alert emails.
  • Updated uptime alert recipients to include admins and View Access users with notifications enabled.

2026-02-25 - HarrisonLink Plex Uptime Monitoring

Added backend Plex uptime monitoring with transition alerts, a 90-day graph dashboard, and a view-only observer role.

  • Added scheduled uptime checks for harrisonlink.uk:32400 with one alert on offline transition and one alert on recovery.
  • Added persistent uptime samples and outage events for historical analysis.
  • Added private uptime dashboard with 90-day daily graph and uptime/downtime percentage stats.
  • Added Uptime Observer role with read-only access to uptime pages.
  • Added admin user tools to create/assign/remove Uptime Observer access via invite-capable flow.

2026-02-25 - Changelog Published

Added a public changelog page and footer link so updates are visible on the site.

  • Added /changelog route and page to render changelog entries.
  • Added a controller to load entries from changelog/member-changelog.json.
  • Added a Changelog link to the shared public footer.

2026-02-25 - Global HTTPS Enforcement

All site requests and generated URLs are now forced to HTTPS.

  • Added global middleware to redirect all HTTP requests to HTTPS (301).
  • Registered HTTPS forcing as application-wide middleware for every route.
  • Forced generated Laravel URLs to use https when HTTPS enforcement is enabled.
  • Added FORCE_HTTPS environment toggle with production-safe default behavior.

2026-02-22 - User Accounts, Invites, and Admin/User Split

Introduced invite-based user accounts, separated admin vs user areas, and added user lifecycle automation.

  • Added admin-only and non-admin middleware for access control.
  • Added user invite flow with emailed invite links and acceptance pages.
  • Added user portal routes for ticket history, ticket details, and account password updates.
  • Added admin user management and inactivity jobs for warning and pruning inactive users.
  • Updated navigation/login flow to route admins and users to their respective dashboards.

2026-02-22 - Advanced Ticketing Automation

Expanded ticketing to support robust email workflows, lifecycle automation, and admin tooling.

  • Enabled IMAP ingestion from support inbox and scheduled polling via Laravel scheduler.
  • Added 6-digit random unique ticket number allocation with reuse policy tracking.
  • Added lifecycle jobs: 24-hour expiry warning, 15-day inactive close, 90-day archive, and 2-year prune.
  • Added admin ticket merge flow for duplicate issues from the same requester.
  • Updated ticket email behavior to use support@larkum.uk with ticket number-based subject matching.

2026-02-22 - Secure Ticket Portal and Email Update Flow

Delivered end-to-end ticket updates with link-only access, notifications, and inbound reply support.

  • Added tokenized ticket access links and reply tokens on tickets.
  • Added public ticket portal for viewing, replying, and closing tickets via secure links.
  • Added themed HTML ticket update emails with user/admin links and close-ticket action.
  • Added inbound email webhook endpoint with sender checks to append replies to tickets.
  • Wired notifications for new tickets, replies, status changes, and ticket closure.

2026-02-21 - Laravel Platform and Core Admin Foundation

Migrated from static starter files to a Laravel application with initial ticketing, blog, and admin controls.

  • Scaffolded Laravel app structure in repository root with routes, controllers, and Blade views.
  • Added initial ticket, ticket reply, and blog post models/migrations.
  • Added contact ticket submission flow and public blog pages.
  • Added admin login flow, dashboard, admin blog management, and admin ticket management routes.
  • Prepared deployment workflow for shared hosting and Laravel public/ serving.