Releases: cgbarlow/iris
Releases · cgbarlow/iris
v2.7.4: Collections, Multi-Set AI Context
What's New
Collections (ADR-102)
- Collections — higher-level grouping for Sets with full CRUD, thumbnails, and dashboard stats
- 4-column dashboard: Collections | Sets | Diagrams | Elements
- Header breadcrumb:
Iris / Collection / Setwhen both active - Collection pill badges on Sets page (list + gallery views)
- Collection filter dropdown on Diagrams and Elements pages
- Collection assignment on Set detail/edit page
Multi-Set AI Context
- Ask AI multi-set selector — dropdown with checkboxes to select 1+ Sets as context
- Collection-aware filtering — selecting a Collection pre-selects all its Sets
- New
POST /api/ai/askendpoint withset_ids[]and optionalcollection_id build_multi_set_context()divides token budget proportionally across Sets
Infrastructure
- New
collectionstable with soft-delete, thumbnails, partial unique index collection_idFK onsetsandai_conversationstables- Active collection store (session-persisted, auto-inferred from active set)
- 16 new backend tests (792 total, 0 failures)
Full Changelog: v2.7.3...v2.7.4
v2.7.3
v2.7.3 — AI Diagram Location Picker Fix
Bug Fix
- AI diagram creation now always asks where to place diagrams — previously, auto-apply skipped the location picker if the AI didn't use exact trigger phrases, placing diagrams at the set root without user input
- Broadened
isAwaitingGenerationConfirm()keyword matching to catch more AI phrasing variations ("shall I", "ready to generate", "proceed with", "want me to", etc.)
Database Fixes (UAT)
- Backfilled element-backed nodes for 12 DoView diagrams in the Tramping set (109 elements, 83 relationships)
- Reproduced 6 ADR-100 compliant DoView seed diagrams in the Default set with 28 elements, 19 relationships, and cross-diagram reuse
v2.7.2
What's Changed
Added
- Visual Toggles settings section — user-controlled display preferences for diagram nodes (ADR-101)
- Element count badge — optional top-right badge on nodes showing how many diagrams each element is used in
- Hide description toggle —
hideDescriptiontheme rendering option; DoView defaults to hidden, per-node override in edit sidebar
Changed
- DoView element-backed nodes — all DoView diagram nodes now created as proper elements with
entityIdlinkage and causal links as relationships withrelationshipId(ADR-100) - AI diagram creation (
create_diagrams_from_ai) now materialises element and relationship records for every node and edge
Fixed
- Double borders on DoView nodes
- Stale seed test assertions for diagram count after DoView diagrams were added in v2.6.0
Full Changelog: v2.7.1...v2.7.2
v2.7.1
What's Changed
Added
- Diagram sequence order — user-controllable ordering of diagrams and packages in the navigation hierarchy tree (ADR-098, Issue #7)
PUT /api/diagrams/reorderendpoint for reordering diagrams/packages within a parent group- Drag-and-drop reordering in the dashboard hierarchy tree with visual drop indicators
- Reorder toggle button on dashboard — enables/disables drag mode
- Cross-package drag support — move items between packages
sequence_orderfield on diagrams and packages tables (migration m029/m032)
Fixed
- Entity-to-entity relationships not displayed in diagram Relationships tab — field name mismatch
elementId→entityIdin relationship query (ADR-097, Issue #4) - Diagram relationships endpoint crash on SQLite — replaced unsupported
async forcursor iteration withfetchall() - DoView seed builder functions missing positional arguments — startup crash on fresh database
Full Changelog: v2.6.0...v2.7.1
v2.7.0 — Render + Supabase Cloud Deployment
v2.7.0 — Render + Supabase Cloud Deployment
Highlights
- Optional Render + Supabase deployment (ADR-094, ADR-096) — cloud deployment path alongside the default SQLite self-hosted mode
- Row Level Security on all 34 Supabase tables with deny-all strategy (ADR-095)
- ES256 JWT verification via Supabase JWKS endpoint (supports new ECC P-256 signing keys)
- Docker-based backend on Render with mdbtools + libcairo2 for .eap import and SVG thumbnails
- SupabaseAdapter — unified DatabasePort abstraction with automatic SQLite→PostgreSQL query conversion (placeholders, booleans, datetime, INSERT OR IGNORE/REPLACE)
- DoView seed diagrams updated to 6-page Iris System DoView (v7)
- AI diagram creation —
total_pagesfield in JSON output for accurate progress tracking - Auth session persistence — refresh token restored on page reload, auto-refresh on 401
Infrastructure
render.yamlBlueprint with static site (frontend) + Docker web service (backend, Singapore region)- 31 PostgreSQL migrations (
backend/app/migrations/supabase/) - Deployment guide:
docs/deployment-render-supabase.md - Seed default themes and views in Supabase startup
Full changelog
See CHANGELOG.md for complete details.
v2.6.0 — DoView Notation + AI Diagram Creation
What's New
DoView Notation (Part A)
- Fifth notation: DoView outcomes-based theory of change (DoViewPlanning.org)
- Entity types: outcome_box, final_outcome, overview_tile, source_reference
- Edge type: causal_link (grey, straight lines, center-to-center routing)
- 10-color theme with word-wrap and centered text
- Seed example diagrams (Overview, Final Outcomes, Outcomes Map)
AI Diagram Creation (Part B)
- Multi-turn guided conversation following original DoView SKILL.md methodology
- 6 setup questions → subpage structure checkpoint → detailed content with "This-Then" logic → JSON generation
- Layered system prompts (base/notation/diagram_type/override) stored in DB, admin-editable
- Silent JSON generation with real-time progress animation ("Building page 3 of 11…")
- Package location picker before creation with hierarchy tree view
- Auto-apply and navigation to created diagram on completion
- Stop button for streaming, conversation history with thread grouping
Admin & UX Improvements
- Settings reorganized into tabbed layout: General | Themes | AI
- Session timeout silently auto-refreshes when user is active (no more interruptions)
- AI debug logging toggle in admin settings
- Conversation history sidebar with Discuss/Create mode badges
- PackagePicker rewritten with hierarchy tree, search, and inline package creation
- DoView in all notation selectors (elements, diagrams, entity dialog)
🤖 Generated with Claude Code
v2.5.0 — AI Model Management & Set Q&A
What's New
AI Model Management (ADR-093)
- Multi-provider LLM support — OpenAI, Anthropic, Ollama, LM Studio, OpenRouter, and custom endpoints
- Admin AI Providers page (
/admin/ai) — add/edit providers with API key (password field), test connection, set default - Ask AI page (
/ask) — dedicated chat-style Q&A with Set selector in main navigation - SSE streaming — responses stream token-by-token with animated thinking indicator
- Markdown rendering — AI responses rendered with full markdown support (code blocks, tables, lists)
- Copy to clipboard — one-click copy on any AI response
- Clear conversation — reset chat without leaving the page
- Context builder — automatically builds structured LLM prompts from Set elements, relationships, and diagrams
Seed Data
- 4 new AI module elements, 8 relationships, and "AI Module Architecture" diagram
- AI Module navigation tile on the Iris Navigation overview
Backend
backend/app/ai/module — client abstraction, service layer, FastAPI router, Pydantic models- Migration m026 —
ai_providers,ai_conversations,ai_usage_logtables - Retry logic with exponential backoff on network/5xx errors
- 54 backend tests (models, client, service, context)
Security
- API keys stored in DB, never returned by API (
has_api_key: boolonly) - DOMPurify sanitization on all AI-generated HTML (Protocol 7)
- Admin-only provider management, all calls logged to usage table + audit trail
v2.4.2 — NodeStylePanel Font Controls & NavigationCell Faithful Rendering
What's Changed
Added
- Title/description font controls in NodeStylePanel (separate colour, size, bold, italic for title vs description)
- Icon colour picker in NodeStylePanel
- Theme-aware fallback chain (per-element → theme → CSS fallback) in NodeStylePanel
Changed
- NavigationCellNode refactored for faithful EA card rendering
- NodeStylePanel split into Node, Title Font, and Description Font sections
- Import service auto-detects navigation-cell-dominated diagrams as
free_form/simple - iris-default-simple theme seeds navigation_cell element defaults
Fixed
- Parent package validation on diagram creation (clears invalid parent_package_id)
- ArchiMate/UML renderer visual override propagation
- Sequence viewport edge case
v2.4.1 — Comments Sidebar, Live Edit Preview & UX Polish
Highlights
- Comments sidebar — comments moved from page bottom to a toggleable right sidebar with badge count, username display, and relative timestamps
- Live edit preview — element name, description, and type changes reflect on canvas instantly as you edit
- Fullscreen hierarchy — hierarchy sidebar available in fullscreen mode (browse and edit) with search/filter
- Canvas alignment — canvas bottom edge aligned pixel-perfect with hierarchy sidebar, no page scrollbar
What's Changed
Added
- Comments sidebar with toggle button (visible in browse mode, hidden in edit mode)
- ElementEditPanel and NodeStylePanel in edit-mode canvas sidebar
- Unsaved changes confirmation dialog on mode switch
- Diagram relationships API and diagram links migration
- Hierarchy sidebar in fullscreen with scroll position persistence
- Relationship indicator dot on Relationships tab
- Comment username resolution via backend JOIN
- Relative timestamp formatting for comments
- Themes admin nav link
areThemesLoaded()for conditional eager loading
Changed
- Canvas height
calc(100vh - 317px)aligned with hierarchy sidebar - Sequence toolbar uses SvelteFlow-style SVG icons
- ThemeSelector groups themes by notation
discardChanges()reloads from API for clean state- FocusView
hideExitprop for sidebar interactions
Fixed
- Comments showed user GUID instead of username
- Comment timestamps showed raw ISO format
- Canvas bottom overflowed viewport
- Page scrollbar despite content fitting
See CHANGELOG.md for full details.
🤖 Generated with Claude Code
v2.4.0 — C4 Hybrid Notation, Version Rollback & NotationPills
Highlights
- C4 hybrid visual notation — canonical colours and inline SVG type glyphs for all C4 element types (ADR-092)
- Version history rollback — restore any previous version of a diagram or element with confirmation UI
- NotationPills — clickable pill-style notation selector replacing dropdown menus
What's Changed
Added
- C4 hybrid visual notation with canonical colours and inline SVG type glyphs (ADR-092)
- C4TypeGlyph and C4TypePicker components for rich C4 type selection
borderStylesupport in theme system (NodeVisualOverrides, visualStyles, themeStore)- C4 default theme seed with canonical colours (green person, blue system, red external) and dashed borders
- NotationPills component — clickable pill notation selector replacing dropdowns
- Version history restore/rollback UI with confirmation for elements and diagrams
- Diagram rollback API endpoint (
POST /api/diagrams/{id}/rollback) - Eager theme loading to prevent flash on diagram page
Changed
- C4Renderer uses inline SVG glyphs instead of Lucide icons
- NodeStylePanel uses C4TypePicker for C4 notation nodes
- EntityDialog renamed "Create Entity" → "Create Element", uses NotationPills and C4TypePicker
- DiagramDialog uses NotationPills instead of notation dropdown
- Element detail page uses C4TypePicker in edit mode, C4TypeGlyph in view mode
- Edit mode badge styling: dark bg with white text (light theme), inverted for dark theme
- Center-to-center edge connections default to straight line routing
- Smoothstep edges use borderRadius=20, bezier edges use curvature=0.4
- Connection handle dots hidden in browse mode
Fixed
- Theme loading flash on diagram page initial load
- ThemeSelector no longer lazy-loads themes (loaded eagerly by page)
See CHANGELOG.md for full details.
🤖 Generated with Claude Code