Commit Graph
50 Commits
Author SHA1 Message Date
Bendik Aagaard LynghaugandClaude Fable 5.1 f5027a2bd4 Desk buttons that say what they do, stages in words, declined only before starting
Lint and reload / lint (push) Skipped
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 06:01:57 +02:00
Bendik Aagaard LynghaugandClaude Fable 5.1 77b62afaa2 Every stage that matters mails the person who sent it
Lint and reload / lint (push) Skipped
The brief, the trial and a custody case tell the submitter when they
arrive and when they are decided; the sender is portal@uhhm.no with
replies to bl@uhhm.no. Built by portal-trainer from plans/uhhm.yaml
with `mails:` on the needs; pins to portal and iris v0.3.44.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-23 21:19:10 +02:00
Bendik Aagaard LynghaugandClaude Fable 5.1 5b657828e1 uhhm.no rebuilt from a trainer plan: trials, and the redoal custodians
Lint and reload / lint (push) Skipped
Built by portal-trainer from plans/uhhm.yaml (uhhm/portal-trainer,
runs/uhhm-2026-09-23): the five live buckets keep their state and
event names, so every record on the owners' desk stays. New: `trials`,
a business trying the trainer on its own workflow, approved by an
owner before anything is built (the n8n preview workflow comes later,
noted as attended_by); `custody_requests`, what reaches UHHM as the
custodian of the redoal network, on a custodians' desk owners can
watch. Owners invite into both desks. needs.yaml holds the site to
its needs from here on; the lint reads it.

Gone from the live site: the starred-repos card, the proposal editor
with its file picker and /review/[record], and the /applied, /project
and /subscribed followups (now /received/<need>; the unsubscribe move
is /decide/subscribe). The pins move to v0.3.42: `invite:` and
`attended_by` need a portal newer than the v0.3.36 this site runs.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-23 15:09:48 +02:00
Bendik Aagaard LynghaugandClaude Fable 5.1 58225386b0 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 0s
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 LynghaugandClaude Fable 5.1 3c39af792d Lint with iris v0.3.39 (iris is versioned as portal from here on)
Lint and reload / lint (push) Successful in 3s
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:40 +02:00
Bendik Aagaard LynghaugandClaude Fable 5.1 4f0f30790e Lint: run iris from the cargo target dir (the checkout is noexec on this runner)
Lint and reload / reload (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
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 LynghaugandClaude Fable 5.1 5b73fb52dd 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 LynghaugandClaude Fable 5.1 627ca37b94 Pin portal v0.3.36
Deploy instance / deploy (push) Successful in 2s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 1s
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 f5129877d4 Pin portal v0.3.35
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
2026-09-12 12:21:15 +02:00
Bendik Aagaard LynghaugandClaude Fable 5.1 a72c64995d Pin portal v0.3.34
Deploy instance / deploy (push) Successful in 0s
Lint and reload / lint (push) Successful in 2s
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:43 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 2c3afbfa7a Pin portal v0.3.33
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-02 11:50:59 +02:00
Bendik Aagaard Lynghaug ff57b15f59 Pin portal v0.3.32
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 22:15:11 +02:00
Bendik Aagaard Lynghaug 0d20770c50 Pin portal v0.3.31
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
2026-09-01 21:51:02 +02:00
Bendik Aagaard Lynghaug fb73011d0c Pin portal v0.3.30
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
2026-09-01 21:45:07 +02:00
Bendik Aagaard Lynghaug 9684146dd8 Pin portal v0.3.29
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
2026-09-01 21:39:39 +02:00
Bendik Aagaard Lynghaug b8fc2ade6c 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 1s
2026-09-01 20:33:31 +02:00
Bendik Aagaard Lynghaug 479bc72b6e Pin portal v0.3.27
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:29:11 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 cb2d9760a1 Pin portal v0.3.24
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 20:03:57 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 0bfdc0b45e 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 LynghaugandClaude Fable 5 c74fc6d708 Pin portal v0.3.21
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:13:52 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 b4f12a1a6a Pin portal v0.3.18
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:04 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 b34be2ada9 Pin portal v0.3.17
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-08-31 17:22:49 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 f2dbd7aabd Pin portal v0.3.16
Deploy instance / deploy (push) Successful in 1s
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-08-30 23:16:01 +02:00
Bendik Aagaard Lynghaug d770d8a137 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:20 +02:00
Bendik Aagaard Lynghaug 3dab10d6e4 Pin portal v0.3.13 - voice keeps on submit
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:38:16 +02:00
Bendik Aagaard Lynghaug cba804adca Pin portal v0.3.12
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
2026-08-30 16:08:59 +02:00
Bendik Aagaard Lynghaug eabde0c42c Pin portal v0.3.11 - templated action lint fix
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
2026-08-30 16:04:58 +02:00
Bendik Aagaard Lynghaug 7859be90f5 Pin portal v0.3.10 - voice, places
Lint and reload / lint (push) Successful in 3s
Deploy instance / deploy (push) Successful in 1s
Lint and reload / reload (push) Successful in 0s
2026-08-30 16:00:06 +02:00
Bendik Aagaard Lynghaug f64d62f20e Pin portal v0.3.9 - templated actions, pickable places
Lint and reload / reload (push) Successful in 0s
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
2026-08-30 15:42:11 +02:00
Bendik Aagaard Lynghaug 51fae8b86c Pin portal v0.3.8 - markdown descriptions
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
Deploy instance / deploy (push) Successful in 1s
2026-08-30 14:46:59 +02:00
Bendik Aagaard Lynghaug 83af980ab1 Pin portal v0.3.7 - feature links
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:42:00 +02:00
Bendik Aagaard Lynghaug 16e5a27bde Pin portal v0.3.6 - announced pages
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 12:36:48 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 1bb73aa37a Deploy enables the instance unit
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 1s
A host reboot on 2026-08-30 left the instance down: deploys only ever
started it. enable is best-effort until the host's polkit rule grants
manage-unit-files to deploy-runner.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 12:09:14 +02:00
Bendik Aagaard Lynghaug 1dcf8118d2 Pin portal v0.3.5 - gesture ghost for v2 keys
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
2026-08-30 11:43:10 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 569a155015 Pin portal v0.3.4 - disabled alternatives
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>
2026-08-25 20:28:13 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 951e85db33 Pin portal v0.3.3 - empty-list notice
Lint and reload / lint (push) Successful in 3s
Deploy instance / deploy (push) Successful in 1s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 20:11:22 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 564929db00 Pin portal v0.3.2 - resource empty text
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>
2026-08-25 20:07:25 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 58b03a222e Pin portal v0.3.1 - content-hashed assets (LEPTOS_HASH_FILES=true)
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>
2026-08-25 19:51:29 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 e38b3302f1 Pin portal v0.3.0 - content-owned hero modules
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>
2026-08-25 17:28:34 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 d928fbcbc9 Pin portal v0.2.4 - gates keep the nav
Lint and reload / lint (push) Successful in 3s
Deploy instance / deploy (push) Successful in 0s
Lint and reload / reload (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 17:07:26 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 bd19da9959 Pin portal v0.2.3 - attended-bucket lint, first-nav fix; document the rule
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>
2026-08-25 15:38:08 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 1ff3c971ad Pin portal v0.2.2 - single app-level title
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>
2026-08-24 22:49:14 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 f25dedd742 Pin portal v0.2.1 - asset cache revalidation, stable title on nav
Deploy instance / deploy (push) Successful in 0s
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>
2026-08-24 22:43:14 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 f243494499 Pin portal v0.2.0; document tree routing in the schema reference
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>
2026-08-24 22:33:16 +02:00
Bendik Aagaard LynghaugandClaude Fable 5 380593a998 Pin portal v0.1.0 - first semver release
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>
2026-08-24 21:45:45 +02:00
Bendik Aagaard Lynghaug bb117c1a1b Amend: GITEA_ is a reserved Actions secret-name prefix
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Successful in 0s
2026-08-24 21:26:26 +02:00
Bendik Aagaard LynghaugandClaude Sonnet 5 bf506a83f2 CI: lint on pull requests too, reload only on pushes to main
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
A development-proposal PR previously got no check at all (the workflow
only fired on push to main) - so branch protection's required status
check, the thing that makes the automation's merge_when_checks_succeed
an actual lint gate, had nothing to require. Lint now runs on both
events; the content-reload NATS publish stays push-only.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-12 22:21:27 +02:00
Bendik Aagaard LynghaugandClaude Sonnet 5 bc18add801 Lint with portal's question_lint binary, not the hand-maintained yq/jq script
Lint and reload / lint-and-reload (push) Successful in 2s
lint.sh only ever checked shape (missing id/name, duplicate ids, bad
requirement types) - it never validated transition targets against the
real state machines. question_lint runs portal's actual validation
logic (content::validate_questions) with no portal build required in
this repo's CI, since portal's deploy job now publishes it to a stable
path on the same runner/host.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 21:16:54 +02:00
Bendik Aagaard Lynghaug 1f0d930768 Invoke lint.sh via bash - checkout didn't preserve the exec bit
Lint and reload / lint-and-reload (push) Successful in 3s
2026-08-05 07:20:18 +02:00
Bendik Aagaard Lynghaug fc4cd1b86e Add lint + reload-trigger workflow
Lint and reload / lint-and-reload (push) Failing after 2s
Validates YAML/required fields/duplicate ids/requirement types with
yq+jq against the exact shape content.rs parses (not a full schema
check - that would mean building portal just to lint content), then
publishes portal.content.reload over NATS so every running portal
instance picks up the change without a restart (portal's own
content::watch_for_reload, added alongside this).
2026-08-05 07:19:07 +02:00