Skip to content

Releases: cgbarlow/iris

v2.7.4: Collections, Multi-Set AI Context

25 Mar 05:56
231aa07

Choose a tag to compare

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 / Set when 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/ask endpoint with set_ids[] and optional collection_id
  • build_multi_set_context() divides token budget proportionally across Sets

Infrastructure

  • New collections table with soft-delete, thumbnails, partial unique index
  • collection_id FK on sets and ai_conversations tables
  • 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

23 Mar 08:05

Choose a tag to compare

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

23 Mar 07:26
3ce00b0

Choose a tag to compare

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 togglehideDescription theme 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 entityId linkage and causal links as relationships with relationshipId (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

22 Mar 20:22

Choose a tag to compare

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/reorder endpoint 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_order field on diagrams and packages tables (migration m029/m032)

Fixed

  • Entity-to-entity relationships not displayed in diagram Relationships tab — field name mismatch elementIdentityId in relationship query (ADR-097, Issue #4)
  • Diagram relationships endpoint crash on SQLite — replaced unsupported async for cursor iteration with fetchall()
  • 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

22 Mar 18:42

Choose a tag to compare

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 creationtotal_pages field in JSON output for accurate progress tracking
  • Auth session persistence — refresh token restored on page reload, auto-refresh on 401

Infrastructure

  • render.yaml Blueprint 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

21 Mar 10:16
dc8bcc7

Choose a tag to compare

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

19 Mar 09:50
6414217

Choose a tag to compare

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_log tables
  • 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: bool only)
  • 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

19 Mar 07:25
dd74ae0

Choose a tag to compare

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

09 Mar 22:41

Choose a tag to compare

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 hideExit prop 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

10 Mar 00:13

Choose a tag to compare

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
  • borderStyle support 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