Roadmap - banisterious/obsidian-charted-roots GitHub Wiki

Roadmap

This document outlines planned features for Charted Roots. For completed features, see Release History. For version-specific changes, see the GitHub Releases.


Table of Contents


Completed Features

For the complete list of implemented features, see Release History.

Version Feature Summary
v0.20.33 GEDCOM Field Coverage Full import/export for 16+ GEDCOM fields: name components, person attributes, burial, death cause, AGE, family events. #316 (citation metadata) still open
v0.20.26 Book & Narrative Compilation Compile reports, visual trees, vault notes into single PDF/ODT documents with TOC, bibliography, name index
v0.20.25 Research Timeline charted-roots-research-timeline code block with table, heatmap, and timeline views with gap detection
v0.20.18 Entity Profile View Auto-syncing sidebar with collapsible sections for all 5 entity types, inline editing, pin/unpin, breadcrumb navigation, state persistence
v0.20.17 Structured Role Lists roles property on org notes with autocomplete picker, per-type defaults, and 3-level ordering fallback
v0.20.17 Mills-Aligned Source Classification Three independent classification axes from Evidence Explained: source, information, and evidence classification
v0.20.3 Map View Marker Layering Place markers now use hollow circles and render below event markers for visual distinction
v0.20.0 Control Center Modularization 9 dockable sidebar views (People, Places, Events, Sources, Organizations, Relationships, Universes, Collections, Data Quality) with filter/sort/search, auto-refresh, and state persistence
v0.19.19 Inheritance & Succession Tracking Track ownership changes, property transfers, and succession through event notes with dedicated UI
v0.19.18 Organization Member Management Manage organization memberships via context menu with multi-select person picker and inline editing
v0.19.17 Unified Place Lookup Query Wikidata, GeoNames, and Nominatim from a single interface to create place notes with coordinates and hierarchies
v0.19.16 Person Roles in Sources Track roles (witness, informant, official, etc.) on source notes with modal UI, dynamic block, and Sources by Role report
v0.19.15 Event Type Icons Display Lucide icons for event types in timelines and map popups with configurable display modes
v0.19.14 Multi-Spouse Visual Cues Circled spouse numbers (β‘ β‘‘β‘’) on family chart edges clarify multi-spouse relationships
v0.19.13 GEDCOM Media Import Import media references (OBJE records) from GEDCOM files with path resolution and vault validation
v0.19.11 Research Workflow Phase 1 GPS-aligned research entity types with Statistics Dashboard integration

See Release History for earlier releases.


Planned Features

Features are prioritized to complete the data lifecycle: import β†’ enhance β†’ export/share.

Priority Label Description
⚑ High Core workflow Completes essential data portability
πŸ“‹ Medium User value Highly requested sharing/output features
πŸ’‘ Low Specialized Advanced use cases, niche workflows

GPS Research Workflow Integration

Priority: πŸ“‹ Medium β€” Supports GPS methodology for serious genealogists

Status: βœ… Phase 1 complete | βœ… Phase 2 Needs-Research Tagging complete | βœ… Phase 3 mostly complete (3/4 items shipped)

GitHub Issue: #145 (consolidates #124, #125)

Summary: Enable genealogists to manage research workflow using GPS (Genealogical Proof Standard) methodology with support for research projects, reports, individual research notes, and research journals.

Phase 1 β€” Foundation (Complete):

See Research Workflow Phase 1 (v0.19.11) for implementation details.

Phase 2 β€” Workflow Integration:

Feature Description Status
Needs-research tagging needs_research property on person/event/place notes with Data Quality integration βœ… Complete
Research log entry form Modal for adding structured log entries (date, source, result, notes) Planned
IRN auto-generation "Create Person with Research Note" command generates paired person + IRN files Deferred
IRN refresh "Refresh IRN from Sources" command updates auto-generated sections Deferred
Breadcrumb navigation Visual breadcrumb trail at top of research notes following up property chain Deferred

Phase 3 β€” Advanced Features (Future):

Feature Description Status
Negative findings view Query view surfacing all result: negative entries across projects βœ… Complete (#287, v0.20.23)
Research timeline Visual timeline of research activities with gap detection βœ… Complete (#293, v0.20.25)
Cross-project queries "Find related research" command and Profile View section βœ… Complete (#303, v0.20.34)
Templates/Bases Ready-to-use Bases templates for all research entity types βœ… Complete (v0.20.16)

Export & Citations (Separate):

Export features discussed in #145 are tracked separately:

  • Footnote preservation in PDF/ODT exports
  • Table formatting options
  • Research Report export type

Documentation:


Timelines and Calendars

Three related directions for how Charted Roots handles time β€” an interactive pan/zoom timeline view, integration with the Calendarium plugin for worldbuilders using fictional calendars, and an inline life-events family that lets users surface discrete per-person events on the timeline block without creating separate event notes. Each is scoped, prioritized, and staged independently; they're grouped here because they share the "rendering and handling time in the vault" theme.


Interactive Timeline View

Priority: πŸ“‹ Medium β€” Completes the timeline gap alongside the existing calendar view and static codeblock timelines

Status: πŸ“ Planning β€” see Interactive Timeline View planning doc

GitHub Issue: #384

Summary: A new dockable workspace view that plots vault events on a horizontal time axis the user can pan and zoom. Events are color-coded by type, clickable to open their note, and groupable into swimlanes (by person, place, or universe) for worldbuilding and multi-generation genealogy. Fills the "pan/zoom interactive timeline" gap β€” today the plugin has a calendar view (monthly grid) and static codeblock timelines, but no axis-based interactive surface.

Design approach:

  • Built on vis-timeline (~200KB, BSD-2 license). Handles pan/zoom, multi-scale date axis rendering, and hit-testing β€” genuinely hard problems we don't need to re-solve.
  • Conceptual model borrowed from chronos-timeline-md (events / periods / points / markers / swimlanes), but the chronos library itself is not bundled β€” we write our own adapter from the plugin's EventNote data directly to vis-timeline, skipping the markdown DSL round-trip.

Phased delivery:

Phase Scope Status
Phase 1 β€” MVP Dockable view, flat axis with all events plotted, click to open note, toolbar with search/fit/refresh, date-precision handling (approximate / year-only / undated) Planned
Phase 2 β€” Grouping & Periods Swimlane modes (flat / by person / by place / by universe); person lifespans and organization active ranges as background periods Planned
Phase 3 β€” Filters & Polish Event type / universe / folder / date-range filters; "today" axis marker; keyboard shortcuts; empty states Planned
Phase 4 β€” Integration & Export "Open in timeline" links from Events tab and profile view; PNG / markdown export; saved view presets Planned

Out of scope (v1): Drag-to-edit, a charted-roots-interactive-timeline codeblock, native fictional-calendar axis rendering (Calendarium mapping is a separate future consideration). See the planning doc for the full decisions table.


Calendarium Integration

Priority: πŸ’‘ Low β€” Unified timeline experience for fictional worldbuilders

Status: βœ… Phase 1 complete (v0.12.0) | βœ… Phase 2 complete (v0.15.2) | Phases 3-4 planned β€” soliciting input from users of both plugins

Summary: Integration with the Calendarium plugin to share calendar definitions, eliminating duplicate configuration for worldbuilders. Designed to be invisible to users who don't need itβ€”settings default to off, and no UI changes appear unless Calendarium is installed.

Phased Approach:

  • βœ… Phase 1 (v0.12.0): Import calendar definitions from Calendariumβ€”delivers ~80% of value
  • βœ… Phase 2 (v0.15.2): Display Calendarium events on Charted Roots timelines; support date ranges (fc-end)
  • Phase 3: Bidirectional sync between plugins
  • Phase 4: Cross-calendar date translation

See Fictional Date Systems - Calendarium Integration for usage documentation and Calendarium Integration Planning Document for implementation details.


Single-Person Inline Life Events

Priority: πŸ“‹ Medium β€” Reduces event-note overhead for discrete, single-person life moments

Status: πŸ“ In scoping β€” see tracking issue #409 for the candidate list; each ships as its own small FR when prioritized.

Summary: Render discrete single-person life events directly on the charted-roots-timeline block, derived from frontmatter fields on the person note β€” without requiring a separate event note. Extends the existing inline pattern (birth, death, adoption, marriage, divorce) to a broader set of one-person-one-date-one-place moments.

Motivation: Surfaced in discussion #385. @doctorwodka noted that creating separate event notes for every discrete life moment (burial, knighting, transformation, etc.) bloats vault size without adding analytic value β€” the event is captured fine as a frontmatter date, but today only a handful of events actually render on the timeline. The goal is parity between "field recognized in frontmatter" and "field surfaces on the timeline" for single-person events.

Candidates being tracked:

  • Burial β€” existing burial_date / burial_place fields, already parsed. Implementation-ready: #408.
  • Transformation / turning β€” new field set. High-signal for worldbuilders modeling undead, lycanthropy, or ascension (separate from died, which many users reserve for permanent destruction).
  • Coming of age / initiation, knighting / ennoblement, oath-taking, ordination / consecration, exile / banishment β€” worldbuilder-oriented events with clear "one person, one date, one place" shape. Each requires a schema decision (field naming, whether a place field pairs with the date) that gets made at sub-FR time rather than upfront.

Shipping approach: Incremental per event. Each candidate graduates from the tracking FR's checkbox list to its own small FR when prioritized, following the pattern established by adoption (#396), marriage/divorce (#399), and burial (#408). No "big bang" release β€” the feature accrues one event at a time, driven by community-feedback priority.

Out of scope for now: User-defined custom single-person event types β€” @doctorwodka floated the idea during #385, but the overlap with existing event notes needs more community input before designing. Left as a discussion topic, to revisit if demand materializes.


Future Considerations

These features are under consideration but not yet prioritized.


Universe Batch Operations

Bulk operations for managing entities across universes:

  • Move entities between universes
  • Bulk universe assignment to existing entities
  • Universe merge/split tools

Import Wizard Filename Parser Enhancements

Extend the Bulk Source Image Import wizard's filename parser to recognize additional naming conventions used by genealogists:

Enumeration District / Page patterns:

  • YYYY-recordType_State_County_Locality-ED-p (e.g., 1880-census_SC_Chester_Baton-Rouge-ED37-p60)
  • Support for slave schedules: 1850-slave-schedule_VA_Henrico-ED12-p3

This pattern is already documented as a recommended naming convention but not yet recognized by the automatic parser. Benefits include:

  • Linking multiple families to the same enumeration page
  • Supporting FAN (Friends, Associates, Neighbors) research workflows
  • Better handling of enslaved ancestor research where context matters

Note: Charted Roots intentionally avoids dictating naming conventionsβ€”this would be an opt-in enhancement for users who follow the ED/page pattern.

Configurable Family Chart Card Dimensions

Independent width/height controls for family chart in-tree cards, beyond the current four built-in styles (rectangle/circle/compact/mini). Useful for very wide or very vertical trees where the default sizing trades off poorly.

Note: Reassess after #373 (couple node spacing to card width) ships β€” that fix may remove the underlying pain and obviate the need for separate dimension settings.

Source: Discussion #371.

Structural Filters for the Family Chart

Filter or highlight family chart nodes based on structural/relational criteria rather than just property values. Examples:

  • Nth child of a family (e.g. "all second sons")
  • Mth-generation descendants of a selected person
  • People within N degrees of a selected person
  • People linked by a specific relationship type to a selected person

Deliberately avoids building a general graph-query engine. Better scoped as a small set of predefined structural filters covering common worldbuilding and genealogy use cases.

Related: Builds on #379 (property-value highlight).

Source: Discussion #371.

Cross-Spouse Interleaved Child Sort

When a person has multiple spouses, sort children strictly by birth date across all mothers, rather than the current per-mother grouping. Accepts overlapping parent-child lines as a tradeoff.

Considerations:

  • Requires changes to the family-chart layout engine.
  • May reduce readability for users outside the original author β€” line crossings are precisely why per-mother grouping is the dominant family tree convention.
  • Worth confirming this is a hard requirement rather than a preference before committing to the design effort.

Source: Discussion #371 (polygamous family modeling).

Time-Varying Relationships

Relationships with effective date ranges that can flip over time β€” e.g. friendship transitioning to rivalry on a specific date. Evaluated against a selected "as-of" date from #376.

Partial substrate already exists: custom relationships carry from/to fields. This work extends that pattern so the relationship evaluation engine can resolve a person's active relationship set for any given date.

Source: Discussion #371.

Dated / Time-Varying Property Values

Property values that change over time (e.g. rank = A in 1650, B in 1680). Requires a new data model for dated property values, UI for entering timeline entries on a property, and rendering logic that resolves values against a selected "as-of" date.

The most transformative feature for worldbuilding use cases, and the largest data-model change on the roadmap. Not viable until #377 (custom property definitions) lands.

Source: Discussion #371.

Accessibility

Summary: Improve usability for users with visual, motor, or cognitive disabilities.

Already Implemented:

  • ARIA labels β€” Interactive buttons, tiles, and controls include aria-label attributes for screen readers
  • Keyboard navigation β€” Cleanup Wizard supports arrow keys, Enter/Space activation, and Escape to close (v0.18.11)
  • Focus indicators β€” Standard Obsidian focus styles on interactive elements

Planned Improvements:

  • Systematic ARIA coverage β€” Audit all modals and UI components for missing labels
  • Focus management β€” Trap focus in modals, restore focus on close
  • Skip-to-content links β€” Allow keyboard users to bypass navigation in Control Center
  • Reduced motion β€” Respect prefers-reduced-motion for animations
  • Color-independent indicators β€” Add icons/patterns alongside color for status (not just red/green)
  • High contrast mode β€” Test and adjust colors for high contrast themes

Testing Approach:

  • Screen reader testing with NVDA (Windows) and VoiceOver (macOS)
  • Keyboard-only navigation testing
  • Automated accessibility linting where feasible

Contributing

We welcome feedback on feature priorities!

  1. Check existing issues
  2. Open a new issue with feature-request label
  3. Describe your use case and why the feature would be valuable

See CONTRIBUTING.md for development guidelines.


Questions? Open an issue on GitHub.