| sidebar_position | 3 |
|---|---|
| title | Changelog |
| description | Complete version history and release notes for the TEA Platform |
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)
- target dependabot PRs to staging instead of main (2ac5460)
- target dependabot PRs to staging instead of main (1d84ca0)
- run Docker build only after tests pass and only on push (337c5fd)
0.4.0 (2026-03-11)
- 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)
- 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)
- optimise build workflow with parallel jobs and registry cache (09c674f)
- replace recursive tree traversal with level-by-level batching (AssurancePlatform-i6o) (ee8fb85)
- add ATC RL agent case study and case study template (2461326)
- fix onboarding documentation issues from DX audit (AssurancePlatform-s3b) (3474614)
- 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)
- 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)
- exclude api/cron from auth middleware (b5f64f7)
0.3.1 (2026-01-19)
- 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)
- ignore beads/docs changes in seed workflow (da087bd)
- use GitHub secret for seed user password (b666b33)
0.3.0 (2026-01-18)
- 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
- 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)
- implement aeb.7 performance optimisations (5381f14)
- add data retention policy for inactive accounts (fdc655e)
- 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)
- disable semantic-release success/fail comments (9316a64)
- 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
- 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)
- implement aeb.7 performance optimisations (5381f14)
- 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)
- pre-commit fixes (8e77398)
- pre-commit fixes (bce25e1)
- pre-commit fixes (614d40e)
- pre-commit fixes (31a8225)
- pre-commit fixes (0af6aca)
- pre-commit fixes (43732ed)
- pre-commit fixes (cfbbab9)
- pre-commit fixes (25ae2ff)
- pre-commit fixes (889172f)
- pre-commit fixes (52dd4fd)
- pre-commit fixes (1d992ca)
- pre-commit fixes (fa35c55)
- pre-commit fixes (7301a76)
- pre-commit fixes (034fa46)
- pre-commit fixes (f42fc3c)
- pre-commit fixes (73b70a6)
- pre-commit fixes (1ee77c0)
- pre-commit fixes (0b7652c)
- pre-commit fixes (47f6e3b)
- pre-commit fixes (91339d0)
- pre-commit fixes (5fcf3eb)
- pre-commit fixes (59f19d4)
- pre-commit fixes (464e898)
- pre-commit fixes (1f00373)
- pre-commit fixes (60f2c7e)
- pre-commit fixes (916245c)
- pre-commit fixes (06404cb)
- pre-commit fixes (0f05594)
- pre-commit fixes (f0ec888)
- pre-commit fixes (b72ce8d)
- pre-commit fixes (223b821)
- pre-commit fixes (4cf792e)
- pre-commit fixes (8341a9e)
- pre-commit fixes (acbc9b7)
- pre-commit fixes (61afc5c)
- pre-commit fixes (3fda87c)
- pre-commit fixes (7f4d27c)
- pre-commit fixes (c5fb290)
- pre-commit fixes (e5f6cfe)
- pre-commit fixes (52e30d6)
- pre-commit fixes (e15a5f9)
- pre-commit fixes (5f270c5)
- pre-commit fixes (728f2d0)
- pre-commit fixes (74a4d23)
- pre-commit fixes (af0280a)
- pre-commit fixes (19e84b9)
- pre-commit fixes (bd3791c)
- pre-commit fixes (d9464de)
- pre-commit fixes (ace4565)
- pre-commit fixes (2e1e141)
- pre-commit fixes (70af472)
- pre-commit fixes (c04b14f)
- pre-commit fixes (ffbdb2b)
- pre-commit fixes (7c3fe46)
- pre-commit fixes (21aad9e)
- pre-commit fixes (d04b4ec)
- pre-commit fixes (6a54d11)
- pre-commit fixes (7184a4e)
- pre-commit fixes (1e21118)
- pre-commit fixes (e11541f)
- pre-commit fixes (4b89e35)
- pre-commit fixes (4802eb7)
- pre-commit fixes (5e7f49b)
- pre-commit fixes (d6bb92c)
- pre-commit fixes (19747ef)
- pre-commit fixes (1c0cc89)
- pre-commit fixes (f3c0e03)
- pre-commit fixes (c322128)
- pre-commit fixes (56bcda1)
- pre-commit fixes (db282ea)
- pre-commit fixes (80f7e34)
- pre-commit fixes (c3165f8)
- pre-commit fixes (af116da)
- pre-commit fixes (fe8f93a)
- pre-commit fixes (f0c9c6d)
- pre-commit fixes (456fd53)
- pre-commit fixes (a5c7e36)
- pre-commit fixes (45cf176)
- pre-commit fixes (ea7501e)
- pre-commit fixes (f3b4e53)
- pre-commit fixes (4fca194)
- pre-commit fixes (e2ed34a)
- pre-commit fixes (7e9d77b)
- pre-commit fixes (8d5a372)
- pre-commit fixes (f1f0891)
- pre-commit fixes (f7345d1)
- pre-commit fixes (2c58064)
- pre-commit fixes (341f38b)
- pre-commit fixes (b9146a8)
- pre-commit fixes (e251b04)
- pre-commit fixes (21262e6)
- pre-commit fixes (71b845f)
- pre-commit fixes (00d861d)
- pre-commit fixes (200e257)
- pre-commit fixes (f148e17)
- pre-commit fixes (10e9a99)
- pre-commit fixes (7426f39)
- pre-commit fixes (b43ae29)
- pre-commit fixes (619c807)
- pre-commit fixes (c576c1f)
- pre-commit fixes (dc43e80)
- pre-commit fixes (7156056)
- pre-commit fixes (a90b56b)
- pre-commit fixes (46f9296)
- pre-commit fixes (2de0876)
- add semantic-release workflow and fix changelog docs (beca77d)
- use RELEASE_TOKEN for semantic-release branch protection bypass (51669d2)
- TEA Platform refactoring plan for modernising infrastructure
- Comprehensive versioning and release strategy documentation
- GitHub Container Registry migration strategy
- Planning migration from Docker Hub to GitHub Container Registry (ghcr.io)
- Directory naming conventions from EAP to TEA branding
- Semantic versioning implementation
- Automated release process via GitHub Actions
- Container image tagging with semantic versions
- Updated from EAP (Ethical Assurance Platform) to TEA (Trustworthy and Ethical Assurance) branding
- Migrated container registry from Docker Hub to GitHub Container Registry
- 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
- 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
- Django 5.1.11 backend
- Next.js 15 frontend with React 19
- Docker Hub container hosting
- Azure App Service hosting
- Basic CI/CD pipeline
- 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