Bendik Aagaard Lynghaug and Claude Fable 5.1
da515feb0a
The lint is portal lint from the portal release
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
iris stopped at v0.5.10; the lint has been portal itself since 0.6.0,
fetched from the portal release this site runs, as uhhm/questions does.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-05 13:13:18 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5.1
aedf45cf0a
Releases come from dl.redoal.com, and the site runs portal 0.6.20
...
Deploy instance / deploy (push) Successful in 2s
Lint and reload / lint (push) Failing after 2s
Lint and reload / reload (push) Skipped
The front door's releases card read the private repo's Gitea releases
with its link nulled, since those 404 for visitors. It now reads the
public manifest redoal's release job writes to dl.redoal.com, which
portal renders as a download card with this device's file first. The
pins move from v0.5.2 to v0.6.20 for both the instance and the lint;
the content lints clean on it.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-05 12:56:32 +02:00
Bendik Aagaard Lynghaug and Claude Opus 5
d1ae870f2d
The releases card shows the cut you should run
...
Lint and reload / reload (push) Successful in 0s
Lint and reload / lint (push) Successful in 2s
One card per release made the section grow forever, and the newest cut
is the one a visitor should actually run — the rest are history, not an
invitation.
`limit` is the portal's mechanism for this (uhhm/portal 22d086f) and
this site is pinned to PORTAL_RELEASE v0.5.2, which predates it, so the
jq takes `.[0]` instead of `.[]` and that is what does the work today.
`limit: 1` is declared alongside it: v0.5.2 ignores fields it does not
know, so it costs nothing now and takes over when the pin moves
forward, at which point the jq goes back to `.[]`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01ByshXuDEzH8hXh5qp4VgGk
2026-10-04 22:52:50 +02:00
Bendik Aagaard Lynghaug
cf5108aec4
Take portal v0.5.2 (the rate limiter needs connect info)
Deploy instance / deploy (push) Successful in 2s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 1s
2026-09-28 18:13:50 +02:00
Bendik Aagaard Lynghaug and Claude Opus 5
6a72c67dab
Take portal v0.5.1
...
Deploy instance / deploy (push) Successful in 2s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Attachments both ways, rate limiting, sessions that survive a deploy,
and an upload route that asks the policy like every other way in.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-28 17:53:46 +02:00
Bendik Aagaard Lynghaug and Claude Opus 5
5e10e21814
Take portal v0.4.0
...
Deploy instance / deploy (push) Successful in 2s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Four releases on from v0.3.36: maps and `place:`, a reply to a case
mail becoming a note on its record, and the access policy's newer
rules. iris moves with it, since it is the lint for exactly this
portal.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-28 16:27:47 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5.1
0a51852cb2
deploy: carry KANIDM_API_TOKEN into the instance env
...
Deploy instance / deploy (push) Successful in 2s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 1s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
2026-09-23 12:27:36 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5.1
2d4f46d152
Lint with iris v0.3.39 (iris is versioned as portal from here on)
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
2026-09-23 06:04:41 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5.1
32547d782f
Lint: run iris from the cargo target dir (the checkout is noexec on this runner)
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
2026-09-22 17:58:27 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5.1
5ec32823b4
Lint with iris v0.1.0
...
Lint and reload / lint (push) Failing after 2s
Lint and reload / reload (push) Skipped
The lint now lives in uhhm/iris, pinned to the portal release it
matches; question_lint leaves the portal tarball.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
2026-09-22 17:42:31 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5.1
c674348b38
Pin portal v0.3.36
...
Deploy instance / deploy (push) Successful in 2s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Question nav offers a followup only once it is earned; bounded
outbound fetches; uploads over 2 MB start working.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
2026-09-22 17:02:32 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
b12a601cae
iPhone beta joins via the TestFlight public link
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
The 'redoal testers' external group now has a public link
(https://testflight.apple.com/join/eR9dvHkz ) — one tap on an iPhone,
no invitation flow. Replace the Apple-ID form (and its action/
record_as plumbing) with the link; no email collection, nothing for
us to process. The n8n named-invite workflow stays shelved in
redoal/redoal ops/ for a future curated group.
Lint: OK (9 questions, 5 aggregates).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01ByshXuDEzH8hXh5qp4VgGk
2026-09-12 22:16:44 +02:00
Bendik Aagaard Lynghaug and Claude Opus 4.8
59fc40e0cb
Testers signup in the Releases alternative; redoal_testers bucket
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Desktop releases run free (the gitea_releases listing, no sign-up); a
'Join the public testers' form on the same alternative collects the
Apple ID for a TestFlight invite, recorded to redoal_testers. New
confirmation page /joined-testers, and an aggregates entry with
attended_by pointing at the n8n TestFlight onboarding automation
(events.redoal_testers.* → App Store Connect).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01ByshXuDEzH8hXh5qp4VgGk
2026-09-12 16:44:20 +02:00
Bendik Aagaard Lynghaug
45a9526ea2
Pin portal v0.3.35
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
2026-09-12 12:21:16 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5.1
a546c2b08f
Pin portal v0.3.34
...
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
Question nav offers followups by reach (on the visitor's verified
path, or further down from the current page), not to anyone carrying
any chain.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
2026-09-11 19:43:44 +02:00
bl
af572e91c8
Merge pull request 'Fix voices-echoed card: emit bare object, not wrapped array' ( #5 ) from fix-pulse-jq-nested-array into main
...
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
Reviewed-on: #5
2026-09-11 12:07:47 +00:00
Bendik Aagaard Lynghaug and Claude Opus 4.8
6c3aa46ab0
Fix voices-echoed card: emit bare object, not wrapped array
...
Lint and reload / lint (pull_request) Successful in 3s
Lint and reload / reload (pull_request) Skipped
The portal's apply_jq collects the jq output stream into an array
itself. The wrapping [ … ] made the filter emit one array-valued
output, which nested to [[{…}]] and failed the array-of-objects card
renderer, dumping raw JSON. Emit a bare object like the releases jq
does, so it collects into [{…}] and renders as a card.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01ByshXuDEzH8hXh5qp4VgGk
2026-09-11 11:47:56 +02:00
bl
c8d181b8a5
Merge pull request 'Flaunt 'voices echoed so far' on the index (live /pulse count)' ( #4 ) from voices-echoed-count into main
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Reviewed-on: #4
2026-09-11 08:21:18 +00:00
Bendik Aagaard Lynghaug and Claude Fable 5
bafdb87102
Flaunt 'voices echoed so far' on the index, live from the relay's /pulse
...
Lint and reload / lint (pull_request) Successful in 2s
Lint and reload / reload (pull_request) Skipped
A 'The count so far' feature in the index's 'Meet a network' alternative
fetches https://relay.redoal.com/pulse (redoal ADR-0023) with a kind:url
resource and shapes { voices_echoed: N } into one card — the number as
the heading, 'voices echoed so far' beneath. Lint-clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-10 07:36:23 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
2cee770041
Pin portal v0.3.33: head preloads for fonts and wordmark
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 1s
Deploy instance / deploy (push) Successful in 1s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Y42TyF8Zu7NGRR2893vNcZ
2026-09-02 11:52:43 +02:00
bl
d96a020d0b
Update questions/reported.yaml
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
2026-09-01 21:13:59 +00:00
Bendik Aagaard Lynghaug
f1855d3f8b
Pin portal v0.3.32
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
2026-09-01 22:15:10 +02:00
Bendik Aagaard Lynghaug
86ca5228de
Pin portal v0.3.31
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
2026-09-01 21:51:02 +02:00
Bendik Aagaard Lynghaug
e68e5c0c37
Pin portal v0.3.30
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
2026-09-01 21:45:06 +02:00
Bendik Aagaard Lynghaug
a732d1eb1b
Pin portal v0.3.29
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 1s
2026-09-01 21:39:39 +02:00
Bendik Aagaard Lynghaug
ec78a76ae9
Pin portal v0.3.28
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
2026-09-01 20:33:30 +02:00
Bendik Aagaard Lynghaug
5db9e42a6b
Pin portal v0.3.27
Deploy instance / deploy (push) Successful in 0s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
2026-09-01 20:29:11 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
10f220b928
wordmark_invert: true (white-stroke mark)
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 1s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Y42TyF8Zu7NGRR2893vNcZ
2026-09-01 20:26:44 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
16bd2e41eb
Pin portal v0.3.24
...
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Y42TyF8Zu7NGRR2893vNcZ
2026-09-01 20:03:57 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
e58aa9d43c
Pin portal v0.3.23
...
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Y42TyF8Zu7NGRR2893vNcZ
2026-09-01 17:26:12 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
7f4058901b
Pin portal v0.3.21: markdown images, optional sign-in, hero centering
...
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 1s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Y42TyF8Zu7NGRR2893vNcZ
2026-09-01 17:13:51 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
19eccfd212
Pin portal v0.3.18: convergence animation, overlay results
...
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Y42TyF8Zu7NGRR2893vNcZ
2026-09-01 16:01:03 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
c2f2fdb546
Report a recording: per-voice review link, desk, and lifecycle
...
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 1s
Every recording card links to /report/<digest>. Filing opens a
redoal_reports record; the Reports desk decides — Remove it acts for
real (the relay deletes the recording everywhere), Keep it closes
with the voice in place. Pins portal v0.3.17 for markdown in cards.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Y42TyF8Zu7NGRR2893vNcZ
2026-08-31 17:22:48 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
02d3901610
One card: Built in the open at UHHM
...
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
Merges the facilitator credit and the young-and-honest card.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Y42TyF8Zu7NGRR2893vNcZ
2026-08-31 13:51:29 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
bc96601001
Credit UHHM as facilitator; varde link follows its repo home
...
Lint and reload / lint (push) Successful in 4s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Y42TyF8Zu7NGRR2893vNcZ
2026-08-31 13:33:40 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
2007e80851
Pin portal v0.3.16
...
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
Hidden fields lose their stray label row (the Address listing under
Email in the watcher card) and the announce sweeper refreshes open
event records from content.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Y42TyF8Zu7NGRR2893vNcZ
2026-08-30 23:16:01 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
dcbeda34b7
Watchers: double opt-in
...
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
redoal_watchers starts pending; /watching (the confirmation mail's
landing page) confirms to open or drops. Only open watchers are told.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-30 19:37:10 +02:00
Bendik Aagaard Lynghaug
865c426266
Pin portal v0.3.14 - icon column
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
2026-08-30 16:58:21 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
bee1ba406b
Hero: clip the bleed at the header, never overflow the document
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-30 16:48:33 +02:00
Bendik Aagaard Lynghaug
137415ee92
Pin portal v0.3.13 - voice keeps on submit
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 1s
2026-08-30 16:38:17 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
57c7bc7528
Place page: preview-of-the-app copy, review before keeping
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-30 16:37:44 +02:00
Bendik Aagaard Lynghaug
98c1213d02
Pin portal v0.3.12
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
2026-08-30 16:08:59 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
66c31786ce
Places: /shape/<key>, voices, address newsletter
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
The landing gesture leads to /shape/{curve.key} - the place page:
what was left there (the relay's /place, playable), leave your voice
(type: voice at value "{key}"), hear from exactly this address
(redoal_watchers, exact key), and the cards. Email leaves the landing
page. A card for iroh through varde. Desks for voices and watchers.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-30 16:05:26 +02:00
Bendik Aagaard Lynghaug
605eb549f8
Pin portal v0.3.11 - templated action lint fix
Deploy instance / deploy (push) Successful in 0s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
2026-08-30 16:04:59 +02:00
Bendik Aagaard Lynghaug
8303626e78
Pin portal v0.3.10 - voice, places
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
2026-08-30 16:00:07 +02:00
Bendik Aagaard Lynghaug
aae9ea5592
Pin portal v0.3.9 - templated actions, pickable places
Lint and reload / lint (push) Successful in 2s
Deploy instance / deploy (push) Successful in 1s
Lint and reload / reload (push) Successful in 0s
2026-08-30 15:42:12 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
6bac75891f
Hero: the field bleeds past its box
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 1s
25% overscan on every side, drawing scaled to the piece so nothing
grows; html overflow-x: clip keeps the bleed from scrolling sideways.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-30 15:17:26 +02:00
Bendik Aagaard Lynghaug and Claude Fable 5
671b20b3c2
Exhibition: 23 October 19:00, «Big Tech må vekk», linked
...
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-30 14:47:40 +02:00
Bendik Aagaard Lynghaug
0dff54e2cd
Pin portal v0.3.8 - markdown descriptions
Lint and reload / lint (push) Successful in 2s
Deploy instance / deploy (push) Successful in 1s
Lint and reload / reload (push) Successful in 0s
2026-08-30 14:46:59 +02:00
Bendik Aagaard Lynghaug
bef058af8f
Pin portal v0.3.7 - feature links
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
2026-08-30 14:42:01 +02:00