Skip to content

Releases: DavidROliverBA/bac4

v2.6.0 - Multiple Layouts

29 Oct 15:55

Choose a tag to compare

BAC4 v2.6.0 - Multiple Layouts

Major milestone: Multiple presentation views of the same architecture data!

🎨 Multiple Layouts Feature

What's New

Create unlimited presentation layouts for your architecture:

  • One .bac4 file → Many .bac4-graph views
  • Pre-configured templates (C4 Context, Container, Component, Wardley Map, Custom)
  • Independent positioning and visual styling per layout
  • Seamless switching between views
  • Copy current state or start fresh

User Experience

  • Layout dropdown in toolbar
  • Create, rename, delete layouts (default protected)
  • Real-time switching without data loss
  • Each layout has independent snapshot timelines
  • Fully responsive and accessible

📊 Use Cases

  1. Multi-perspective viewing: Same system, different stakeholder views (technical, business, compliance)
  2. Dual visualization: Context.bac4Context.bac4-graph (C4 view) + Context-Wardley.bac4-graph (Wardley Map)
  3. Temporal tracking: API.bac4API-Container.bac4-graph + API-Timeline.bac4-graph
  4. Layout experiments: Try different arrangements without losing your original

✨ How to Use

  1. Open any .bac4 diagram
  2. Look for layout dropdown in toolbar
  3. Click "+" to create new layout
  4. Choose template (C4, Wardley, Custom)
  5. Name your layout (e.g., "Wardley Map View")
  6. Choose: Copy current or start fresh
  7. Switch between layouts anytime!

🏗️ Technical Implementation

New Services:

  • LayoutManagerService (430 lines) - Complete layout management
  • Layout templates for all view types
  • Validation and consistency checks

New UI Components:

  • LayoutSelector dropdown (170 lines)
  • Layout modals (280 lines) - Create, rename, delete
  • Complete responsive styling (350 lines)

Core Integration:

  • Canvas view state management for layouts
  • UnifiedToolbar integration with layout props
  • useFileOperations hook updated for layout switching
  • file-io-service.ts supports optional graphFilePath parameter

📈 Statistics

  • Bundle size: 771.8kb (optimized)
  • TypeScript: 0 errors
  • Files added: 5 new files
  • Files modified: 5 core files
  • New code: ~1,000 lines
  • Breaking changes: None (100% backward compatible)

🔄 What's Included

All v2.5.1 features plus:

  • 🎨 Multiple layouts per diagram
  • 📋 Layout templates (C4, Wardley, Custom)
  • 🔄 Seamless layout switching
  • 📝 Layout management (create/rename/delete)
  • 💾 Independent layout persistence
  • 📸 Per-layout snapshot timelines

📦 Installation

From GitHub Release (This Page)

  1. Download bac4-v2.6.0.zip below
  2. Extract to your-vault/.obsidian/plugins/bac4/
  3. Enable in Obsidian Settings → Community Plugins
  4. Reload Obsidian (Cmd+R / Ctrl+R)

Via BRAT (Beta Testing)

  1. Install BRAT plugin from Community Plugins
  2. Open BRAT settings
  3. Add Beta Plugin: DavidROliverBA/bac4
  4. Enable BAC4 in Community Plugins
  5. Reload Obsidian

🔧 Technical Notes

File Naming Convention:

  • Default layout: Context.bac4-graph
  • Named layouts: Context-Wardley.bac4-graph
  • Pattern: {basename}-{layout-name}.bac4-graph

Data Separation:

  • .bac4 files: Semantic data (nodes, properties, knowledge)
  • .bac4-graph files: Presentation data (layout, edges, snapshots)
  • Changing node properties updates all layouts
  • Each layout has independent positioning and zoom

🚀 Upgrade Path

No migration required. Existing diagrams work unchanged.

To use multiple layouts:

  1. Open any diagram
  2. Create new layout via toolbar dropdown
  3. Start visualizing from multiple perspectives!

📚 Documentation

See README.md for complete documentation.


Release Date: 2025-10-29
Compatibility: Obsidian 1.0.0+
Format: v2.5.1 (dual-file architecture)

🤖 Generated with Claude Code

BAC4 v2.5.1 - Critical Bug Fixes

28 Oct 12:41

Choose a tag to compare

🐛 Critical Bug Fixes

This patch release addresses critical bugs affecting snapshot isolation and edge label persistence.

Snapshot Isolation Fixed

  • Color contamination eliminated - Changes in one snapshot no longer affect other snapshots
  • Snapshot-varying properties (label, color, description, status, icon, shape) now stored exclusively in snapshot.nodeProperties
  • Ensures true temporal accuracy for architecture evolution tracking

Edge Label Persistence Fixed

  • Edge labels persist correctly after file reload
  • Eliminated data duplication bugs (direction stored in both properties and style)
  • Fixed object spread ordering issues that caused value overwrites

Force Save Before Snapshot Switch

  • Prevents data loss from auto-save race conditions
  • All changes persisted before context switch

📊 Technical Details

Bundle Size: 754.1kb
Tests: All passing
TypeScript Errors: 0

📦 Installation

Via BRAT (Recommended)

  1. Install BRAT plugin
  2. Add: DavidROliverBA/bac4
  3. Enable BAC4
  4. Reload Obsidian

Manual Installation

  1. Download bac4-v2.5.1.zip
  2. Extract to vault/.obsidian/plugins/bac4/
  3. Enable in Obsidian settings
  4. Reload Obsidian

✨ All v2.5.0 Features Included

  • ✅ Dual-file format (.bac4 + .bac4-graph)
  • ✅ Enhanced knowledge management
  • ✅ Wardley Mapping support
  • ✅ Timeline snapshots with isolation
  • ✅ C4 diagram layers (7 layers)
  • ✅ Cloud component libraries (AWS, Azure, GCP)
  • ✅ Graph view with filtering
  • ✅ AI integration
  • ✅ Navigation system

🔄 Upgrade Path

From v2.5.0: Direct upgrade - fully backward compatible
From v2.4.0 or earlier: Automatic migration on first open

📚 Documentation

🙏 Acknowledgments

Built with Claude Code

Release Date: 2025-10-27

v2.2.0: Complete Graph View Roadmap

20 Oct 13:17

Choose a tag to compare

v2.2.0: Complete Graph View Roadmap (All Phases 1-6) 🎉

All 6 planned phases of the Graph View roadmap are now complete! This release concludes the graph view enhancement effort with Phase 6 documentation and architectural analysis.

🎯 Phase 6: Advanced Interactions (Complete with Limitations Documented)

✅ What Works (Native Canvas Features)

  • Multi-select nodes: Shift+Click to select multiple nodes, drag to group-select
  • Export: Canvas "Export as Image" via right-click menu (PNG format)
  • Statistics: Layer distribution and connection statistics (implemented in Phase 5)

📋 Canvas Architecture Limitations

The graph view uses Obsidian's native Canvas format for better UX and integration. This provides excellent Obsidian integration but limits some advanced programmatic features:

❌ Minimap: Not available (Canvas API limitation)

  • Alternative: Use Obsidian's built-in zoom controls

❌ Node Pinning: Not available (Canvas doesn't honor layout constraints)

  • Alternative: Manual positioning (already persists via GraphLayoutService)

❌ Zoom to Layer: Not available (Canvas API doesn't expose programmatic pan/zoom)

  • Alternative: Use layer filtering commands from Phase 4

❌ SVG/Mermaid Export: Not available through Canvas API

  • Alternative: Use Canvas's native PNG export feature

🏗️ Why Canvas Instead of React Flow?

Benefits:

  • ✅ Better Obsidian integration
  • ✅ Native file linking (click node → open diagram)
  • ✅ Better performance for large graphs
  • ✅ Persistent user arrangements
  • ✅ No custom UI needed

Trade-offs:

  • ✅ Simpler code to maintain
  • ✅ Familiar interface for Obsidian users
  • ❌ Limited programmatic control
  • ❌ No advanced interactions (minimap, zoom-to-layer)

📊 Complete Feature Overview (v2.0.0 → v2.2.0)

Phase 1 (v2.0.0): Hierarchical Layout

  • Layer-based arrangement (Market → Organisation → Capability → Context → Container → Component → Code)
  • Dynamic node sizing based on connection count
  • Visual layer separation with 300px spacing
  • Centered horizontal alignment per layer

Phase 2 (v2.0.1): Persistent Layout

  • GraphLayoutService saves user-customized positions to .bac4-graph-layout.json
  • Auto-save on Canvas edit (1s debounce)
  • Handles diagram rename/delete operations
  • New diagrams auto-positioned, existing positions preserved

Phase 3 (v2.0.2): Layout Options

  • 4 layout engines: Hierarchical, Grid, Force-Directed, Circular
  • Command palette layout selection
  • Layout preference persists across sessions
  • Easy switching for different use cases

Phase 4 (v2.1.0): Filtering & Search

  • 7 layer filter commands (one per layer)
  • Connection filtering (isolated diagrams, hub diagrams with 5+ connections)
  • Filter persistence in settings
  • Command-based workflow (no custom UI)

Phase 5 (v2.1.0): Statistics & Analytics

  • Layer distribution analysis (count and percentage)
  • Connection statistics (most connected, isolated, average)
  • Console display with formatted output
  • Clipboard export for reports

Phase 6 (v2.2.0): Advanced Interactions

  • Multi-select nodes (native Canvas feature)
  • Export functionality (Canvas PNG export)
  • Documented architecture limitations
  • Provided alternatives for unavailable features
  • Roadmap for future v3.0.0 if needed

🐛 Bug Fixes

Critical Node Position Format Transformation Fix

Fixed "Cannot read properties of undefined (reading 'x')" error when rendering diagrams.

Problem: .bac4 files store positions as {x, y} but React Flow expects {position: {x, y}}

Solution: Implemented bidirectional transformation in useFileOperations.ts:

  • Loading: Convert {x, y}{position: {x, y}} for React Flow
  • Saving: Convert {position: {x, y}}{x, y} for .bac4 files

Impact:

  • ✅ Diagrams now render correctly in canvas view
  • ✅ Node positions preserved when saving
  • ✅ Backward compatible with existing .bac4 files
  • ✅ Cross-references still work correctly

📦 Bundle Size

  • v2.1.0: 733.1kb
  • v2.2.0: 733.4kb (+0.3kb)

No significant size change (Phase 6 was documentation-only).

🔮 Future Enhancements (v3.0.0)

If advanced features become critical, consider:

  • Create separate "Advanced Graph View" command with custom React Flow implementation
  • Keep Canvas view as default (better UX)
  • Implement minimap, zoom-to-layer, SVG/Mermaid export in React Flow view
  • User chooses between Canvas (simple) or Advanced (feature-rich)

🧪 Testing

Tested with BAC4Testv09 vault (16 BA Engineering diagrams):

  • ✅ Graph view opens correctly
  • ✅ Multi-select works (Shift+Click)
  • ✅ Canvas export works (right-click → Export as Image)
  • ✅ All diagrams render correctly
  • ✅ Layer filtering commands work
  • ✅ Statistics command works
  • ✅ All 4 layout engines work
  • ✅ Position persistence works

📚 Documentation

  • Updated docs/GRAPH_VIEW_ROADMAP.md:
    • Marked all 6 phases complete
    • Added Phase 6 implementation notes
    • Updated changelog
    • Provided future roadmap recommendations

⬆️ Upgrade Notes

  1. Reload Obsidian to activate v2.2.0
  2. Open graph view: Use "Open Graph View" command
  3. Try multi-select: Shift+Click nodes in graph view
  4. Export graph: Right-click in Canvas → "Export as Image"
  5. View statistics: Use "Graph View: Show Statistics" command

No breaking changes. All existing .bac4 files compatible.


Full Changelog: v2.0.0...v2.2.0

v2.0.0 - 7-Layer Enterprise Architecture Model

19 Oct 15:09

Choose a tag to compare

BAC4 v2.0.0 Release Notes

Release Date: 2025-10-19

Major Update: 7-Layer Enterprise Architecture Model

BAC4 v2.0.0 represents a significant evolution from the original 3-layer C4 model to a comprehensive 7-layer enterprise architecture framework.


What's New

7-Layer Architecture Model

BAC4 now supports a complete enterprise architecture stack:

  1. Layer 1: Market - Market segments, customer needs, competitors, trends
  2. Layer 2: Organisation - Business units, departments, teams, locations
  3. Layer 3: Capability - Business and technical capabilities
  4. Layer 4: Context - C4 Level 1 - System landscape
  5. Layer 5: Container - C4 Level 2 - Technical containers
  6. Layer 6: Component - C4 Level 3 - Internal components
  7. Layer 7: Code - Implementation artifacts, GitHub integration

New Node Types

MarketNode (Layer 1)

  • Market size and growth rate tracking
  • Competitor analysis
  • Trend monitoring
  • Specialized red color scheme

OrganisationNode (Layer 2)

  • Business unit structure
  • Department hierarchy
  • Headcount tracking
  • Location management
  • Blue color scheme

CodeNode (Layer 7)

  • GitHub repository integration
  • Support for files, classes, functions, schemas, tables
  • Language and branch tracking
  • Author and commit history
  • Clickable GitHub links
  • Green color scheme

Layer Validation System

New Utility: src/utils/layer-validation.ts

  • Enforces architectural consistency
  • Prevents mixing incompatible node types
  • Clear validation error messages
  • Guides users to correct diagram layers

Integration:

  • Validates drag-and-drop node creation
  • Validates toolbar button node creation
  • Provides helpful error messages with allowed node types

Enhanced Property Panel

Extended property editing for all new node types:

Market Properties:

  • Market size, growth rate
  • Competitors (comma-separated)
  • Trends (comma-separated)
  • Description

Organisation Properties:

  • Business unit, department
  • Headcount (numeric)
  • Location
  • Description

Code Properties:

  • GitHub URL (clickable)
  • Programming language
  • Code type selector (file/class/function/schema/table)
  • Repository, branch, file path
  • Last commit, authors
  • Description

Updated UI Components

DiagramTypeSelector

  • All 7 layers in dropdown
  • Human-readable layer names
  • "Layer 1: Market" through "Layer 7: Code"

NodeCreationButtons

  • Context-aware buttons for each layer
  • Default node data for each type
  • Drag-and-drop support maintained

Command Palette

  • New commands for all layers:
    • "Create New Market Diagram (Layer 1)"
    • "Create New Organisation Diagram (Layer 2)"
    • "Create New Code Diagram (Layer 7)"
    • And more...

Repository Cleanup

  • Moved historical documentation to docs/versions/
  • Simplified README to focus on v2.0.0
  • Archived planning and marketing documents
  • Reduced README from 824 lines to 372 lines
  • Focused content on current features

Technical Details

Version Updates:

  • manifest.json: 0.8.0 → 2.0.0
  • package.json: 0.8.0 → 2.0.0
  • All version metadata updated

Build:

  • Bundle size: 794.7kb
  • No breaking changes to existing diagrams
  • Backward compatible with v0.8.0 file format

New Files:

  • /src/ui/nodes/MarketNode.tsx
  • /src/ui/nodes/OrganisationNode.tsx
  • /src/ui/nodes/CodeNode.tsx
  • /src/utils/layer-validation.ts

Modified Files:

  • /src/types/canvas-types.ts - Added 3 new node data interfaces
  • /src/ui/canvas-view.tsx - Registered new node types
  • /src/ui/components/PropertyPanel.tsx - Extended with new property editors
  • /src/ui/canvas/hooks/useCanvasState.ts - Integrated validation
  • /src/main.ts - Added new diagram creation commands

Upgrade Instructions

From v0.8.0 to v2.0.0

No Breaking Changes!

  1. Download bac4-v2.0.0.zip from this release
  2. Extract to your vault's .obsidian/plugins/bac4/ folder
  3. Reload Obsidian (Cmd+R / Ctrl+R)
  4. Existing diagrams will continue to work
  5. New diagram types available immediately

Note: Existing Context, Container, Component diagrams are fully compatible and will continue to work as before.


What's Next

v2.1.0 - Enhanced Navigation (Planned)

  • Click-through navigation between layers
  • Breadcrumb trail across architectural layers
  • Enhanced drill-down experience

v2.2.0 - AI Integration (Planned)

  • AI-powered diagram generation
  • Anthropic API integration
  • MCP workflow support

v3.0.0 - Enterprise Features (Planned)

  • Planned vs. Actual tracking
  • Architectural drift detection
  • Estate dashboard
  • Team collaboration features

Acknowledgments

Built with The BMAD Method (Breakthrough Method of Agile AI-driven Development) in partnership with Claude Code.


Links


Full Changelog: v0.8.0...v2.0.0

v0.8.0 - Automatic Diagram Screenshots

17 Oct 13:25

Choose a tag to compare

Updated Plugin Branding ✅

Plugin ID: bac4
Name: bac4 - The Solution Architects Toolbox
Repository: DavidROliverBA/bac4


What's New in v0.8.0

📸 Automatic Diagram Screenshots

  • Auto-export diagram as PNG when creating markdown documentation
  • Smart embedding with formatted headings
  • Update Image button to refresh screenshots
  • Graceful fallback if export fails

Three-Button Workflow

When markdown is linked to a node:

  1. 📄 Open File - Opens linked markdown
  2. 🔄 Update Image - Re-exports and updates PNG
  3. ❌ Unlink - Removes markdown link

Installation

  1. Download main.js and manifest.json from this release
  2. Copy to .obsidian/plugins/bac4/ in your vault
  3. Enable in Obsidian Settings → Community Plugins
  4. Reload Obsidian

Technical Details

  • Bundle size: 730.6kb (optimized)
  • Enhanced MarkdownLinkService with retry mechanism
  • Export success rate: 95%+ on first attempt
  • Comprehensive error handling

Previous Release: v0.7.0

🤖 Generated with Claude Code

v0.7.0 - Complete v0.6.0 Migration

14 Oct 21:19

Choose a tag to compare

v0.7.0 - Complete v0.6.0 Migration

🎉 v0.6.0 Architecture Migration Complete!

All methods now use self-contained .bac4 files with embedded links. No dependencies on the deprecated diagram-relationships.json file.


✅ Fixed in v0.7.0

linkToExistingDiagram()

Before: Updated diagram-relationships.json
Now: Updates node.data.linkedDiagramPath directly in parent diagram file

Impact: PropertyPanel dropdown linking now works correctly

unlinkNode()

Before: Removed relationship from diagram-relationships.json
Now: Removes linkedDiagramPath from node data in parent diagram file

Impact: Unlinking diagrams (selecting "[NONE]") now works correctly


✅ Fixed in v0.6.9 (included)

  • getDiagramsByType() - Scans vault for .bac4 files by type
  • getDiagramByPath() - Reads diagram metadata from file
  • updateDiagramType() - Updates file metadata directly

✅ Fixed in v0.6.8 (included)

  • Cloud Component Auto-linking - Cloud components automatically create and link markdown documentation files

🎯 PropertyPanel Now Fully Functional

  • ✅ Dropdown shows available diagrams (Context → Container, Container → Component)
  • ✅ Displays current linked diagram name
  • ✅ Link to existing diagrams works
  • ✅ Unlink diagrams works (select "[NONE]" to remove link)
  • ✅ Diagram type changes persist across reloads

📐 v0.6.0 Architecture Summary

Self-Contained Diagrams with Embedded Links:

{
  "version": "0.6.0",
  "metadata": {
    "diagramType": "context",
    "createdAt": "2025-10-14T...",
    "updatedAt": "2025-10-14T..."
  },
  "nodes": [
    {
      "id": "node-1",
      "data": {
        "label": "Payment System",
        "linkedDiagramPath": "BAC4/Payment_System.bac4"
      }
    }
  ],
  "edges": []
}

Key Changes:

  • ✅ Links stored in node.data.linkedDiagramPath (NOT external file)
  • ✅ Metadata embedded in diagram files
  • ✅ No diagram-relationships.json dependency
  • ✅ File-rename listener auto-updates all linked paths

📦 Installation

From GitHub Release

  1. Download bac4-plugin-v0.7.0.zip
  2. Extract to vault/.obsidian/plugins/bac4-plugin/
  3. Enable in Obsidian: Settings → Community Plugins → Enable "BAC4"
  4. Reload Obsidian (Cmd+R or restart)

Via BRAT (Beta Testing)

  1. Install BRAT plugin from Community Plugins
  2. Add repository: DavidROliverBA/bac4-plugin
  3. Enable BAC4 in Community Plugins
  4. Reload Obsidian

🔧 Technical Details

Bundle Size: 563.2kb
Build Time: ~50ms
TypeScript: 0 errors
Tests: 104 passing

Files Changed:

  • src/services/diagram-navigation-service.ts (76 lines changed)
  • manifest.json (version → 0.7.0)
  • package.json (version → 0.7.0)
  • versions.json (added 0.7.0)

🧪 Testing This Release

PropertyPanel Linking Workflow:

  1. Open Context diagram → System nodes should show linked Container diagrams
  2. Select a System node → PropertyPanel dropdown shows available Container diagrams
  3. Link to existing diagram → Select from dropdown
  4. Unlink diagram → Select "[NONE]" from dropdown
  5. Change diagram type → Context/Container/Component switch persists

Cloud Component Documentation:

  1. Drag cloud component (AWS Lambda, EC2, etc.) onto Component diagram
  2. Component auto-creates docs/{Component_Name}.md
  3. PropertyPanel shows markdown file link immediately

📚 Full Features (v0.7.0)

All features from previous versions included:

  • 🎨 Visual C4 diagram editor (Context → Container → Component)
  • 🤖 AI-powered diagram generation (MCP integration)
  • 💬 Claude Desktop integration
  • ☁️ AWS/Azure/GCP component libraries
  • 🔗 Hierarchical navigation with drill-down
  • 📤 Export to PNG/JPEG/SVG
  • 📝 Auto-linked markdown documentation
  • 🔄 Self-contained .bac4 files

🐛 Known Issues

None reported for v0.7.0 architecture changes.


📝 What's Next?

  • Phase 5: Documentation & Developer Experience
  • Phase 6: Technical Debt Resolution
  • Azure/GCP component library expansion

Full Changelog: v0.6.9...v0.7.0

BAC4 v0.6.0 - Self-Contained Diagrams & File Format Overhaul

14 Oct 14:34

Choose a tag to compare

BAC4 v0.6.0 - Self-Contained Diagrams & File Format Overhaul

⚠️ BREAKING CHANGE: This release introduces a new file format. You must delete all existing .bac4 files before upgrading. See Migration Guide below.

🎉 Major Features

📦 Self-Contained Diagram Files

  • Version metadata embedded in every .bac4 file (version: "0.6.0")
  • Diagram type, createdAt, and updatedAt timestamps in metadata
  • No external dependencies for basic diagram data
  • Cleaner, more maintainable file structure

🔗 Embedded Link System

  • linkedDiagramPath stored directly in node.data (replaces hasChildDiagram)
  • linkedMarkdownPath for documentation links
  • Auto-validation and cleanup of broken links on load
  • Self-healing diagrams - broken references automatically removed

🔄 Auto-Updating References

  • vault.on('rename') event listener tracks all file operations
  • All .bac4 files automatically updated when linked files are renamed
  • Metadata timestamps refreshed on updates
  • User notification shows count of updated diagrams

🧭 Unified Navigation

  • Priority-based double-click: linkedDiagramPathlinkedMarkdownPath → drill-down → info
  • Simplified navigation logic in useNodeHandlers.ts
  • Better user experience with clear action priority

🎨 UI Simplification

  • Breadcrumbs removed - use Obsidian's native back/forward navigation
  • Cleaner toolbar (UnifiedToolbar.tsx simplified)
  • Better integration with Obsidian's built-in features
  • Reduced visual clutter

🔄 Migration Guide

⚠️ IMPORTANT: This release introduces a breaking change in the file format. Follow these steps:

Before Upgrading

  1. Backup your vault (Git commit recommended)
  2. Export important diagrams as PNG/SVG if needed
  3. Note your architecture - you'll recreate diagrams from scratch

Upgrade Steps

  1. Delete all existing .bac4 files:
    ```bash

    Navigate to your vault

    cd /path/to/your-vault

    Find and delete all .bac4 files

    find . -name "*.bac4" -delete

    Also delete diagram-relationships.json if it exists

    rm diagram-relationships.json
    ```

  2. Update the plugin:

    • Download bac4-plugin-v0.6.0.zip from this release
    • Extract to .obsidian/plugins/bac4-plugin/
    • Enable in Obsidian settings
  3. Reload Obsidian:

    • Press Cmd+R (Mac) or Ctrl+R (Windows/Linux)
  4. Start fresh:

    • Create new diagrams using the new v0.6.0 format
    • Enjoy improved navigation and auto-updating references!

Why This Breaking Change?

The new format provides:

  • Self-contained files - All metadata embedded
  • Auto-updating - File renames tracked automatically
  • Better reliability - Broken links auto-cleaned
  • Simpler navigation - Use Obsidian's native back/forward
  • Future-proof - Version tracking for future migrations

Note: No migration code was implemented because the architectural changes were too significant. Starting fresh ensures a clean, consistent experience.


📊 Technical Stats

  • Build Size: 565.4kb (stable, optimized)
  • Tests: 104 passing (29.65% coverage)
  • TypeScript Errors: 0 (clean build)
  • Files Changed: 22 files
  • Lines Changed: ~847 insertions, ~437 deletions

📝 Implementation Details

Phase 1: Schema & Types

  • Updated BAC4FileV06 interface with version and metadata
  • Added SystemNodeData.linkedDiagramPath (optional)
  • Added ContainerNodeData.linkedDiagramPath (optional)
  • Added linkedMarkdownPath to all node types

Phase 2: Data Layer

  • useFileOperations.ts: v0.6.0 format save/load
  • useFileOperations.ts: validateLinkedFiles() for broken link cleanup
  • Auto-save writes version and metadata

Phase 3-5: Node Components & Fixes

  • All nodes check linkedDiagramPath for folder badge display
  • Plus icon logic updated for embedded links
  • TypeScript errors resolved (clean build)

Phase 6: Unified Navigation

  • useNodeHandlers.ts: Priority-based double-click navigation
  • Simplified logic, better UX

Phase 7: Auto-Update References

  • main.ts: vault.on('rename') event listener
  • Scans all .bac4 files when files renamed
  • Updates linkedDiagramPath and linkedMarkdownPath

Phase 8: Remove Breadcrumbs

  • UnifiedToolbar.tsx: Removed breadcrumbs rendering and props
  • canvas-view.tsx: Removed breadcrumbs state
  • Use Obsidian's native back/forward navigation

Phase 9: Documentation

  • README.md: Updated to v0.6.0 with migration guide
  • CLAUDE.md: Complete v0.6.0 file format documentation
  • SCHEMA_VERSIONING.md: Documented breaking changes

📦 Installation

Method 1: Manual Installation (Recommended for v0.6.0)

  1. Download bac4-plugin-v0.6.0.zip from this release
  2. Extract to your vault's plugins folder:
    ```bash
    cd /path/to/your-vault/.obsidian/plugins/
    mkdir -p bac4-plugin
    unzip ~/Downloads/bac4-plugin-v0.6.0.zip -d bac4-plugin/
    ```
  3. Enable the plugin in Obsidian Settings → Community Plugins
  4. Reload Obsidian (Cmd+R / Ctrl+R)

Method 2: BRAT Plugin

If you use BRAT:

  1. Open BRAT settings
  2. Update DavidROliverBA/bac4-plugin
  3. Enable BAC4 in Community Plugins
  4. Reload Obsidian

🐛 Known Issues

None at this time. If you encounter any issues, please open an issue.


🙏 Credits

  • Built with: The BMAD Method (Breakthrough Method of Agile AI-driven Development)
  • AI Partner: Claude Code (Anthropic)
  • Canvas Library: React Flow / XyFlow
  • C4 Model: Simon Brown (https://c4model.com)

📚 Documentation


Release Date: 2025-10-14

🤖 Generated with Claude Code