• v0.6.13
    Test / test (push) Successful in 1m5s
    Publish release / publish (push) Successful in 1m48s
    Stable

    gitea-actions released this 2026-10-01 09:40:32 +00:00 | 30 commits to main since this release

    • Who is here (the name and "sign out", or "sign in") sits on the wordmark's own line instead of being pinned to the corner of the page, where it read as a row of its own. With a picture strip it is in the wordmark's bar; without, it is level with the mark at the right edge. On a narrow screen it drops under the mark.
    • Trainer: every form, public ones included, carries a signed-in person's name and address from the login instead of asking for them; a visitor still sees the fields. Only the inside forms did before, so someone signed in filled in their own name and address again on a public form.
    Downloads
  • v0.6.12
    Test / test (push) Successful in 1m5s
    Publish release / publish (push) Successful in 1m44s
    Stable

    gitea-actions released this 2026-10-01 08:41:31 +00:00 | 48 commits to main since this release

    • Trainer: the words model is told who opens each mail: the person who sent the case, the person who posted the record an answer is about, or someone at the business. Mails to the business about another person's case used to be written as if to that person ("you will hear from us"); on Gullberg, three of nine were.
    Downloads
  • v0.6.11
    Test / test (push) Successful in 1m8s
    Publish release / publish (push) Successful in 1m50s
    Stable

    gitea-actions released this 2026-10-01 07:33:31 +00:00 | 51 commits to main since this release

    • wordmark_ink: true in site.yaml: an SVG wordmark is drawn in the page's own ink, as a mask over the text colour, so it follows the page's light and dark in every browser. A wordmark shown as an <img> only knows the system's setting, and some browsers don't pass even that on. Opacity in the file still shows, so a lighter line stays lighter. Opt-in, for one-colour marks; a mark with a colour of its own keeps its colours.
    Downloads
  • v0.6.10
    Test / test (push) Successful in 1m18s
    Publish release / publish (push) Successful in 2m1s
    Stable

    gitea-actions released this 2026-09-30 19:52:28 +00:00 | 54 commits to main since this release

    • Trainer: who a business is gets a page of its own ("who are we?", /hvem in Norwegian), with nothing to do on it. It has one card per need that presents (the people, the work, each shown as picture cards) and one for the plan's values. The front door leads there instead of carrying it all.
    • Trainer: the words model is told that a form page from the inside asks a real question and says where the answer ends up ("How do you present yourself?", not "Your card on the front page"), and that a one_per_person form is the colleague's own.
    • Trainer: portal build names every need no persona tries. Klingenberg Bygg's plan had personas only for customers, so nobody ever played the office filling in its own forms.
    • Klingenberg Bygg: "Hvem består Klingenberg Bygg av?" with Menneskene, Erfaringer (projects with pictures, added from the office) and Verdier (a first draft for Fredrik to replace).
    Downloads
  • v0.6.9 19b7750292

    v0.6.9
    Test / test (push) Successful in 1m8s
    Publish release / publish (push) Successful in 1m54s
    Stable

    gitea-actions released this 2026-09-30 19:38:59 +00:00 | 58 commits to main since this release

    • What a person wrote on a card (a bio) is shown as markdown: paragraphs, line breaks as typed, lists, emphasis, and links to https, mailto or tel marked rel="nofollow ugc". No images and no raw HTML, which is stricter than the site's own descriptions. The desk still shows the text as written.
    Downloads
  • v0.6.8 c6dffc384c

    v0.6.8
    Test / test (push) Successful in 1m9s
    Publish release / publish (push) Successful in 2m0s
    Stable

    gitea-actions released this 2026-09-30 19:08:33 +00:00 | 62 commits to main since this release

    • An upload that did not arrive says why: larger than 20 MB (checked in the browser before anything is sent), a site that takes no files (no Garage configured), not allowed from here, or anything else. It used to say "try again, or with a smaller file" whatever the reason, which sent people looking for a smaller file when the site had no storage at all.
    Downloads
  • v0.6.7 95bffc221b

    v0.6.7
    Test / test (push) Successful in 1m19s
    Publish release / publish (push) Successful in 2m8s
    Stable

    gitea-actions released this 2026-09-30 18:50:45 +00:00 | 66 commits to main since this release

    • leaves_after: { minutes: 10 } on a state: a record that has been there that long leaves its bucket's lists (days, hours and minutes add up; swept every minute; the event log keeps it). Trainer: leaves_after per stage on a need. A Klingenberg Bygg card taken off the front page leaves the office's list ten minutes later instead of standing there greyed out.
    Downloads
  • v0.6.6 96c513d912

    v0.6.6
    Test / test (push) Successful in 1m16s
    Publish release / publish (push) Successful in 2m7s
    Stable

    gitea-actions released this 2026-09-30 18:39:12 +00:00 | 70 commits to main since this release

    • one_per_person: true on an alternative: each signed-in person keeps one record there, their own. The form opens filled in with it, a file left unchosen keeps the one already there (shown beside the picker), and sending again replaces the card instead of adding one. Two sends at once settle on the newest. Trainer: one_per_person on a need entered from inside; Klingenberg Bygg's people each edit their own card on the front page.
    • Send is disabled from the moment it is pressed. Files upload before the form is sent, and a second press in that time used to send it twice.
    • A failed upload stops the send and says so. The form used to go without the file, which made a record that looked complete and was not.
    • A refused send says why, under its button. It used to say nothing.
    Downloads
  • v0.6.5 cae116b50c

    v0.6.5
    Test / test (push) Successful in 1m9s
    Publish release / publish (push) Successful in 1m54s
    Stable

    gitea-actions released this 2026-09-30 18:10:59 +00:00 | 74 commits to main since this release

    • Trainer: paused: true on a need. Its card stays on the front door with what the business does and a sentence saying it is not taking new ones right now, with no form and a button that does not press; nothing is recorded. The lint reports a paused need as a warning ("paused, not open now") and counts it on its own in the summary, as planned already did for needs not open yet. Klingenberg Bygg's building applications are paused for capacity.
    Downloads
  • v0.6.4 e2497941c8

    v0.6.4
    Test / test (push) Successful in 1m9s
    Publish release / publish (push) Successful in 1m55s
    Stable

    gitea-actions released this 2026-09-30 17:52:12 +00:00 | 78 commits to main since this release

    • The rate limit is a hundred at once, refilled at ten a second (it was 30, one every two seconds, which a page with a picture strip used up in one load: a few reloads and the stylesheet was refused). The files a page is made of, from portal's own disk, are not counted at all. PORTAL_RATE_PER_SECOND replaces PORTAL_RATE_SECONDS; no site set it.
    Downloads