Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 06:47
· 48 commits to main since this release

The live session (tx interactive, tx serve, tx ui) is a preview: its protocol and options
may still change. A live session does not yet notice when other tools change its model's files
(for example a git checkout or an edit in Power BI Desktop), and saving from it overwrites
those changes; save or close the session before changing the files another way (#351).

Added

  • tx interactive (alias tx shell) opens a model once and keeps it in memory: commands such
    as get, set, add, rm and bpa run work on the open model, undo and redo step
    through every change, begin … commit groups edits into one undo step, history lists
    them, and save writes the model. It asks before discarding unsaved changes (#347).
  • tx serve holds a live session for editors and agents and speaks the tomix session protocol
    (JSON-RPC over stdio, specified in docs/protocol.md): open, read, edit, undo, transactions,
    save, and change events for every client (#348, #349).
  • tx ui [model] shares a live session on 127.0.0.1 with a browser page and agents at the
    same time: the page shows who is connected and every client's changes as they happen, with
    Undo, Redo and Save. --open opens the page; --port, --grace and --log tune it. Every
    request needs the session's token. tx serve on a model tx ui holds joins that session
    instead of opening a second one (#369).
  • While tx ui holds a model, add, bpa run, deps, find, format, get, ls, mv,
    replace, rm, save, set, summary and validate on it run in its session instead of
    on the files: edits become undo steps there and show up on the page, reads see unsaved
    edits, and edits stay unsaved until tx save (#400).
  • New error codes TOMIX_SESSION_IN_USE, TOMIX_UI_UNAUTHORIZED, TOMIX_UI_FORBIDDEN,
    TOMIX_UI_PORT_IN_USE and TOMIX_UI_UNREACHABLE (#369).

What's Changed

  • feat(core): live session contracts and ADR 0002 lease gate (#343) by @bgarcevic in #380
  • feat(provider-tom): change journal and TomWriter for every TOM write (#379) by @bgarcevic in #381
  • feat(provider-tom): TomLiveModelSession with a FIFO lease gate (#344) by @bgarcevic in #382
  • refactor(app): run handlers against an open session (#345) by @bgarcevic in #384
  • feat(provider-tom): undo, redo and explicit transactions in the live session (#346) by @bgarcevic in #385
  • feat(cli): tx interactive (alias tx shell), the live session REPL (#347) by @bgarcevic in #386
  • docs(protocol): tomix session protocol v0 spec (#348) by @bgarcevic in #387
  • feat(serve): tx serve over stdio (#349) by @bgarcevic in #389
  • ci(dependabot): use conventional dependency update titles by @bgarcevic in #388
  • feat(serve): one live session shared by several clients over localhost (#369) by @bgarcevic in #390
  • build: Bump Microsoft.CodeAnalysis.BannedApiAnalyzers from 4.14.0 to 5.6.0 by @dependabot[bot] in #383
  • feat(ui): tx ui shares a live session with a browser page and agents (#369) by @bgarcevic in #399
  • feat(live): one-shot commands on a model tx ui holds run in its session (#400) by @bgarcevic in #401
  • chore(release): prepare 0.9.0 by @github-actions[bot] in #402

Full Changelog: v0.8.0...v0.9.0