Skip to content

Releases: yesbert/loomweaver

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 18:34
7bbfb0a

What's Changed

  • chore(demo): run the demo and the example on 0.15.2 by @yesbert in #731
  • fix(shell)!: an open menu lists only what the session may run by @yesbert in #732
  • feat(shell): a popped-out surface keeps its actions by @yesbert in #733
  • chore: work the forty-three Sonar findings, and guard the exemptions by @yesbert in #734
  • chore: bump version to 0.16.0 by @yesbert in #735

Full Changelog: v0.15.2...v0.16.0

v0.15.2

Choose a tag to compare

@github-actions github-actions released this 02 Oct 17:21
137a364

What's Changed

  • chore(demo): run the demo and the example on 0.15.1 by @yesbert in #726
  • docs(openspec): propose three changes for the open points by @yesbert in #727
  • feat(shell): a menu control with an action of its own runs it while its menu is empty by @yesbert in #728
  • docs(openspec): archive a-menu-control-with-a-command-runs-it-while-its-menu-is-empty by @yesbert in #729
  • chore: bump version to 0.15.2 by @yesbert in #730

Full Changelog: v0.15.1...v0.15.2

v0.15.1

Choose a tag to compare

@github-actions github-actions released this 02 Oct 15:04
78ddd9a

What's Changed

  • chore(demo): run the demo and the example on 0.15.0 by @yesbert in #723
  • docs: the index, the weaver map and the agent skill catch up with 0.15.0 by @yesbert in #724
  • chore: bump version to 0.15.1 by @yesbert in #725

Full Changelog: v0.15.0...v0.15.1

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 12:22
dba6415

What's Changed

  • chore(demo): run the demo and the example on 0.14.6 by @yesbert in #714
  • fix(shell): a value written just before a reload is kept by @yesbert in #715
  • fix(shell)!: the spinner is an element like the rest by @yesbert in #716
  • docs: the plugin store says whose it is by @yesbert in #717
  • feat(shell)!: a surface's actions are drawn wherever the surface stands by @yesbert in #718
  • docs(openspec): archive the four changes from the consumer findings by @yesbert in #719
  • fix(shell): the spinner ring takes the colour around it by @yesbert in #720
  • chore: bump version to 0.15.0 by @yesbert in #721
  • test(testbed): the search surface's action has a name of its own by @yesbert in #722

Full Changelog: v0.14.6...v0.15.0

v0.14.6

Choose a tag to compare

@github-actions github-actions released this 27 Sep 14:46
92e6cda

Fixed

  • A container keeps its arrangement while its tab is in the background. A container whose address named one of its children lost its inner arrangement as soon as another tab came to the front: coming back laid its children out afresh and kept only the child the address named. The workbench now recognises a tab at a child's address as holding its container, as it already did for the address bar. Closing and reopening a container still starts from its declaration. (#709)
  • The offline repair touches only its own application. When offline storage is broken beyond repair, the workbench drops its service worker and caches before reloading. It recognised its worker by the script name alone and dropped every ngsw: cache, so with two distributions on one origin, repairing one also reset the other. It now matches the worker and the caches by the application's base. (#711)

No published name changed.

What's Changed

  • chore(demo): run the demo and the example on 0.14.5 by @yesbert in #708
  • fix(shell): a container keeps its arrangement while its tab is in the background by @yesbert in #709
  • docs(openspec): archive a-container-keeps-its-arrangement-in-the-background by @yesbert in #710
  • fix(shell): the worker repair touches only its own application by @yesbert in #711
  • docs(openspec): archive the-worker-repair-touches-only-its-own by @yesbert in #712
  • chore: bump version to 0.14.6 by @yesbert in #713

Full Changelog: v0.14.5...v0.14.6

v0.14.5

Choose a tag to compare

@github-actions github-actions released this 27 Sep 12:55
3c08af8

Fixed

  • A gated container opens on its child after a late session. A link to a child of a container that requires a session (/assistants/<id>/design) showed "View not available" when the identity arrived after the first paint and a declared workspace claimed the address: entering that workspace replaced the container's inner arrangement, and the container rewrote the address to its own. An open container now lays its children out again and focuses the child the address names. (#703)
  • A distribution served under a path loads and opens under it. A distribution below a path of its origin (/customer-admin/) requested its translations from /i18n/… and opened its pop-outs at /popout/…, at the origin's root. The workbench's strings, every namespace, the default overlay directory and the pop-out address now resolve under the application's base; a distribution at the root makes the same requests as before. The contract now states that a distribution may be served below a path. (#704, #706)

No published name changed.

What's Changed

  • chore(demo): run the demo and the example on 0.14.4 by @yesbert in #701
  • fix(deploy): one SSH connection for both uploads, and a dropped one is retried by @yesbert in #702
  • fix(shell): a gated container opens on its child after a late session by @yesbert in #703
  • fix(shell): a distribution served under a path loads and opens under it by @yesbert in #704
  • docs(openspec): archive the fixes for NextPA findings F-041 and F-042 by @yesbert in #705
  • docs(shell): the contract says translations and pop-outs live under the base by @yesbert in #706
  • chore: bump version to 0.14.5 by @yesbert in #707

Full Changelog: v0.14.4...v0.14.5

v0.14.4

Choose a tag to compare

@github-actions github-actions released this 26 Sep 11:30
5a43c4b

Changed

  • A weaver generated with --agent names the connection and the agent apart. <id>-connection.ts holds connect<Weaver>(ctx) and the signal <weaver>Tools, which is the workbench's half; <id>-agent.ts holds askAgent, the stand-in for your own agent. Before this release, <id>-agent.ts held the connection and the stand-in sat in <id>-agent-source.ts. The stand-in yields typed AG-UI events instead of casting them. Weavers generated before this release keep their files. (#666)
  • theme.css imports its parts. The published path, the layer order and the rules are unchanged; the package ships ten files under styles/theme/ beside it, and import only theme.css. The stylesheet carries no comments any more: what they told a product is in docs/reference/design-tokens.md. (#662)

What's Changed

  • docs(openspec): archive generated-components-take-the-app-prefix by @yesbert in #659
  • docs: sample components take the app prefix, not the platform's by @yesbert in #660
  • docs(openspec): record the owner's decisions on the rest of the refactor by @yesbert in #661
  • refactor(shell): theme.css imports its parts, and stylesheets carry no comments by @yesbert in #662
  • refactor(ag-ui): the adapter reads as the steps of a call by @yesbert in #663
  • chore(workspace): lint inputs are named once, in nx.json by @yesbert in #664
  • refactor(example): a ticket command and its button end in one function by @yesbert in #665
  • refactor(devkit): the generated agent files name the connection and the agent apart by @yesbert in #666
  • refactor(example): the assistant takes the generated shape by @yesbert in #667
  • refactor(example): no leftovers, and the components take the app prefix by @yesbert in #668
  • docs(example): the READMEs describe this example by @yesbert in #669
  • refactor(demo): the quotes weaver has the shape of the other five by @yesbert in #670
  • refactor(demo): the ledger lives in the finance weaver by @yesbert in #671
  • refactor(demo): what only the distribution contributes lives under app/ by @yesbert in #672
  • refactor(demo): no settings that change nothing, and nothing left over by @yesbert in #673
  • refactor(demo): one language signal, the formatters called directly, one clock by @yesbert in #674
  • refactor(demo): the quotes weaver says each thing once by @yesbert in #675
  • refactor(demo): insights reads the session through ctx.session by @yesbert in #676
  • refactor(demo): the scripted agent names its beats and its events apart by @yesbert in #677
  • refactor(demo): the facades guard alike, and names say what they do by @yesbert in #678
  • refactor(demo): the overview module declares what makes it the home by @yesbert in #679
  • refactor(demo): one supplier list, and open items are what finance is owed by @yesbert in #680
  • refactor(demo): the customers weaver ships its strings in its own namespace by @yesbert in #681
  • refactor(demo): the finance weaver ships its strings in its own namespace by @yesbert in #682
  • refactor(demo): the procurement weaver ships its strings in its own namespace by @yesbert in #683
  • refactor(demo): the inventory weaver ships its strings in its own namespace by @yesbert in #684
  • refactor(demo): the people weaver ships its strings in its own namespace by @yesbert in #685
  • refactor(demo): finance lists its records in the responsive grid by @yesbert in #686
  • refactor(demo): people lists its records in the responsive grid by @yesbert in #687
  • refactor(demo): procurement lists its records in the responsive grid by @yesbert in #688
  • refactor(demo): inventory lists its records in the responsive grid by @yesbert in #689
  • refactor(demo): the product's components take the demo- prefix by @yesbert in #690
  • refactor(demo): the payment matching plugin in parts, and drawing books nothing by @yesbert in #691
  • refactor(demo): the end-to-end tests read without narration by @yesbert in #692
  • docs(demo): the README matches the code and reads in an order by @yesbert in #693
  • refactor(tools): the platform's tools sit in folders named for what they do by @yesbert in #694
  • refactor(tools): the checks share one ratchet, one package table and one walker by @yesbert in #695
  • refactor(scripts): the release and dependency scripts say what they do by @yesbert in #696
  • test: the test names state the behaviour instead of tracker codes by @yesbert in #697
  • refactor(shell): the unusable-workspaces port sits in the slice that owns it by @yesbert in #698
  • docs(openspec): archive the-code-reads-for-a-newcomer by @yesbert in #699
  • chore: bump version to 0.14.4 by @yesbert in #700

Full Changelog: v0.14.3...v0.14.4

v0.14.3

Choose a tag to compare

@github-actions github-actions released this 25 Sep 15:53
ad2045b

Changed

  • Generated components no longer take the platform's lw prefix. Without a supplied prefix, a weaver generated with @loomweaver/devkit or @loomweaver/cli names its components with the prefix the composing application declares (project.json or angular.json), and with app where it declares none. A distribution generated by the Nx generator declares app. Pass --prefix lw to get the old output. Projects generated before this release keep their names. (#657)
  • The CLI and the MCP server take a prefix. loomweaver weaver --prefix <prefix> and scaffold_weaver { "prefix": … } set the selector prefix. Before this release, only the Nx generator accepted one. The MCP server cannot read your workspace, so pass it your application's prefix. A prefix that is not kebab-case is refused on every route. (#657)

What's Changed

  • chore(demo): run the demo and the example on 0.14.2 by @yesbert in #655
  • docs(openspec): archive defects-found-while-reading-are-fixed by @yesbert in #656
  • fix(devkit): generated components take the app's prefix, not lw by @yesbert in #657
  • chore: bump version to 0.14.3 by @yesbert in #658

Full Changelog: v0.14.2...v0.14.3

v0.14.2

Choose a tag to compare

@github-actions github-actions released this 25 Sep 14:03
ad3c6c1

Changed

  • Two element tags inside the shell were renamed: lw-content-area is now lw-address-pane-header, and lw-content-secondary-pane is now lw-surface-body. They are not part of the published contract, but a product's unlayered CSS may target them.
  • A plugin's state handle gains onChange (#647): it is called whenever the value arrives or changes, needs no injection context, and is how activate() waits for the store. A test double that builds a StateHandle by hand needs the member too.
  • The agent connection's flush() answers one open call per request (#652): call it until it answers null once a run is over. A call left open is refused rather than run; a call carried by chunks is still closed by a run that finishes.

Fixed

  • fix(ag-ui): the agent connection answers every call a run leaves open (#652)
  • fix(shell): the plugin store keeps its detail reachable on a narrow screen (#651)
  • fix(shell): a plugin the operator deployed offers no install in the store (#650)
  • fix(shell): a select option draws an icon the registry knows (#649)
  • fix(frame-kit): a state write made before the connection is sent once connected (#646)
  • fix(shell): a plugin state value with no JSON form is refused (#645)
  • fix(shell): invocations waiting side by side no longer count as a chain (#644)
  • fix(devkit): the Tailwind source path is taken literally (#497)
  • fix(cli): read the entry stylesheet in every form, name errors once (#496)
  • fix(cli): the workspace above a nested package is found (#495)
  • fix(devkit): the Nx route names what it leaves untouched (#494)
  • fix(devkit): a forced distribution keeps the occupant's build settings (#493)
  • fix(devkit): the weaver generator composes the weaver without a test runner too (#492)
  • fix(devkit): the generated weaver notes name real regions and the recorded versions (#491)
  • fix(frame-kit): the frame declaration drops an empty export statement (#490)
  • fix(shell): a pane body lets go of the mounts of surfaces it no longer shows (#489)
  • fix(shell): drag between inner panes works for an address with a colon (#488)
  • fix(shell): closing the pane that fills the area ends the blow-up (#487)
  • fix(shell): a panel drag whose edge disappears still ends (#486)
  • fix(shell): moving a view to the other sidebar by keyboard is announced (#485)
  • fix(shell): claims that tie on an address are reported whatever their shape (#484)
  • fix(shell): the stored language is applied from the product's settings port (#483)
  • fix(shell): the pane arrangement reads the saved workspaces from the settings port (#482)
  • fix(shell): actions on open work in the search act where it stands (#481)
  • fix(shell): a rail entry that only opens a menu can be curated (#480)
  • fix(shell): release grants of failed activations and report missing required plugins (#479)
  • fix(shell): a deployed plugin's settings are reachable from the installed list (#478)
  • fix(shell): a plugin renames and re-actions only surfaces it registered (#477)
  • fix(shell): a failing menu entry reaches the error handler (#476)
  • fix(shell): a list menu marks its entry in effect and keeps every icon (#475)

What's Changed

  • feat(demo): show tab badges, leaving out a child and a plugin menu by @yesbert in #472
  • docs(openspec): readability worklist and the defects found while reading by @yesbert in #473
  • refactor(shell): cut the content tab services by what they do by @yesbert in #474
  • fix(shell): a list menu marks its entry in effect and keeps every icon by @yesbert in #475
  • fix(shell): a failing menu entry reaches the error handler by @yesbert in #476
  • fix(shell): a plugin renames and re-actions only surfaces it registered by @yesbert in #477
  • fix(shell): a deployed plugin's settings are reachable from the installed list by @yesbert in #478
  • fix(shell): release grants of failed activations and report missing required plugins by @yesbert in #479
  • fix(shell): a rail entry that only opens a menu can be curated by @yesbert in #480
  • fix(shell): actions on open work in the search act where it stands by @yesbert in #481
  • fix(shell): the pane arrangement reads the saved workspaces from the settings port by @yesbert in #482
  • fix(shell): the stored language is applied from the product's settings port by @yesbert in #483
  • fix(shell): claims that tie on an address are reported whatever their shape by @yesbert in #484
  • fix(shell): moving a view to the other sidebar by keyboard is announced by @yesbert in #485
  • fix(shell): a panel drag whose edge disappears still ends by @yesbert in #486
  • fix(shell): closing the pane that fills the area ends the blow-up by @yesbert in #487
  • fix(shell): drag between inner panes works for an address with a colon by @yesbert in #488
  • fix(shell): a pane body lets go of the mounts of surfaces it no longer shows by @yesbert in #489
  • fix(frame-kit): the frame declaration drops an empty export statement by @yesbert in #490
  • fix(devkit): the generated weaver notes name real regions and the recorded versions by @yesbert in #491
  • fix(devkit): the weaver generator composes the weaver without a test runner too by @yesbert in #492
  • fix(devkit): a forced distribution keeps the occupant's build settings by @yesbert in #493
  • fix(devkit): the Nx route names what it leaves untouched by @yesbert in #494
  • fix(cli): the workspace above a nested package is found by @yesbert in #495
  • fix(cli): read the entry stylesheet in every form, name errors once by @yesbert in #496
  • fix(devkit): the Tailwind source path is taken literally by @yesbert in #497
  • fix(testbed): typing in the RPC sandbox keeps focus by @yesbert in #498
  • fix(testbed): the minimal store plugin registers its own page by @yesbert in #499
  • fix(testbed): the static sandbox page loads the kit stylesheet by @yesbert in #500
  • fix(demo): closing periods and dates follow the local calendar by @yesbert in #501
  • fix(demo): quote commands accept quotes created after startup by @yesbert in #502
  • fix(demo): the dashboard's colour observer stops with its view by @yesbert in #503
  • docs(openspec): waiting for the store at activation is an owner decision by @yesbert in #504
  • fix(demo): the quotes plugin activates when storage is blocked by @yesbert in #505
  • fix(example): a ticket link opens its ticket whatever the case by @yesbert in #506
  • fix(website): the landing page's pictures are copied and checked by @yesbert in #507
  • fix(website): the sidebar guard matches whole routes by @yesbert in #508
  • refactor(shell): whether this window is a pop-out is one fact by @yesbert in #509
  • refactor(shell): one helper binds a stored setting to a signal by @yesbert in #510
  • refactor(shell): the saved workspace list is a persisted setting by @yesbert in #511
  • refactor(shell): the plugin lists and grants are persisted settings by @yesbert in #512
  • refactor(shell): the stored-value helpers get a folder of their own by @yesbert in #513
  • refactor(shell): the rail's choices are persisted settings by @yesbert in #514
  • refactor(shell): the panels read their records with the shared parsers by @yesbert in #515
  • docs(openspec): the readability change records what stays as it is by @yesbert in #516
  • refactor(shell): each storage key is declared once by @yesbert in #517
  • refactor(shell): unsaved work gets a folder, two tree files their names by @yesbert in #518
  • refactor(shell): the retention key grammar lives in one module by @yesbert in #519
  • refactor(shell): one rule says when the wording may have changed by @yesbert in #520
  • refactor(shell): the layout questions are answered once by @yesbert in #521
  • refactor(shell): the tab label module moves to the pane chrome by @yesbert in #522
  • refactor(shell): a tab's label is patched in one place by @yesbert in #523
  • refactor(shell): host command ids are named...
Read more

v0.14.1

Choose a tag to compare

@github-actions github-actions released this 24 Sep 08:41
752f06f

What's Changed

  • chore(demo): run the demo and the example on 0.14.0 by @yesbert in #467
  • fix(shell): a narrow tab keeps its title before its badge by @yesbert in #468
  • feat(shell): a plugin updates an open tab in place by @yesbert in #469
  • feat(shell): a dialog body asks for the close the person would make by @yesbert in #470
  • chore: bump version to 0.14.1 by @yesbert in #471

Full Changelog: v0.14.0...v0.14.1