Compare commits

..
81 Commits
Author SHA1 Message Date
ctao d0611ab953 build.sh: KEEP comment states what is actually retained (previous releases besides current) 2026-09-07 05:52:20 +02:00
ctao ab9e4857a4 handoff review fixes: deploy log removed from the repo (internal infra notes do not belong in the handover), diagrams moved to the content repo, pages glob non-recursive, dead badge/pill css and stale design-system pointers removed, node engines declared, README states access and node prerequisites, demo-only dev server settings dropped, audit clean 2026-09-06 15:36:06 +02:00
ctao bd95bacfc5 astro check restored: tsconfig excludes public/ (the 2 MB vendored CMS bundle was what exhausted the heap) and extends tsconfigs/strict; type annotations in template scripts, z from astro/zod; exact version pins; compressHTML true (lossless whitespace, no words glued to links) and explicit trailingSlash/build.format; README: upgrading section 2026-09-06 15:12:56 +02:00
ctao e8b47ac888 runbook: manual retry of a failed release (rm state/last-failed) 2026-09-04 09:08:20 +02:00
ctao 6ed5d5859a build.sh: recreate pruned parent dirs before the content overlay (checkout of the content-free tree removes empty src/content) 2026-09-03 19:50:43 +02:00
ctao 751fd0ec79 em dashes out of skeleton copy (titles use ' - ', prose reworded); split hardening after review: poll errors name the failing repo, failed release is not retried until a new commit, link-content checks all three dirs, editor write-access note, two-repo unit descriptions and comments 2026-09-03 19:41:56 +02:00
ctao 13f945fbf3 content split + copy audit + css polish: content (news/pages/uploads) moves to the ctao/content repo (build overlays it — two-repo build.sh, link-content.sh for local dev); portal copy trimmed to source-documents-only (dashboard empty states, minimal privacy/disclaimer, no mock badges); css: inverted selection on navy bands, featured-card text-track floor, 44px toc target, mobile search dates on own line, footer link row gap; DESIGN.md rewritten as a short handoff 2026-09-03 19:35:22 +02:00
ctao 2e6d374b4b article headlines: --fs-h2 instead of --fs-h1 (long news titles filled the viewport at 56px; editorial 32-40px convention) 2026-09-03 15:14:44 +02:00
ctao c4d21b59be review round 2: deterministic checks (npm run check: build + zero-dep link checker; tsconfig with docs-recommended include/exclude, astro check dropped — OOMs at 12GB on a 200-entry collection), sitemap static pages derived from route files, non-recursive content glob (id/slug trap), --header-h token, honest CDN comments (sveltia UI fonts), preview.css drift (prose a wrap, img block, h1 size) 2026-09-03 15:11:43 +02:00
ctao cec8018c18 handoff pass: vendored sveltia bundle, astro pinned ^7.2.10, root README + refreshed deploy runbook, review fixes (coverless card grid, shared NewsCard/lib, real site origin, nginx security headers, linger step, dead config removed, preview.css sync, tsconfig) 2026-09-03 14:56:53 +02:00
ctao c64528a1d3 cors: full-origin ALLOW_DOMAIN (no SCHEME key in 1.27) + Authorization in allowed headers 2026-07-29 10:47:02 +02:00
ctao 746b015e85 vhost switch: Sveltia backend + Gitea ROOT_URL to https ingress domains, CORS locked to the portal origin 2026-07-29 10:35:26 +02:00
ctao a74eef0e47 ui iteration: nav underline moved to ::before (restores external arrow on Data), card reveal tuned (entry 75%, 28px), reading progress 3px, permanent lifted header shadow; article honesty pass: app-in-path class line (Grav/Tina clarified), 'is Gitea a second CMS' section, no-VPN claim removed 2026-07-29 07:55:22 +02:00
ctao c6de06f017 fix: esbuild css minifier — lightningcss folds animation-timeline into the animation shorthand (invalid), silently killing scroll-driven effects in production 2026-07-28 21:25:59 +02:00
ctao bbbb090cce ui polish pass: scroll-driven effects (card reveal, header shadow, reading progress), nav underline-grow, card meta icons, og:image svg fallback, apple-touch-icon+favicon, hero 472->180KB + preload, article cover CLS guard, ::selection, per-article lang, robots noindex (demo); article: db-cms comparison diagram, 6-year pros/cons, reuse section 2026-07-28 20:57:51 +02:00
ctao 54de9d3ee9 content: demo article tone pass (neutral wording) 2026-07-28 20:08:36 +02:00
ctao f6340a89b3 article meta: inline icons (tag/author/date/read-time) in the existing .ico stroke family 2026-07-28 20:06:49 +02:00
ctao 93712a1481 content: demo article — custom SVG diagrams (machine architecture, publish flow, attack surface) + cover, dated to sit second on the list 2026-07-28 20:03:44 +02:00
ctao 71b9808a11 content: demo presentation article (architecture, links, static-vs-database comparison) 2026-07-28 19:53:25 +02:00
ctao c0edb2033d cms: 1:1 article preview (mirror .prose tokens/rules), webp upload transformations to keep repo lean 2026-07-28 19:49:37 +02:00
ctao 145490fe60 Update Article “the-ctao-eric-council-visits-ctao-north-in-la-palma” 2026-07-28 17:37:51 +00:00
ctao 48fa17c351 Update Article “the-ctao-eric-council-visits-ctao-north-in-la-palma” 2026-07-28 17:36:58 +00:00
ctao ba629e2a96 cms: oauth-only sign-in (documented auth_methods), note on localhost-only local-repo button 2026-07-28 19:33:51 +02:00
ctao d06c2cf0c0 cms: CTAO branding on sign-in (app_title, logo.src instead of deprecated logo_url) 2026-07-28 19:29:04 +02:00
ctao c0d06f4a17 fix: /admin redirect loses port behind tunnel/proxy (absolute_redirect off, trailing slash in footer link) 2026-07-28 19:24:34 +02:00
ctao 99f5601456 deploy log: OAuth app via API, Sveltia pointed at machine Gitea, editor-cycle latency measured (12s/21s) 2026-07-28 18:35:41 +02:00
ctao 29385a5ca7 content: remove latency-test article 2026-07-28 16:31:58 +00:00
ctao 5744c16a1c content: simulate a Sveltia editor save (test) 2026-07-28 16:30:34 +00:00
ctao bc0201252d cms: point Sveltia at the machine Gitea (localhost:3000, machine OAuth app_id) 2026-07-28 18:24:40 +02:00
ctao 46ec5e2e3c deploy: npm ci --ignore-scripts (kills postinstall vector + esbuild ETXTBSY race); persistent npm cache; deployment log 2026-07-28 15:39:00 +02:00
ctao 80d886c0cb deploy: join gitea netns instead of bridge (machine kernel lacks ip_tables for rootless netavark); pin image digests; push-to-create repo 2026-07-28 14:07:44 +02:00
ctaoandClaude Fable 5 ed7a9c01e7 deploy: machine deployment — quadlets (gitea, nginx, isolated build network), poll+build pipeline, runbook
Reviewed (Opus security review, all findings verified) and tested end-to-end
locally: cold build 23s, no-op poll 45ms, incremental rebuild 4s, prune,
gitea-down grace, real bridge network with container DNS.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jWfn3RwPfFGTtBddm36Uy
2026-07-28 13:44:46 +02:00
ctao 4102974927 test: trigger deploy pipeline (empty commit) 2026-07-28 13:33:05 +02:00
ctao beb585e5dc fix: eyebrow/UI font jump — Inter inlined too; zero font swaps site-wide 2026-07-26 00:18:49 +02:00
ctao 47902f7278 fix: hero headline font jump on load — Space Grotesk inlined as data URI in the stylesheet (renders correctly from first paint; no swap-triggered balance reflow) 2026-07-26 00:12:28 +02:00
ctao/demoandClaude Fable 5 0bb378e0cc fix: typing-in-header scroll jump — global scroll-padding-top made Chrome's per-keystroke caret reveal walk the page to 0; offset moved to anchor targets (main [id] scroll-margin-top)
Chrome re-scrolls the focused editable into view on every keystroke and
honours the viewport's scroll-padding-top while ignoring the editable's
own scroll-margin (crbug.com/41492445) — so the sticky-header search
field, which sits above the 76px line and can never be scrolled below
it, dragged the page toward 0 one keystroke at a time, and the previous
negative-scroll-margin counter could not work. CDP harness bisection:
of all suspects (smooth scroll, sticky header, overflow clip,
animations, ambient layer, suggest siblings) only removing the global
scroll-padding stops the jump. TOC/skip anchor offset now lives as
scroll-margin-top on the in-content targets; harness confirms scrollY
constant while typing and anchors still land below the header.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jWfn3RwPfFGTtBddm36Uy
2026-07-25 23:56:05 +02:00
ctao 694b7d2003 fix: page jumped to top while typing in header search — caret-visibility scrolling honours scroll-padding-top; negative scroll-margin on header inputs cancels it (suggestions re-enabled) 2026-07-25 18:59:57 +02:00
ctao 61f5d8444f fix: scroll jumps while typing — overflow-anchor:none on live search lists (Chrome scroll anchoring) 2026-07-25 18:50:54 +02:00
ctao affa3262ef fix: search scroll jump (atomic list swap, no clear-before-await); services grid back to 6 tiles (2 subdued planned) + planned line for the rest 2026-07-25 18:33:06 +02:00
ctao 1ef2cab89e fix: navigation blink root-caused — defer search-client.js (was parser-blocking mid-body), npm run demo serves the production build through the tunnel; DESIGN.md documents the VT removal + font-swap decision 2026-07-25 17:48:48 +02:00
ctao c9161af655 style: login card refined per guidebook — SG-medium h2 headline, D.3.4 hierarchy, logo min-size, token rhythm 2026-07-25 17:35:28 +02:00
ctao d0eeedb62b Revert "feat: login rewritten — split-screen auth (white form column + living aurora pane, tagline), 2026 convention"
This reverts commit 185380ffa5.
2026-07-25 17:25:42 +02:00
ctao 185380ffa5 feat: login rewritten — split-screen auth (white form column + living aurora pane, tagline), 2026 convention 2026-07-25 17:03:40 +02:00
ctao e7c804c9da fix: zero font jumping on navigation — preload both brand fonts + font-display: optional (no late swaps; brand-approved Arial if cold) 2026-07-25 15:36:31 +02:00
ctao 075d44dce3 feat: hero photo — LST-1 under the Milky Way (full-res original fetched from ctao.org) 2026-07-25 15:17:33 +02:00
ctao 6e3f8e23b6 style: one protagonist per surface — photo hero keeps Ken Burns only (flares removed), login gets Gemini-style large soft aurora; services trimmed to 4 real tiles + planned line 2026-07-25 14:55:01 +02:00
ctao 95f8f7b1a6 fix: lava-lamp blobs — defined 30% cores, alpha .5-.6, screen blend, 9s cycle, wide travel (motion objectively 12x stronger: 0.6%->7.6% px delta) 2026-07-25 14:44:23 +02:00
ctao 4082be0c37 fix: hero motion clearly perceptible — Ken Burns on the photo layer, glow opacity pulse, faster cycles (12s/26s) 2026-07-25 14:21:47 +02:00
ctao 97d1a0aa43 content: unpublish test article (will be recreated live during the demo) 2026-07-25 13:45:10 +02:00
ctao 3362b214c3 fix: final-review findings — own-lead descriptions, PHS integration landing, planned tiles, 404, sitemap math, cleanups 2026-07-25 13:13:27 +02:00
ctao ffe54bc766 fix: light dismiss for header menu/search overlays (outside tap closes, never activates) 2026-07-25 12:33:09 +02:00
ctaoandClaude Fable 5 4fa35e5317 fix: mobile gutters, header search tiers, suggest wiring + empty-state, news pagination, hero CTAs, ghost button
- padding-block on .page/.page-head/.article: container gutter survived only >=1176px (shorthand padding zeroed it) — mobile content sat flush left
- restore <=1024px tiers: field hidden, magnifier + menu visible (header no longer overflows at 375px)
- re-wire hdr-q suggestions lost in the field restore; newsSearch inits null-safe
- focused-empty search state: recent queries (localStorage, cap 4) + latest articles (Baymard autocomplete guidance)
- suggest panel 480px (Baymard/DocSearch width convention)
- /news page 1 = 25 items (featured + 24 = even 3-col rows), later pages 24, custom slicing
- hero CTAs: primary Browse news (/news, spec-first real service), ghost Explore the data (external); mock Proposals out of hero
- .btn.btn--ghost compound selector — .btn base defined later was filling ghosts with Cherenkov

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jWfn3RwPfFGTtBddm36Uy
2026-07-25 12:16:41 +02:00
eaf511a976 feat: Apple-grade pass — scale, type, photographic hero, de-noise, single-signal chrome, lighter header
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jWfn3RwPfFGTtBddm36Uy
2026-07-25 11:47:30 +02:00
ctao 3202b853a7 Update Article “the-ctao-eric-council-visits-ctao-north-in-la-palma” 2026-07-25 09:39:48 +00:00
ctao d564f840e8 Update Article “the-ctao-eric-council-visits-ctao-north-in-la-palma” 2026-07-25 09:39:25 +00:00
ctao 0516cae5b2 content: Opus editorial workflow — headings for 132 articles, markdown hygiene for 150 (206 reviewed); disclaimer content credit 2026-07-25 07:54:14 +02:00
ctao d014445248 feat: page composition per IA research — section order, tile icons, cross-page coherence 2026-07-25 07:53:07 +02:00
ctao 419e9a2dd1 feat: content-UX — header search, metadata de-noise, icon/microcopy coherence, article composition 2026-07-25 07:32:11 +02:00
ctao a8833ce736 content: manual editorial pass over all news articles (headings, quotes, captions) 2026-07-25 07:02:35 +02:00
ctao 4ace039233 feat: astro built-ins — news pagination, prefetch, RSS, OG/SEO meta, TOC scrollspy (Starlight-pattern) 2026-07-25 06:57:58 +02:00
ctao 2de0cf148e fix: unclip search-suggest dropdown — nebula clip moved to dedicated .band-bg layer; suggest above sticky header 2026-07-24 23:44:54 +02:00
ctao 3b736af25e feat: design system — ambient motion, spacing/elevation/surface tokens, right-rail TOC, footer links, DESIGN.md 2026-07-24 23:39:17 +02:00
ctao ea4ebd2d70 feat: round 2 — responsive header (width-math tiers), brand footer, editorial article, modern search; 2026 upgrades (view transitions, text-wrap, self-hosted fonts, inline SVG icons, color-mix, subgrid, container queries) 2026-07-24 23:14:09 +02:00
ctao a8c0e802e2 feat: pages collection (privacy/disclaimer/contact) editable in CMS 2026-07-24 23:11:57 +02:00
ctao cf35739a64 feat: portal IA per spec (home entry point, /news, /proposals+redirect, /support), live search + suggestions, article TOC, mobile disclosure menu, CMS preview styles, modernization pass 1 2026-07-24 23:00:07 +02:00
ctao 11e7eb484f content: import remaining ctao.org news (206 articles total, stress test) 2026-07-24 22:37:52 +02:00
ctao 009a6ae52a feat: CTAO-branded CMS sign-in (logo_url plaque asset), EN editor title 2026-07-24 22:19:40 +02:00
ctao 7c949bbb3c style: ctao.org-inspired pill buttons + larger radius; reorder: ERIC Council featured, test article second 2026-07-24 22:14:20 +02:00
ctao 02f30af010 feat: CTAO brand redesign (official tokens, Inter+Space Grotesk, logo), spec-based nav/footer, EN UI, card covers + featured lead, mock badges, Sveltia logo; remove fake demo articles 2026-07-24 22:09:13 +02:00
ctao 778ab25063 config: switch Sveltia backend to localhost (tunnels closed) 2026-07-24 21:18:44 +02:00
ctao 7286121f71 content: restore inline images lost in import conversion 2026-07-24 21:11:02 +02:00
ctao 366c95aa86 content: import 29 news articles with images from ctao.org 2026-07-24 21:05:16 +02:00
ctao f8181396b1 Update Artykuł “testowy-artykuł-tytuł” +2 2026-07-24 18:41:28 +00:00
ctao 757752d91f demo: move test-article source note to the top 2026-07-24 20:40:19 +02:00
ctao 45c5e3c407 demo: richer Markdown formatting in test article (headings, table, lists, quote) + prose styles 2026-07-24 20:37:49 +02:00
ctao 228ad5b60b fix: cover as public-path string (Sveltia uploads) + render cover in article 2026-07-24 20:34:22 +02:00
ctao ed45ff6d54 Create Artykuł “testowy-artykuł-tytuł” +2 2026-07-24 18:31:33 +00:00
ctao 8a2bf69576 restyle: flat Cherenkov-blue design, WCAG (skip link, focus, labels), auto dark mode 2026-07-24 20:20:29 +02:00
ctao 4180882065 fix: new Gitea tunnel URL in CMS config 2026-07-24 20:14:02 +02:00
ctao c2016e723f fix: gitea backend + allowedHosts + admin route 2026-07-24 19:59:45 +02:00
ctao a1c85d73c7 CTAO portal demo (Astro + Sveltia) 2026-07-24 18:09:00 +02:00

Diff Content Not Available