Skip to content

Feature/099 bundle dependency resolution#2

Open
vyaas wants to merge 4 commits into
mainfrom
feature/099-bundle-dependency-resolution
Open

Feature/099 bundle dependency resolution#2
vyaas wants to merge 4 commits into
mainfrom
feature/099-bundle-dependency-resolution

Conversation

@vyaas

@vyaas vyaas commented Apr 25, 2026

Copy link
Copy Markdown
Owner

No description provided.

vyaas and others added 4 commits April 25, 2026 11:36
Replace bani_add.py's fixed-order bucket loop with a two-pass ingest
algorithm (ADR-099). Pass 1 collects all op=create items across all six
buckets and topologically sorts them by intra-bundle reference using
Kahn's algorithm (stable tiebreaker: bucket order, then authored order).
Pass 2 processes all mutations (patch/append/annotate) in authored order,
grouped by bucket. A contributor can now add a new composition inline and
attach a YouTube entry referencing it in the same bundle — the ingester
resolves the order automatically. Cycles emit a WARN log and are attempted
anyway; unresolvable items produce per-item errors naming the missing ref,
augmented with '(also missing in this bundle)' when the ref was a bundle
create. The _BUNDLE_CREATE_IDS module-level frozenset carries create-id
context to _print_result without changing every processor signature.

In entry_forms.js: add buildMusicianMiniForm (label, instrument, era,
Wikipedia URL → addToBundle('musicians', …)); register 'musician' type
in the efCombobox openMiniForm dispatcher; update the YouTube performer
combobox, guru/shishya edge combobox, and concert performer combobox to
pass type='musician' so the ➕ Add musician inline affordance is available
wherever a contributor can name a performer or edge target.

30 new tests cover _collect_create_items, _extract_refs, _topo_sort_creates
(including cycle detection), _maybe_augment_error, and _run_bundle
integration (natural order, reversed order, cycle, mutations-only, empty).
All existing 73 tests continue to pass (1 pre-existing data-integrity skip).

[ADR: ADR-099, ADR-097, ADR-083, ADR-085]
[AGENTS: carnatic-coder]

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ini-form

Rebuild artifact after adding buildMusicianMiniForm and updating three
efCombobox calls to type='musician' in entry_forms.js (ADR-099 §3).

[ADR: ADR-099]
[AGENTS: carnatic-coder]

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds a colophon block to the empty-panel tutorials in both the Bani
Flow and Musician panels. Renders five sub-blocks in fixed order:
vision (TMK-toned philosophical preface with epigraph from A Southern
Music ch. 1), curation_loop (names ADR-085's loop with monospace
diagram), contribute (GitHub repo link, quickstart ol, CONTRIBUTING.md
link), listening_ethic (LibRedirect pointer), and author (Gravatar
avatar + name/tagline). Schema version bumped 3→4 (additive — older
files without colophon remain valid). Renderer no-ops when colophon
absent. Colophon is not affected by tutorial-filter interactivity.
[ADR: ADR-102, ADR-085, ADR-086, ADR-091, ADR-098]
[AGENTS: carnatic-coder, librarian]

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replaces the operational UI docs (Guru-Shishya View, Musician Panel,
etc.) in help.md with the five colophon sections: What this is (TMK
epigraph, bani-as-relationship framing), A self-editing graph
(ADR-085 curation loop + monospace diagram), Contribute (repo link),
On listening / LibRedirect pointer, and Curator identity. The colophon
now appears in the global ? modal, which is the surface the user sees.
[ADR: ADR-102, ADR-085]
[AGENTS: carnatic-coder]

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@vyaas vyaas force-pushed the feature/099-bundle-dependency-resolution branch from 3c4a09c to e6bd28a Compare April 25, 2026 19:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant