Skip to content

Changelog

All notable changes to Arctyk ITSM will be documented in this file.

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


[0.6.0] - 2026-01-03

Documentation

  • Comment System Documentation (COMMENT_SYSTEM_DOCUMENTATION.md): Comprehensive documentation of ticket comments system with public comments, internal notes, edit history, and permissions
  • Developer Guides: Extensive new documentation for v0.6.0 features:
  • Component Library (docs/components/): Comprehensive UI component guides (breadcrumbs, badges, forms, modals, pagination, sidebar, sorting, tables, topbar)
  • Testing Guide (docs/developer-guide/testing.md): Complete pytest overview with test patterns, coverage requirements, and best practices
  • SLA Feature Guide (docs/features/sla.md): Comprehensive SLA management documentation
  • Contributing Guide (CONTRIBUTING.md): Developer contribution standards with commitlint requirements
  • Commit Message Validation: Added commitlint configuration for enforcing commit message standards

Added

  • Ticket Comments System: Full-featured discussion platform for tickets
  • Public comments for ticket requester and agent communication
  • Internal notes for staff-only discussions
  • Rich HTML support via TinyMCE editor
  • Edit history tracking with CommentEditHistory model
  • Automatic changelog entries for all comment changes
  • Comment timestamps with created/updated/edited tracking
  • Permission-based visibility (staff-only for internal notes)
  • AJAX-powered comment creation and editing
  • Comment deletion with audit trail
  • User can edit own comments; staff can edit any comment
  • Comment API Endpoints (/tickets/<pk>/comment/ endpoints):
  • GET: Retrieve all comments for a ticket
  • POST: Create new comment (returns 201 status)
  • PATCH/POST: Update existing comment
  • DELETE: Remove comment
  • SLA (Service Level Agreement) Fields:
  • response_target: Target response time for initial contact
  • resolution_target: Target resolution time
  • SLA tracking for ticket metrics and reporting
  • Automatic timestamp recording for SLA milestones
  • Workflow Lifecycle Timestamps:
  • created_at: Ticket creation timestamp
  • first_responded_at: When first response/comment was added
  • resolved_at: When ticket moved to resolved status
  • closed_at: When ticket was closed
  • Lifecycle tracking for SLA compliance and reporting
  • Comment Type Field: Support for comment categorization
  • "public" - visible to requester and agents
  • "internal" - staff-only notes and discussions
  • Commit Message Validation: CI/CD integration with commitlint for standardized commit messages

Changed

  • Updated Ticket model with SLA and lifecycle tracking fields
  • Enhanced ticket templates to display comments with proper context
  • Improved ticket detail view to include comment list and creation form
  • Updated Django admin Comment interface for staff management
  • Comment form submission now uses AJAX for seamless UX
  • All comment operations automatically logged via changelog app
  • Comment system integrates with existing permission framework
  • README feature table updated with Comments & Notes and SLA Tracking rows
  • Documentation landing page (docs/index.md) updated to v0.6.0

Fixed

  • Comment form now properly accepts POST method for AJAX submission
  • Ticket workflow status transitions with proper audit trail
  • Docker image tag versioning for accurate release tracking
  • Version extraction error handling in CI/CD pipeline
  • Ticket status workflow validation and error messaging

Technical Details

  • Models: Comment, CommentEditHistory in src/tickets/models.py
  • Views: Comment CRUD endpoints in src/tickets/views.py
  • Serialization: JSON responses with proper datetime formatting
  • Validation: Server-side validation for comment types and permissions
  • Audit: Automatic changelog tracking via Django signals
  • Frontend: AJAX form submission with real-time updates
  • Database: New migrations for Comment, CommentEditHistory, SLA, and lifecycle fields

Files Modified

  • src/tickets/models.py: Added Comment, CommentEditHistory, SLA, and lifecycle fields
  • src/tickets/views.py: New comment endpoints and enhanced ticket detail view
  • src/tickets/migrations/: New migrations for comment system and SLA fields
  • src/tickets/templates/tickets/ticket_detail.html: Comment list and form integration
  • src/tickets/templates/comments/: New comment templates
  • commitlint.config.js: Commit message validation configuration
  • pyproject.toml: Updated version to 0.6.0
  • GitHub Actions workflows: Enhanced version tagging for Docker images
  • docs/docs/components/: New component documentation (10 files, 3500+ lines)
  • docs/docs/developer-guide/: New testing guide and developer documentation
  • docs/docs/features/: New feature guides (SLA management)
  • README.md: Updated features table
  • COMMENT_SYSTEM_DOCUMENTATION.md: Updated with version badge and integration notes
  • docs/docs/index.md: Updated to v0.6.0

Developer Notes

  • Comments automatically inherit ticket's changelog tracking
  • Edit history preserves all previous comment versions
  • SLA fields enable reporting on ticket response/resolution times
  • Lifecycle timestamps support SLA breach detection and metrics
  • Comment system uses existing user and permission infrastructure
  • Component documentation includes real code examples, accessibility guidance, and testing patterns
  • All developer guides follow consistent structure with version badges and comprehensive examples

Breaking Changes

  • None (backwards compatible with 0.5.0)

[0.5.0] - 2026-01-01

Documentation

  • Workflow Production Review (WORKFLOW_PRODUCTION_REVIEW.md): Comprehensive assessment of workflow engine with 10 critical gaps identified and 3-phase remediation plan for production-grade maturity (Phases 1–3, 4–6 week timeline)

Added

  • Workflow Audit Trail (Phase 1.2): Complete audit logging for ticket status transitions
  • Automatic ChangeLog entry creation on every status change
  • Records user, timestamp, IP address, and transition details
  • Supports both form-based and inline status edits
  • Status history timeline displayed on ticket detail page with user and timestamp information
  • Comprehensive test coverage (24 tests, 100% pass rate) for workflow engine
  • Tests for transitions, validation, audit trail, error handling
  • Workflow Status History UI: Timeline view showing all status transitions with:
  • Transition details (from → to status)
  • Actor information (user who made the change)
  • Timestamp with IP address logging
  • Visual timeline with Bootstrap styling
  • Enhanced apply_transition() Function:
  • Optional request parameter for IP address capture
  • Returns the modified ticket instance
  • Integrated ChangeLog logging
  • Support for both auto-save and manual save patterns
  • Inline Status Editing: Status field now supports inline editing with workflow validation
  • Form-level validation before transition
  • ChangeLog integration for audit trail
  • Error messages for invalid transitions
  • Real-time updates without page reload
  • Inline Field Editing System: Complete PATCH-based inline editing for ticket detail fields
  • Description field (textarea with rich text support)
  • Assignee field (select dropdown with user list)
  • Requester field (select dropdown with user list)
  • Category field (select dropdown with predefined categories)
  • Project field (select dropdown with project list)
  • Due Date field (date picker with formatted display)
  • Real-time field updates without page reload
  • Client-side validation and error handling for inline edits
  • Server-side validation for all inline-editable fields
  • Context variables for select field choices in TicketDetailView
  • Error display for all form fields in create/edit templates
  • Loading spinner states for form submissions
  • Helper text for tags field
  • Rich text styles: Comprehensive CSS styles for TinyMCE content rendering
  • Table styles with proper borders, hover effects, and spacing
  • Heading styles (h1-h6)
  • List styles (ul, ol with proper nesting)
  • Code and pre blocks with syntax highlighting styling
  • Blockquote, image, and link styles
  • Typography enhancements for paragraphs and inline elements
  • TinyMCE Integration for Inline Editing: Rich text editor support for description field inline editing
  • Automatic TinyMCE initialization when entering edit mode on description field
  • Toolbar with essential formatting options (bold, italic, lists, tables, links, code)
  • Content extraction from TinyMCE editor on save
  • Proper cleanup of TinyMCE instance on cancel/exit to prevent memory leaks

Changed

  • Updated inline_update_ticket view to handle status transitions with workflow validation
  • Calls apply_transition() with full audit trail support
  • Returns appropriate error messages for invalid transitions
  • Updated TicketUpdateView.form_valid() to pass request context to apply_transition()
  • Enables IP address capture for audit trail
  • Prevents duplicate ChangeLog entries when status is changed
  • Updated apply_transition() function in workflow engine:
  • Added request parameter for IP address logging
  • Integrated automatic ChangeLog entry creation
  • Added comprehensive docstring
  • Updated ticket detail view context:
  • Added status_changes queryset with filtered ChangeLog entries
  • Enables workflow history timeline display
  • Updated inline_update_ticket view to handle multiple field types:

  • title and description (existing)

  • assigned_user with user validation
  • requester with required validation
  • category with choice validation
  • project with foreign key validation
  • status with workflow transition validation
  • due_date with date formatting and validation

  • Enhanced inline_field.html partial to support multiple field types (text, textarea, date, select)

  • Improved display/value separation for select fields (shows labels, stores IDs)
  • Updated create_ticket.html to use layouts/detail_base.html for consistency
  • Changed block name from content to page_content in create_ticket.html
  • Standardized form field styling across create and edit templates
  • Improved breadcrumb integration in ticket forms

Fixed

  • 405 Method Not Allowed error: inline update endpoint now properly accepts PATCH requests
  • Template include statement formatting for assigned_user field (multi-line with clause issue)
  • Priority badge styling: added dynamic priority class (priority-low, priority-medium, priority-high, priority-urgent) in ticket_header.html
  • Select field display showing IDs instead of human-readable labels
  • Date formatting in backend responses (using Python's strftime instead of Django's format_date)
  • Missing form field CSS classes (project, assigned_user, assigned_group, tags)
  • Breadcrumb display in ticket create and edit forms
  • TinyMCE rich text editor: Added TinyMCE widget to description field in TicketForm
  • TinyMCE URL routing: Added tinymce.urls to urlpatterns for proper editor loading
  • Asset admin listing crash fixed by replacing nonexistent name reference in __str__
  • Asset list page now renders assets table (exposes queryset as assets and updates admin search fields)

Technical Details

  • Endpoint: /tickets/<pk>/inline/ (PATCH method required)
  • Frontend: AJAX with fetch() API, sends JSON payloads
  • Backend: JSON responses with validated, formatted values
  • CSRF token handling via X-CSRFToken header
  • Permission checks: staff, requester, or assignee can edit

Files Modified

  • src/tickets/views.py: Extended inline_update_ticket view, added choice context variables
  • src/tickets/forms.py: Added TinyMCE widget to description field
  • src/config/urls.py: Added tinymce.urls routing
  • src/tickets/templates/tickets/ticket_detail.html: Added inline editing for multiple fields
  • src/tickets/templates/tickets/create_ticket.html: Layout consistency, field styling, error handling
  • src/tickets/templates/tickets/edit_ticket.html: Field styling, error handling, breadcrumbs
  • src/templates/partials/inline_field.html: Support for date input type, display/value separation
  • src/templates/partials/ticket_header.html: Fixed priority badge styling
  • STATIC_SRC/scss/components/_rich-text.scss: New comprehensive styles for TinyMCE content
  • STATIC_SRC/scss/app.scss: Import rich-text styles
  • STATIC_SRC/js/inline_edit.js: Already correct PATCH implementation

Developer Notes

  • All inline edits return human-readable display values (not IDs)
  • Date fields use ISO format (YYYY-MM-DD) for input, display as "Mon DD, YYYY"
  • Select fields require corresponding choices in view context
  • Django Changelog automatically tracks all inline edits via signals

[0.4.4] – 2025‑12‑26

This release focuses on major infrastructure and workflow improvements, highlighted by the upgrade to Django 5.2.9 LTS and significant enhancements to CI/CD, deployment, and server management.

Added

  • Django 5.2.9 LTS: Upgraded the core framework from 5.1.15 to 5.2.9, ensuring long-term support, improved security, and access to the latest features and bug fixes.
  • Dedicated deploy user for Docs: Introduced a non-root user for Arctyk Docs deployment on the production server, improving security and separation of concerns.

Fixed

  • CI/CD reliability: Refactored the GitHub Actions workflow (ci-cd.yml) to resolve SSH authentication issues, ensure correct branch tracking, and automate versioning with bumpver. Server-side git integration: Standardized git setup on the Droplet server, ensuring the deployment directory tracks the correct branch (main) and is always in sync with the remote repository.
  • Dependency management: Recompiled and updated both dev-requirements and requirements to ensure compatibility with Django 5.2.9 and other dependencies.

Changed

  • UI/UX improvements: Refactored ticket_details.html and updated TicketDetailsView for a more consistent and user-friendly experience, continuing the ongoing UI/UX modernization.
  • Deployment separation: Improved the deployment process by clearly separating the Arctyk ITSM dev server and the Arctyk Docs server, reducing risk and simplifying maintenance.

Removed

No features or dependencies were removed in this release.

Technical

  • Branch alignment: The production server now uses the main branch for deployments, eliminating issues caused by branch mismatches.
  • Clean deploys: The deploy script now ensures a clean working directory before pulling updates, preventing local changes from blocking deployments.
  • Security: SSH keys and user permissions were audited and updated to follow best practices for automated deployments.
  • Documentation: Updated changelog and internal documentation to reflect new deployment and versioning workflows.

[0.4.3] – 2025‑12‑26

This patch release introduces a polished, standalone login experience to Arctyk ITSM while preserving the existing functionality. The new login page replaces the default Django authentication form with a Jira/Zendesk‑style card and brand header. Aside from the new login, no other features or fixes are included in this version.

Added

  • New login page: Replaced the default authentication template with a dedicated auth/auth_base.html layout and auth/login.html template. The login screen now features a centered card containing the Arctyk logo, a “Sign in to Arctyk ITSM” heading, username and password fields, and a full‑width “Sign in” button. The layout is minimal and modular so it can be extended for SSO or MFA options in future releases.

  • Dedicated SCSS: Added STATIC_SRC/scss/auth/_login.scss to style the login screen. The stylesheet uses flexbox to center the card, applies neutral Jira‑like background colours, and gives the card padding, border radius, and a subtle shadow.

Changed

  • URL routing: Updated config/urls.py to register a custom login view that renders the new template. The route automatically redirects authenticated users away from the login screen.

  • Authentication behaviour: The dashboard (root URL) now requires authentication; unauthenticated users are redirected to the new login page. This mirrors behaviour in comparable ITSM platforms like Jira and Zendesk, where dashboards are gated behind login.

Removed

  • No features or dependencies were removed in this release.

Technical

This release does not modify any existing models, migrations, or business logic. Upgrading from version 0.4.2 to 0.4.3 should involve only updating templates, static assets and URL configuration files. If you encounter any issues, please verify that static assets are rebuilt (e.g., via your SCSS build pipeline) and that the new templates are picked up by Django’s template loader.


0.4.1 – 2025-12-24

Fixed

  • Create Ticket (AJAX)

  • Fixed incorrect HTML responses being returned for AJAX form submissions.

  • Create Ticket now returns structured JSON responses (success, errors, redirect_url) when submitted via AJAX.
  • Resolved Unexpected token '<' errors caused by Django rendering templates instead of JSON.
  • Ensured required workflow fields (issue_type, status) are properly validated and surfaced to the UI.

  • Update Ticket (AJAX)

  • Fixed Update Ticket flow to return JSON responses for AJAX requests instead of HTTP redirects.
  • Validation errors are now consistently returned as JSON with HTTP 400 status.
  • Preserved audit logging and changelog generation while supporting AJAX workflows.
  • Resolved frontend parsing errors caused by non-JSON responses.

Changed

  • Refactored Create Ticket UI to a Jira-style layout
  • Clear separation between core issue fields and workflow/assignment metadata
  • Required fields are visually emphasized
  • Refactored Edit Ticket UI to be workflow-focused
  • Prominent status handling
  • Cleaner separation of issue details, workflow controls, and audit metadata

Technical

  • Added explicit AJAX request detection (X-Requested-With) to ticket create and update views.
  • Standardized JSON response formats across ticket create and update endpoints.
  • Improved frontend error handling to defensively guard against non-JSON responses.
  • Maintained full compatibility with Django CBVs, CSRF protection, and TinyMCE.

0.4.0 – 2025-12-24

Added

  • Jira-inspired UI overhaul
  • New sidebar with density tuning, active indicators, and branding
  • New topbar with create action, search, notifications, and user menu
  • Modular SCSS architecture
  • Split into base/, layout/, components/, and views/
  • Improved maintainability and isolation of styles
  • Centralized version management using bumpver
  • Automatic version propagation to pyproject.toml, package.json, and runtime modules
  • Changelog documentation and versioning guide

Changed

  • Ticket detail page redesigned with a structured, issue-centric layout
  • Navigation patterns aligned with Jira-style information density
  • Base layout refactored for consistent sidebar + topbar composition
  • Improved accessibility and spacing across core views

Removed

  • Recurring ticket system (models, tasks, tests)
  • Removed due to architectural refactor
  • Feature will be reintroduced in a future release
  • Legacy bulk quick-edit UI
  • Deprecated ticket workflow code paths

Fixed

  • CI failures caused by orphaned recurring-ticket tests
  • Sass build path resolution issues on Windows and CI runners
  • Sidebar hover and active-state regressions
  • Missing icons and alignment issues in topbar actions

[0.3.0-dev.0] – Version Rebase from 0.7.0-alpha.0

Added

  • Core ticketing system (create, edit, assign, comment)
  • Initial workflow states and priorities
  • Asset and project associations
  • Django admin customizations
  • Early UI foundation with Bootstrap

Changed

  • Iterative improvements to ticket list filtering and sorting

Fixed

  • Timezone handling inconsistencies
  • Initial Celery task stability issues

[0.2.0-dev.0] – 2025-10-XX

Added

  • Initial project scaffolding
  • Authentication and user management
  • Basic ticket models and views

[0.1.0-dev.0] – 2024-09-XX

Added

  • Initial proof-of-concept
  • Django project setup
  • Development environment tooling