Skip to content

Releases: form1c/prompt-atelier

Prompt Atelier 1.1.0

Choose a tag to compare

@form1c form1c released this 24 Sep 17:23

Three requests from users, an English example package, and the corrections found while working on them.

Added

  • Choose what an import brings in. Every prompt and keyword of a file that
    does not exist in the workspace yet can be created or skipped, and one choice
    sets all new entries at once. Creating is the default, so a file taken as it
    is arrives as before. When a skipped keyword is named by a prompt that is
    created, the preview says so, because that prompt arrives without it.
  • Copy the text of a keyword from the list. Every keyword in the list has a
    copy button, also for those who may only read keywords. Until now the text
    was reachable only through the edit form, which is closed to them. If the
    browser refuses the clipboard, the text is offered for selecting by hand, as
    on the prompt screen.
  • An English example package. The sample content now comes in English and
    in German. scripts/seed_demo.sh takes the package that matches locale in
    config.yml, English when none is set, and --language de or
    --language en chooses directly. The German file is now called
    examples/examples.de.json.

Changed

  • The copy buttons stay in sight beside a long preview. The bar with both
    copy buttons stays at the bottom of the window on every screen width while
    the preview is visible. Before, it did so only on narrow screens.
  • Notices appear at the top right, below the header. At the bottom they
    covered the copy button that had just been pressed.
  • The title of a copy ends in the word for copy in the language of the
    interface
    , for example (copy) or (copie). Before, it was always the
    German (Kopie). This applies to duplicating a prompt and to importing an
    entry as a copy.
  • An import request that sends a decision the preview did not offer for a new
    entry, such as overwriting it, is refused. A request without a decision for a
    new entry creates it, as before.
  • The browser tests leave WebKit out unless scripts/run_tests.sh is called
    with --webkit. Chromium, Firefox and the narrow screen run as before.

Fixed

  • German messages are written with umlauts. Eleven messages from the
    server and from form fields read spaeter, gueltig and the like.
  • The German refusal of a newer export file named only format version 1.
    It names versions 1 and 2, as the other languages did.
  • The update instructions left files behind. They named app/, scripts/,
    doc/, README.md and a LICENSE file that does not exist, while a release
    carries more, among them VERSION. They now say to replace everything except
    config/, data/ and tools/. The installation guide had also left out
    tools/, where nssm.exe lives on Windows.

Upgrading from 1.0.x

Follow chapter 4.1 of doc/operations.md: create a backup, stop the service,
replace everything except config/, data/ and tools/ with the new release,
run scripts/migrate.sh and start the service again. There is no schema change
in this release.

Coming from 1.0.0, also read the upgrade note of 1.0.1 about the service.

Getting started

Download promptatelier-1.1.0-universal.tar.gz below, or the .zip on
Windows. Unpack it and run scripts/install.sh, on Windows
scripts\install.bat. The installation guide is in doc/installation.md.

Requires Ruby 3.3 or newer and Bundler. On Debian and Ubuntu, ruby-full
does not bring Bundler:

sudo apt install -y ruby-full ruby-dev build-essential curl
sudo gem install bundler -v 4.0.11

No database server and no container runtime.

Prompt Atelier 1.0.1

Choose a tag to compare

@form1c form1c released this 03 Sep 18:16

Service operation on Windows and Linux, found and fixed after 1.0.0 was
published. Everything here was measured on the target systems, not inferred.

Fixed

  • The Windows service could not be registered at all. A Ruby script cannot
    be a Windows service on its own, and the wrapper was given a file the system
    cannot execute. It is now started through an entry point of its own, which
    resolves the server from the bundle rather than from the PATH. Whether Ruby
    is installed for one user or for the whole machine no longer makes a
    difference.
  • The Linux system service ran as root. It wrote its process id file into
    a directory belonging to the installing account, and did not remove that file
    when killed. The owner could then no longer replace it, so every later start
    bound the port and died immediately afterwards, leaving neither the service
    nor the portable mode usable. The system service now runs as the account that
    owns the installation.
  • The last step of the installation left the application running on Windows.
    It started the server through a wrapper and stopped only the wrapper, so the
    port stayed occupied.
  • The unit file was invalid for installation paths containing a space.
    systemd splits Environment= on whitespace, so such a path arrived cut in
    half.
  • A version stated in more than one place could drift. The version is now
    stated once and checked against every repetition of it.
  • The commit line of the delivered VERSION file always read unknown. It
    was looked up one directory above the repository.
  • A non-interactive installation refused a question whose default it had just
    displayed.
    It now uses that default. A question without a default still
    refuses.

Changed

  • Bundler is named as a requirement, together with the version the lock file
    asks for. On Debian and Ubuntu it is not part of ruby-full.
  • Removing a user service reports that lingering stays switched on, and names
    the command that undoes it. It is a machine-wide setting that may have been
    set for something else.

Upgrading from 1.0.0

Replace app/, scripts/, doc/, README.md and LICENSE.md with the new
release, then run scripts/migrate.sh. config/ and data/ are untouched.
There is no schema change in this release.

If you set up the service under 1.0.0 and it never worked, remove it and set it
up again:

scripts/service_uninstall.sh            # Linux, as the installing user
sudo scripts/service_uninstall.sh --system
scripts\service_uninstall.bat           # Windows, as an administrator

On Linux, check afterwards that no process id file is left behind that belongs
to root:

ls -l data/promptatelier.pid

If it is there and belongs to root, delete it. That file is what kept the
application from starting.

Getting started

Download promptatelier-1.0.1-universal.tar.gz below, or the .zip on
Windows. Unpack it and run scripts/install.sh, on Windows
scripts\install.bat. The installation guide is in doc/installation.md.

Requires Ruby 3.3 or newer and Bundler. On Debian and Ubuntu, ruby-full
does not bring Bundler:

sudo apt install -y ruby-full ruby-dev build-essential curl
sudo gem install bundler -v 4.0.11

No database server and no container runtime.

Prompt Atelier 1.0.0

Choose a tag to compare

@form1c form1c released this 31 Aug 18:15

First public release.

What it does

  • Library with full-text search across title, description, body and tags. Spelling variants are resolved, so Größe is found by typing groesse or grosse. Filtering by tag, restriction to favourites, sorting by relevance, date of change or title.
  • Variables: placeholders in double curly braces become form fields with a label, a default value, a required flag and a kind, among them single line, multiline, selection list and number. Unicode letters are permitted.
  • Live preview during input. Browser and server produce identical output, verified against 34 shared test vectors.
  • Keywords: reusable blocks of text placed before or after a prompt, switchable individually while using a prompt.
  • Workspaces with the roles viewer, editor, admin and owner, plus instance administration. Prompt visibility is set independently as private, workspace or instance.
  • Change history: trash with 30 days of retention, undo of the last change, revisions per prompt with a configurable count and minimum retention.
  • Import and export as JSON and Markdown, lossless in both directions, with a preview before anything is written. Every collision is decided in the preview and named in the report afterwards. A prompt whose title already exists can be skipped, copied or overwritten. A keyword whose name already exists can be skipped or overwritten, with the existing and the incoming definition shown side by side. Command line tools for moving a whole instance.
  • Five interface languages: German, English, French, Italian, Spanish.
  • Operation on Linux and Windows, in the foreground or as a system service. Installation, migration, backup, restore and measurement are covered by scripts.
  • Security: Argon2id password storage, sessions carried by a random token stored as a hash, CSRF protection on writing requests, rate limits on sign-in attempts and on import and export, and an audit log that cannot be altered through the interface.

Getting started

Download promptatelier-1.0.0-universal.tar.gz below, or the .zip on
Windows. Unpack it and run scripts/install.sh, on Windows
scripts\install.bat. The installation guide is in doc/installation.md.

Requires Ruby 3.3 or newer. No database server and no container runtime.