session handover: berhtjan architecture, next steps ui adapter + dispatch #1

Closed
opened 2026-05-04 20:31:02 +02:00 by michael · 1 comment
Owner

Session Handover -- berhtjan architecture & next steps

What was done

  • berhtjan-konzept.md v0.2 written (docs/concepts/berhtjan-konzept.md)
  • Module split decided and repos created:
    • daw-modul-berhtjan-core (Git submodule, v0.1.1, 36 tests)
    • daw-modul-berhtjan-cli (Git submodule, v0.1.0, 13 tests)
    • daw-modul-berhtjan-web (.stpkg, not yet implemented)
    • daw-modul-berhtjan-desktop (.stpkg, not yet implemented)
    • daw-modul-berhtjan-api (.stpkg, not yet implemented)
  • daw.lua.common.io added -- unified I/O wrapper with injectable handles
  • contribution.json format defined (module declares groups + fields)
  • types.json per module (composed types, berhtjan-core knows only 6 primitives)

Architecture decisions

  • berhtjan-core and berhtjan-cli are Git submodules (always present)
  • berhtjan-web, berhtjan-desktop, berhtjan-api are .stpkg (optional)
  • All I/O goes through daw.lua.common.io -- never io.* directly
  • contribution.json lives in src/ui/contribution.json per module
  • Composed types (language_map, uuid_select, price_table) defined
    per module in src/ui/types.json -- not hardcoded in berhtjan-core

Next session: ui adapter + dispatch

The key missing piece before migrating steurjan/OBR commands/modules.lua:

  1. contribution.json needs a "commands" section (not just "groups"):

    • list, install, update-index for daw-module-manager
    • each command maps to a core function via the adapter
  2. adapters/ui needs to be defined in host programs:

    • main.lua calls adapter.dispatch(args) -- never berhtjan-cli directly
    • adapter resolves which berhtjan renderer is active (cli/web/desktop)
    • same pattern as adapters/storage
  3. berhtjan-cli needs dispatch(args, contributions) function:

    • scans installed modules for contribution.json
    • builds available commands dynamically
    • routes args to the right command

Blocked issues

  • DAW/steurjan: migration replace commands/modules.lua with berhtjan-cli
  • DAW/openbookregister: same migration
  • DAW/stapul#2: waiting for berhtjan-cli dispatch

References

## Session Handover -- berhtjan architecture & next steps ## What was done - berhtjan-konzept.md v0.2 written (docs/concepts/berhtjan-konzept.md) - Module split decided and repos created: - daw-modul-berhtjan-core (Git submodule, v0.1.1, 36 tests) - daw-modul-berhtjan-cli (Git submodule, v0.1.0, 13 tests) - daw-modul-berhtjan-web (.stpkg, not yet implemented) - daw-modul-berhtjan-desktop (.stpkg, not yet implemented) - daw-modul-berhtjan-api (.stpkg, not yet implemented) - daw.lua.common.io added -- unified I/O wrapper with injectable handles - contribution.json format defined (module declares groups + fields) - types.json per module (composed types, berhtjan-core knows only 6 primitives) ## Architecture decisions - berhtjan-core and berhtjan-cli are Git submodules (always present) - berhtjan-web, berhtjan-desktop, berhtjan-api are .stpkg (optional) - All I/O goes through daw.lua.common.io -- never io.* directly - contribution.json lives in src/ui/contribution.json per module - Composed types (language_map, uuid_select, price_table) defined per module in src/ui/types.json -- not hardcoded in berhtjan-core ## Next session: ui adapter + dispatch The key missing piece before migrating steurjan/OBR commands/modules.lua: 1. contribution.json needs a "commands" section (not just "groups"): - list, install, update-index for daw-module-manager - each command maps to a core function via the adapter 2. adapters/ui needs to be defined in host programs: - main.lua calls adapter.dispatch(args) -- never berhtjan-cli directly - adapter resolves which berhtjan renderer is active (cli/web/desktop) - same pattern as adapters/storage 3. berhtjan-cli needs dispatch(args, contributions) function: - scans installed modules for contribution.json - builds available commands dynamically - routes args to the right command ## Blocked issues - DAW/steurjan: migration replace commands/modules.lua with berhtjan-cli - DAW/openbookregister: same migration - DAW/stapul#2: waiting for berhtjan-cli dispatch ## References - DAW/berhtjan#2 (module split -- done) - DAW/berhtjan#3 (contribution.json format -- in progress) - DAW/daw-lua-common#16 (io wrapper -- done) - docs/concepts/berhtjan-konzept.md
Author
Owner

Superseded. Architecture decisions implemented, all next steps completed or tracked in follow-up issues.

Superseded. Architecture decisions implemented, all next steps completed or tracked in follow-up issues.
michael 2026-06-02 09:24:50 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
DAW/daw-modul-berhtjan-core#1
No description provided.