Skip to content

Latest commit

Β 

History

History
525 lines (454 loc) Β· 63.5 KB

File metadata and controls

525 lines (454 loc) Β· 63.5 KB
sidebar_position 3
title Changelog
description Complete version history and release notes for the TEA Platform

Changelog

All notable changes to the TEA Platform will be documented in this file.

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

0.5.1 (2026-09-07)

0.5.0 (2026-07-14)

0.4.1 (2026-03-12)

πŸ› Bug Fixes

  • target dependabot PRs to staging instead of main (2ac5460)
  • target dependabot PRs to staging instead of main (1d84ca0)

⚑ Performance Improvements

  • run Docker build only after tests pass and only on push (337c5fd)

0.4.0 (2026-03-11)

✨ Features

  • add "don't ask me again" option to delete confirmation (psr.4) (2803580)
  • add Attach and Move operations to node ellipsis menu (AssurancePlatform-hcf) (bf26500)
  • add bidirectional JSON-diagram sync with batch update API (psr.5) (848319d)
  • add case list sorting options with localStorage persistence (f3ba9ba)
  • add demo assurance case and interactive tutorial tour (1b42b31)
  • add external link indicators and fix rel attributes (6b5701d)
  • add JSON view panel with syntax highlighting (psr.1) (e3db054)
  • add JSON view panel with syntax highlighting (psr.1) (d45865b)
  • add layout direction toggle (TB/LR) to case canvas settings (397e85a)
  • add onboarding tour infrastructure with dashboard and case canvas tours (f680f05)
  • add settings popover to case editor toolbar (f5ff849)
  • add tooltip showing full description on collapsed node hover (9e7a75d)
  • add undo/redo support for delete operations (4d3e19f)
  • add weekly cleanup of PR Docker images from ghcr.io (f74b547)
  • auto-create goal on new case and remove New Goal sheet UI (AssurancePlatform-m13) (fb5f2cd)
  • centralised error handling, error boundaries, and loading states (dc4c566)
  • dynamic Google Font loading for theme presets (a4adcee)
  • implement undo/redo system with soft delete (psr.3) (0d98e48)
  • improve demo case content quality and add expand/collapse tour step (03a42d7)
  • improve large diagram exports with compact layout, depth filtering, and branch pages (b5f8b82)
  • map node colours to chart tokens, remove glassmorphism, add presets (a82ecb3)
  • migrate all API routes to standardised error handling, add error boundaries (06f7e36)
  • migrate evidence linking to evidence_links-only model (7817bb8)
  • migrate hardcoded colours and components to semantic design tokens (53bd3b7)
  • rebuild theming with semantic CSS tokens and preset switching (1f20ea7)
  • record create, move, detach, and attach operations in history (730295b)
  • redesign node interaction with icon-based actions (4917252)
  • replace comment indicator with stateful comment button and reorder node actions (e692f6a)
  • replace Dagre with ELK layout engine (psr.6) (45ccca8)
  • unify node components with shared BaseNode (psr.7) (d2f3614)
  • unify tree refresh via SSE β€” acting user receives own events (01d91ff)

πŸ› Bug Fixes

  • add explicit waitFor to E2E modal interactions to reduce flakiness (f598d5e)
  • add label to context button and auto-flush draft on submit (910fcc9)
  • address patterns enforcer violations in layout direction feature (8671a62)
  • address react-doctor audit findings across 12 files (49fa438)
  • address red team findings β€” bug fix, type safety, schema location (a89959c)
  • apply border design tokens to sidebar and navbar boundaries (c1cdd80)
  • auto-fix formatting in 4 remaining files (49f9971)
  • auto-fix pre-existing lint formatting issues (1f66252)
  • centralise error handling, unify service return types, and deduplicate utilities (AssurancePlatform-5m7) (188e62a)
  • clean up state management issues across 5 components (56bdbb7)
  • close automated quality gate gaps from DX audit (AssurancePlatform-7ob) (885587f)
  • copy patches directory in Docker deps stage (ffb351a)
  • dark mode for landing page and update test assertions (939f1aa)
  • E2E publishing test and CI security audit (0329af7)
  • evidence creation, deletion, and cancel button after links-only migration (00c6c06)
  • exclude .patches/ from biome linting (e8b1cd2)
  • export diagram edge routing, depth labels, missing options, modal spacing (b1fd09b)
  • hide toggle button on childless nodes to prevent canvas jump (e2349ff)
  • improve export edge routing with stability polling and wider spacing (ff60514)
  • increase seed transaction timeout to 30s (bf052c9)
  • lowercase Docker image name to fix registry cache (0dcf596)
  • make edge handles direction-aware for LR layout mode (3a8a453)
  • move auth page guards to middleware and add Suspense boundary (d8e4acd)
  • optimise CI pipeline, test execution, and pre-commit hooks (AssurancePlatform-u39) (5b2deb8)
  • preserve rich-text formatting on case study publish (psr.8) (1779037)
  • prevent cross-case IDOR in updateElement and attachElement (266545d)
  • prevent PDF export overflow for large cases (abc6ffd)
  • reduce bundle size with lazy PDF imports and LazyMotion (ca25f8f)
  • refetch case data after move/attach so tree updates immediately (7638820)
  • register --radius-xl and --spacing in @theme inline (63be3b7)
  • remove COVERAGE=false from test:quick to prevent spurious threshold failures (718f005)
  • remove export type from 'use server' files (62d322d)
  • remove implementation-detail assertion and exclude non-JS from coverage (f4eacdd)
  • remove unnecessary hydration mounted gates from 3 modal components (dfef22b)
  • remove unused React import from switch test (64569c0)
  • replace fetch-in-useEffect with server actions and server fetches (e896b52)
  • reset identifiers now handles evidence linked via evidence_links table (ac62278)
  • resolve 25 of 27 npm audit vulnerabilities (0e8b4f5)
  • resolve all E2E test failures (21/21 passing) (734ea24)
  • resolve export image cutoff and edge routing issues (851fe51)
  • resolve linter errors in CI build (f96b414)
  • resolve parentId from legacy UI fields (goalId, strategyId, propertyClaimId) (2f159ba)
  • resolve pattern enforcer violations from domain type migration (f05e178)
  • resolve remaining linter errors across codebase (599a295)
  • resolve review issues from semantic token migration (c9e5cb6)
  • resolve tour pointer positioning and step visibility bugs (edee8ec)
  • show all evidence URLs and separate context entries visually (6c0a338)
  • show full name in sidebar, fix team page header (351f69c)
  • split Next.js build from Playwright webServer to avoid CI timeout (6c4af35)
  • type safety improvements β€” noUncheckedIndexedAccess, ServiceResult, schema consolidation (AssurancePlatform-a5w) (ee95c47)
  • unify service return types, consolidate schemas, and fix route/action patterns (57a027e)
  • update E2E tests for auto-created goal (AssurancePlatform-m13) (6e50b19)
  • use correct sidebar text colour for logged-in user name (f1dfc42)
  • use default spacing for document export diagrams, add pages tooltip (d3f7e3c)
  • use input[type=password] selector for E2E login (6470aaf)
  • use offsetWidth/offsetHeight for ELK layout node dimensions (91bf0b0)
  • use scoped heading locators in sharing E2E tests to avoid strict mode violation (47a5961)
  • use standalone server for CI E2E and fix password label selector (a3f4b81)
  • wrap Tooltip in TooltipProvider on case study create page (75e0923)

⚑ Performance Improvements

  • optimise build workflow with parallel jobs and registry cache (09c674f)
  • replace recursive tree traversal with level-by-level batching (AssurancePlatform-i6o) (ee8fb85)

πŸ“š Documentation

  • add ATC RL agent case study and case study template (2461326)
  • fix onboarding documentation issues from DX audit (AssurancePlatform-s3b) (3474614)

♻️ Code Refactoring

  • consolidate element types to canonical lowercase format (AssurancePlatform-9kj) (b77665b)
  • consolidate on sonner toast API (3ed8f4d)
  • consolidate type system and remove duplicates (eb94bf4)
  • convert team settings and invite pages to server components (f4fbb4c)
  • decompose 5 giant components into focused sub-components and hooks (9fc557c)
  • delete deprecated code and LegacyMapping model (243c381)
  • enforce single-responsibility and modular patterns across service layer (AssurancePlatform-f2v) (f5ad01e)
  • extract modal factory, fix hook naming, use cn() (2ee92f3)
  • extract shared fetchAndRefreshCase utility (343ecef)
  • fix enforcer violations from phase 4.5 tier 2 review (a7c614e)
  • fix react-doctor errors and warnings (eac3fdc)
  • migrate hardcoded colours to semantic design tokens (6f839f2)
  • phase 4.5 tier 1 β€” enforcement fixes (Zod schemas, Prisma types, enumeration) (46c38f5)
  • phase 4.5 tier 1 β€” extract service files from route handlers (f7807bc)
  • phase 4.5 tier 1 β€” permission consolidation + return shape standardisation (245448c)
  • phase 4.5 tier 1 β€” standardise prisma exports, remove use server from services, clean dead code (f3de09e)
  • phase 4.5 tier 1 β€” transaction wrappers + Zod validation (69782a0)
  • remove Django legacy code and migrate types to camelCase (AssurancePlatform-qzl, AssurancePlatform-9kj) (40e90fa)
  • rename colourProfile and deletedById, wrap seed in transaction (47ac967)
  • rename data/ to store/, clarify module boundaries (77a7f44)
  • reorganise components/ directory structure (698f8aa)
  • replace hardcoded colours with semantic design tokens (bdabcb9)
  • replace legacy domain.ts types with Prisma-derived response types (4980b5e)
  • restructure app router, lib/, and hooks for consistent patterns (1e1ad83)
  • split node-edit.tsx into focused components (3b557e3)

βœ… Tests

  • add integration test suite with real database (352 tests) (dbe2035)
  • add Playwright E2E tests and CI test job (9e4d5c9)
  • strategic test reset β€” delete 84 mock-heavy/stub tests, fix 6 remaining (3344fcd)
  • tests as documentation β€” assertion helpers, anti-enumeration, and red team fixes (AssurancePlatform-z7g) (21e491f)

0.3.2 (2026-01-19)

πŸ› Bug Fixes

  • exclude api/cron from auth middleware (b5f64f7)

0.3.1 (2026-01-19)

πŸ› Bug Fixes

  • also install dotenv for prisma.config.ts (0a8dd0d)
  • copy all Prisma v7 packages from pnpm store (e0491f2)
  • copy Prisma from builder stage for correct user permissions (b4a728d)
  • dereference pnpm symlinks for Prisma CLI in Docker (cc0389c)
  • grant tea_app permissions after database reset (e1b4893)
  • include @prisma/engines in runtime Prisma CLI (926cac8)
  • increase Node.js memory limit for Docker build (6a429b5)
  • install Prisma in isolated directory to avoid npm conflicts (0ecca5a)
  • install Prisma to /opt/prisma to avoid node_modules conflicts (330f684)
  • install Prisma with npm in runner stage (b056e8c)
  • set NODE_PATH for prisma to find dotenv (ddb3b92)

πŸ”§ CI/CD

  • ignore beads/docs changes in seed workflow (da087bd)
  • use GitHub secret for seed user password (b666b33)

0.3.0 (2026-01-18)

✨ Features

  • add connected accounts section to settings page (9a2f8f2)
  • add GitHub import and OpenAPI documentation (a798104)
  • add Google OAuth and Google Drive integration (5666b45)
  • add image export (SVG/PNG) for assurance case diagrams (f0553e6)
  • add MarkdownExporter class for document export (aeb.3.5) (3b582e1)
  • add PDFExporter for document export (aeb.3.2) (518f202)
  • add report template system for document export (aeb.3.6) (3a79e4d)
  • add WordExporter for Word document export (aeb.3.4) (2406c70)
  • docs: restore detailed case studies and add two new (5356393)
  • implement recycle bin soft-delete system (fba56de)
  • improve PDF/Markdown export formatting and add TEA branding (8bbe8a6)
  • reorganise export modal and fix PDF/Markdown exports (aeb.3.7) (782cc8e)
  • support multiple evidence URLs per element (27cc387), closes #427

πŸ› Bug Fixes

  • add Google OAuth build args to Dockerfile (f65cc42)
  • add Google OAuth build args to Dockerfile (a00264f)
  • build: replace isomorphic-dompurify with sanitize-html (75f1514)
  • ci: add dummy DATABASE_URL for Prisma generate and use repo secrets (4c05595)
  • ci: remove invalid --skip-seed flag (7da742a)
  • ci: reset staging DB completely before seeding (e66fdf8)
  • ci: use pnpm version from packageManager field (d1e8c1b)
  • emit SSE event after reset identifiers to trigger real-time UI update (d2cc5ff)
  • exclude HTML files from auth middleware for domain verification (52eda73)
  • redeclare build args in builder stage (820665d)
  • redeclare build args in builder stage (28c4f50)
  • remove legacy RefreshToken authentication system (6d461d0)
  • remove use server directive from rate-limit-service (3c3731a)
  • resolve Word exporter styling issues (acc8a9a)
  • security: add proper HTML sanitisation to sanitizeDescription (db86da2)
  • security: address timing attack vulnerability in JWT callback (45b4cfd)
  • security: harden invite acceptance with transaction and audit logging (f0ba447)
  • skip data migration check when legacy tables already removed (6d206dc)
  • state refresh for detach/reattach element operations (74d2438), closes #1 #2
  • sync section checkboxes with template selection in export modal (1574a38)
  • update delete modal text to reflect soft-delete behaviour (db0036e)
  • use require for node:stream in Google Drive service (e958aef)

⚑ Performance Improvements

  • implement aeb.7 performance optimisations (5381f14)

πŸ“š Documentation

  • add data retention policy for inactive accounts (fdc655e)

πŸ”§ CI/CD

  • add dev seed database for reproducible test environment (0295c19)
  • add semantic-release workflow and fix changelog docs (beca77d)
  • disable semantic-release success/fail comments (9316a64)
  • use RELEASE_TOKEN for semantic-release branch protection bypass (51669d2)

1.0.1 (2026-01-18)

πŸ”§ CI/CD

  • disable semantic-release success/fail comments (9316a64)

1.0.0 (2026-01-18)

✨ Features

  • add connected accounts section to settings page (9a2f8f2)
  • add GitHub import and OpenAPI documentation (a798104)
  • add Google OAuth and Google Drive integration (5666b45)
  • add image export (SVG/PNG) for assurance case diagrams (f0553e6)
  • add MarkdownExporter class for document export (aeb.3.5) (3b582e1)
  • add PDFExporter for document export (aeb.3.2) (518f202)
  • add report template system for document export (aeb.3.6) (3a79e4d)
  • add WordExporter for Word document export (aeb.3.4) (2406c70)
  • build optimisation + fix entrypoint script (ed0ca33)
  • devops: add health check endpoint and improve CI/CD reliability (e271a98)
  • docs: restore detailed case studies and add two new (5356393)
  • handle Django-to-Prisma baseline migration automatically (e800b1a)
  • implement backend API testing with comprehensive test suite (ba98c1c)
  • implement recycle bin soft-delete system (fba56de)
  • improve PDF/Markdown export formatting and add TEA branding (8bbe8a6)
  • reorganise export modal and fix PDF/Markdown exports (aeb.3.7) (782cc8e)
  • support multiple evidence URLs per element (27cc387), closes #427

πŸ› Bug Fixes

  • add dummy DATABASE_URL for build-time Prisma initialization (ac2a1cd)
  • add Google OAuth build args to Dockerfile (f65cc42)
  • add Google OAuth build args to Dockerfile (a00264f)
  • add missing Case Studies tables to migration (37ebd94)
  • add prisma generate step before build in Dockerfile (ed2a2c4)
  • add prisma generate step before type-check in CI (61d9776)
  • build: replace isomorphic-dompurify with sanitize-html (75f1514)
  • case throwing client error 696 (a991264)
  • Docker development environment API connectivity (a16936e)
  • element descriptions can now be edited (855f8ca)
  • emit SSE event after reset identifiers to trigger real-time UI update (d2cc5ff)
  • exclude HTML files from auth middleware for domain verification (52eda73)
  • exclude test files and vitest configs from build type checking (a4f115b)
  • improve health check reliability in CI/CD (e9995e5)
  • install prisma locally for config module resolution (96478de)
  • lint: configure biome exclusions and fix lint errors (9068c21)
  • Password form (93e38a0)
  • prevent shell interpretation of $ in webhook URLs (2080420)
  • redeclare build args in builder stage (820665d)
  • redeclare build args in builder stage (28c4f50)
  • remove legacy RefreshToken authentication system (6d461d0)
  • remove use server directive from rate-limit-service (3c3731a)
  • replace invalid 'primary' button variant with 'default' (5c40589)
  • resolve all build-affecting type errors (2821239)
  • resolve CaseStudy type conflicts for build (a7d6f06)
  • resolve Word exporter styling issues (acc8a9a)
  • security: add proper HTML sanitisation to sanitizeDescription (db86da2)
  • security: address timing attack vulnerability in JWT callback (45b4cfd)
  • security: harden invite acceptance with transaction and audit logging (f0ba447)
  • Shape detail was still expected (67b9558)
  • skip data migration check when legacy tables already removed (6d206dc)
  • state refresh for detach/reattach element operations (74d2438), closes #1 #2
  • sync section checkboxes with template selection in export modal (1574a38)
  • update delete modal text to reflect soft-delete behaviour (db0036e)
  • use require for node:stream in Google Drive service (e958aef)
  • websocket url (3eef8d0)

⚑ Performance Improvements

  • implement aeb.7 performance optimisations (5381f14)

πŸ“š Documentation

  • add data retention policy for inactive accounts (fdc655e)
  • Cardlist and Card link Components (04dff9b)
  • create .all-contributorsrc [skip ci] (92d35ab)
  • Docker and NextAuth added (844c5bc)
  • ReactFlow and Tailwindcss (50174f7)
  • update .all-contributorsrc [skip ci] (d2415db)
  • update .all-contributorsrc [skip ci] (e745339)
  • update .all-contributorsrc [skip ci] (834fcc9)
  • update .all-contributorsrc [skip ci] (ba828db)
  • update .all-contributorsrc [skip ci] (233be0e)
  • update .all-contributorsrc [skip ci] (dd57b22)
  • update .all-contributorsrc [skip ci] (59b7bd4)
  • update .all-contributorsrc [skip ci] (4f0277f)
  • update .all-contributorsrc [skip ci] (553a9a2)
  • update .all-contributorsrc [skip ci] (a0d0288)
  • update .all-contributorsrc [skip ci] (139a76f)
  • update README.md [skip ci] (ab27dc3)
  • update README.md [skip ci] (fecfa4d)
  • update README.md [skip ci] (f6beef6)
  • update README.md [skip ci] (269d4bf)
  • update README.md [skip ci] (8c419c6)
  • update README.md [skip ci] (de2275e)
  • update README.md [skip ci] (5fac0a2)
  • update README.md [skip ci] (bd46a4a)
  • update README.md [skip ci] (77d2cc0)
  • update README.md [skip ci] (deb1a3a)

πŸ’„ Styles

πŸ”§ CI/CD

  • add semantic-release workflow and fix changelog docs (beca77d)
  • use RELEASE_TOKEN for semantic-release branch protection bypass (51669d2)

[Unreleased]

Added

  • TEA Platform refactoring plan for modernising infrastructure
  • Comprehensive versioning and release strategy documentation
  • GitHub Container Registry migration strategy

Changed

  • Planning migration from Docker Hub to GitHub Container Registry (ghcr.io)
  • Directory naming conventions from EAP to TEA branding

[0.2.0] - TBD

Added

  • Semantic versioning implementation
  • Automated release process via GitHub Actions
  • Container image tagging with semantic versions

Changed

  • Updated from EAP (Ethical Assurance Platform) to TEA (Trustworthy and Ethical Assurance) branding
  • Migrated container registry from Docker Hub to GitHub Container Registry

Technical

  • Directory structure: eap_backend/ β†’ tea_backend/, next_frontend/ β†’ tea_frontend/
  • Container images: turingassuranceplatform/eap_* β†’ ghcr.io/alan-turing-institute/tea-platform/*
  • Improved CI/CD pipeline with GitHub-managed authentication

[0.1.0] - Historical

Added

  • Initial TEA Platform release
  • Django backend with REST API
  • Next.js frontend with ReactFlow integration
  • Basic Docker containerization
  • Azure App Service deployment
  • PostgreSQL database support
  • GitHub OAuth authentication

Technical

  • Django 5.1.11 backend
  • Next.js 15 frontend with React 19
  • Docker Hub container hosting
  • Azure App Service hosting
  • Basic CI/CD pipeline

Release Types

  • Added for new features
  • Changed for changes in existing functionality
  • Deprecated for soon-to-be removed features
  • Removed for now removed features
  • Fixed for any bug fixes
  • Security for vulnerability fixes
  • Technical for infrastructure and development changes