Shipping in the open

Changelog

Every release across CodigoSH's projects and this website — newest first.

  1. Lastboard v1.7.0

    Your board stands on its own

    Added

    • Add a widget for the services you monitor
    • Bring in the icons a board was already using
    • Keep demo instances out of search results
    • Keep picked icons on your own instance
    • Move every setting into the widget's config screen
    • One list of the containers you chose, from every host
    • Open a container's service from its row
    • Pick a host on the left, configure it on the right
    • Read the address a container labels itself with
    • Show the widgets the demo never had
    • Store the icon when a bookmark or container is saved
    • The brand orange is the default accent, everywhere it was blue
    • The same status dot the monitor widget uses

    Fixed

    • A task list's boxes are meant to be untickable
    • Accept the addresses Docker itself uses
    • Build the split from the form's own primitives
    • Dialogs opened from Preferences dim what is behind them
    • Fill the telemetry cell while its reading is on the way
    • Keep test and CI commits out of the release notes
    • :latest is the stable release again, not a beta from August
    • Let the Data panel read as three choices, not one wall
    • Make clearing the history say what it clears
    • Make the stable path answerable without a terminal
    • Monitoring stops showing settings it hasn't read yet
    • Name the widget, align its columns and use the house dropdown
    • One name for the default dashboard, in English, on every install
    • Quotes and horizontal rules come out of the widget again
    • Restore the vertical spacing every settings screen had lost
    • Saving a Notepad's settings no longer erases the note
    • Say where the icons come from even when nothing is pending
    • Show one host's containers at a time
    • Start the picker clean every time it opens
    • Stop cutting container addresses in the settings screen
    • Stop the release titles from becoming features
    • Stop the width rule from collapsing the toggle switches
    • The port in the example address follows the connection type
    • The ports column takes what it needs and the name keeps the rest
    • The preferences panel uses the width it has
    • The settings window slides in again

    Changed

    • Ask who you are without waiting for the locale file
    • Fold Alerts into Monitoring and stop over-explaining
    • Give every widget the same header
    • One settings window, at one size
    • Read a host's container stats in one request
    • Read the token in one place
    • Resolve picker results in one place
    • Stop rebuilding every widget on each re-render
    • Summarise the overview in the database
    • Drop nine strings nothing asks for any more
    • Translate the monitoring widget into every locale
  2. Lastboard v1.6.2

    Update window, mobile scrolling and UI polish

    Added

    • Let the API widget's view be chosen explicitly
    • Put the whole update behind one modal with a timeline
    • Report the update progress step by step

    Fixed

    • Degrade gracefully on an unexpected weather payload
    • Drop the ignored User-Agent on the geocoding request
    • Fail the build when asset sync fails
    • Flip the forecast tooltip when the top bar would cut it off
    • Keep the clock working on an unusable time zone
    • Let config modals scroll without clipping select dropdowns
    • Let the dashboard scroll down to the last item on mobile
    • Make the colour picker usable with touch and screen readers
    • Name an expired session instead of blaming the update
    • Prune history on startup and forget deleted monitors
    • Refresh the starter dashboard for new installs
    • Reject setup early and cap request bodies
    • Restore the dark autofill colours in every text field
    • Stop the scrollbar flashing when a dialog opens, and cover the rest
    • Stop the scrollbar flashing when a widget dialog opens
    • Tolerate a missing build stamp outside the bundler

    Changed

    • Define the shared style primitives in one place
    • Drop the shared input rule that overrode the components
    • Make locale files cacheable
    • Stop embedding duplicate and unused assets
    • Unify motion curves, dialogs and inputs
    • Describe the update window
    • Drop an unused component and its dead translations
    • Lay the API widget's advanced form out in two columns
    • Make the release script fail safely and preview itself
    • Stop truncating long select labels and drop the native resizer
    • Translate the update window into every locale
  3. Lastboard v1.6.1

    Added

    • Six more service presets for the API widget — Proxmox VE, Home Assistant, Uptime Kuma, Overseerr/Jellyseerr, Bazarr and Prowlarr. A preset can now ask for one extra detail on top of the base URL and credential — the node, entity or status page it should read — which is what these services need to point at something specific.
    • A search box in the service picker — the list holds seventeen services now, so you can type the name instead of scrolling for it.
    • Uptime monitoring in the live demo — the demo dashboard shows the status page, per-service latency history and the hover tooltip, with one service in an outage so the feature reads at a glance.

    Changed

    • The API widget documentation covers the extra preset field, and explains why an endpoint that answers with a top-level JSON array cannot be rendered as a list.
    • The Go module path now points at this repository instead of the project's former home.
    • The updater's download, checksum and archive-extraction steps are covered by tests, as are the colour picker's conversions.
  4. Lastboard v1.6.0

    Added

    • 1.6.0 beta cycle: cross-dashboard item moves, generic API widget with presets, uptime monitoring with history and alerts, Homepage/Dashy import and native export, and a card motion system
    • Accept dashboard_id in UpdateItem to move items
    • Add 8 more service presets
    • Add a Move action to the reorder sheet
    • Add an Open Collective donation link to About
    • Add append-only monitor_checks history store
    • Add block auto-place primitives
    • Alerts via ntfy/Gotify/webhook
    • Always-on backend scheduler
    • Arrival highlight after moving between dashboards
    • Auto-refresh the open history drawer
    • Bucket the heartbeat across the whole range
    • Built-in uptime monitoring, a generic API widget, cross-dashboard moves and Homepage/Dashy import
    • Bulk-move items via a kebab menu and topbar selection
    • Clear-data action, Exit button, wider list
    • Coordinated ranges and Uptime-Kuma-style hover
    • Dissolve cards on delete
    • Exclusive topbar modes and a donation link in About
    • Full-screen status page with shared detail
    • Generic API widget (metric mode)
    • Group the service picker by category
    • Guided service presets (AdGuard, Paperless, Immich)
    • Import UI + materializer + native export button
    • Keep topbar, redesign list rows, red clear menu
    • Latency chart, incidents and range selector
    • Make edit, settings and the status page exclusive modes
    • Materialize newly-created cards
    • Move bookmarks and widgets between dashboards
    • Move sections between dashboards with their subtree
    • Native YAML export + competitor parsers
    • On/off toggle and topbar status icon
    • Per-item history and uptime endpoint
    • Redesign toasts (bottom-center, actions, progress bar)
    • Rich hover tooltip on status dots
    • Server-side fetch endpoint for the generic API widget
    • Settings endpoint for mode and interval
    • Status-checks toggle in settings
    • Status-history detail drawer
    • Status-page overview of all monitors
    • Support list mode via array path extraction
    • Support non-selectable category headers
    • Timed probe and monitored-item enumeration
    • Uptime-Kuma-grade detail redesign
    • Visible board entrance + stronger create/move/delete cues

    Fixed

    • Allow selecting an option with an empty value
    • API config polish and config-on-add
    • History drawer crashed on services with no outages
    • Invalid Date in history timestamps
    • Probe the URL stored in bookmark content
    • Robust positioning, centered callout, click-to-toggle
    • Stop run-together changelog headers
    • Use the panel's own field styling for notify URL/token

    Changed

    • Dedicated Data section, disambiguate backup vs import
    • Drawer footer and modal-style close button
    • Recent-beats heartbeat like Uptime Kuma
    • Split Monitoring and Notifications sections
    • Chore(lint): modernize remaining b.N benchmarks to b.Loop()
    • Chore(lint): satisfy sqlrowserr and modernize analyzers
    • Clarify that new dashboards are created from the Add menu, not the switcher
    • Docs(changelog): reflow historical entries to the correct formatting
    • Docs(readme): cover the API widget, monitoring and import/export
    • Document API widget, monitoring, dashboards, import/export and preferences
    • I18n(dashboard): clarify move picker title as 'Move to… (Dashboard)'
    • I18n(dashboard): translate the move-to picker into all locales
    • Revert(mobile): drop move-to-dashboard from the reorder sheet
    • Show the Add (+) menu when creating dashboards and bookmarks
    • Style(monitoring): wider, column-aligned status-page list
    • Use the new product mockup as the README hero
  5. codigosh-web v1.2.3

    Added

    • Earlier font loading and a smoother hero animation

    Changed

    • Let the compositor run the hero pulse
    • Preload the mono face too, it is above the fold
  6. codigosh-web v1.2.2

    Added

    • Correct 404s, stricter security headers, and lighter icons, fonts and screenshots
    • Publish llms.txt
    • Send HSTS and a content security policy

    Fixed

    • Answer unknown paths with a real 404

    Changed

    • Cache assets in tiers instead of five minutes for everything
    • Correct the language setup, docs sync and scripts
    • Give the landing screenshots a srcset
    • Preload the two faces above the fold, keep fonts out of the CSS
    • Size the brand mark for each place it is used
  7. codigosh-web v1.2.1

    Added

    • Self-hosted fonts, optimized landing images, and consistent third-party licensing

    Fixed

    • Stop run-together changelog headers

    Changed

    • Add OFL notices for bundled fonts and declare license
    • Align attribution with the CodigoSH convention
    • Optimize project landing screenshots via astro:assets
    • Self-host fonts with @fontsource, drop the Google Fonts CDN
  8. codigosh-web v1.2.0

    Added

    • Derive a meta description from each doc's first paragraph
    • Reframe the hub around a growing suite of self-hosted tools
    • Reusable landing template with editorial content
    • SEO overhaul: reusable project landing template, a full Lastboard landing, auto-generated documentation meta descriptions, and a suite-first home

    Fixed

    • Cap screenshot height so portrait shots don't dominate
    • Detect project licenses from the LICENSE file (Forgejo API omits them)
    • Install git before checkout so the release job has a real repo
    • Mockup hero, uniform screenshot gallery, correct license
    • Replace 'all rights reserved' with an open-source footer notice
    • Run the release job on node:20-alpine so checkout works
    • Use English copy in fallback project data

    Changed

    • Add Apache-2.0 license to align with the other CodigoSH repos
    • Fix run-together section headers in the 1.2.0 entry
  9. Lastboard v1.5.6

    Added

    • Accessibility improvements for modals and keyboard navigation
    • Clearer, consistent save model in preferences
    • Ed25519 release signing, verified in the auto-updater (OPS-02)
    • Enable release signing (embed public key) + sign verify mode
    • Fix profile editing on upgraded databases and require signed updates
    • Improve modal and keyboard accessibility
    • One honest "Saved" per auto-saved preference
    • Quieter WebSocket reconnect logging
    • Redesigned preferences panel with auto-save and consistent labels
    • Regroup preferences so every card says what it holds
    • Require a valid signature on every update (OPS-02)
    • Security and reliability improvements with updated dependencies
    • Signed updates, security hardening, accessibility and a redesigned preferences panel

    Fixed

    • Accept X-Forwarded-Host in WS origin check for reverse proxies
    • Body limits, IDOR checks, proxy-header gating and robustness
    • Dispatch retention prune after a successful release, not on tag push
    • Drop script-src 'unsafe-inline', use a per-request nonce (SEC-06)
    • Escape user-controlled values across templates (XSS hardening)
    • Harden WebSocket hub and validate Markdown link schemes
    • Quick wins — healthcheck PORT, install RED, noopener, strings.Contains
    • Quieter WebSocket reconnect logging
    • Restore dropped column migrations so upgrades never break
    • Sanitize Notepad content on load (XSS-01)

    Changed

    • Add shared escape helpers and harden sanitizer URL scheme
    • Drop now-unused serveFile helper
    • Drop unnecessary 'as any' casts in BookmarkGrid (CAL-03)
    • Migrate inline event handlers to addEventListener (CSP step 1)
    • Add .env.example documenting all runtime variables (OPS-01)
    • Add -race, govulncheck and staticcheck to the test workflow (TEST-04)
    • Build the frontend in the security job before govulncheck/staticcheck
    • Chore(deps): bump golang.org/x/net to v0.53.0 and Go to 1.26.5 (govulncheck)
    • Chore(settings): drop the leftovers of the removed density slider
    • Chore(test): use b.Loop() in crypto benchmarks
    • Cover auth middleware, WS hub and Docker client (TEST-02)
    • Docs(go): clarify migration ordering and host-vs-cgroup telemetry (CAL-04/05)
    • Make NOTICE match what the project actually ships
    • Revert(api): DeleteItem stays idempotent (undo ROB-06 404)
    • Revert(api): keep IsSecureRequest lax on X-Forwarded-Proto (undo SEC-02)
    • Sync guides with the current settings panel and update path
    • Trim credits to licence-required attributions
  10. Lastboard v1.5.5

    Added

    • Content widgets fill their tile (no redundant card padding); docker widget 5x3 for a legible container list
    • Demo telemetry widget uses its real 1x3 size
    • Fix mobile edit sheet (eye toggle, alphabetical hidden) and demo clock, status pings and Docker update notice
    • Fixed 3x2 size and a 6-day forecast
    • Fuller, tidier dashboards with more sections and bookmarks
    • Make all widgets and multiple dashboards work without a backend
    • Markdown widget uses interior space (reduced padding); demo Home layout with real widget sizes
    • Mobile bookmark visibility toggle and a revamped interactive demo
    • Notepad read-only padding and a fuller, tidier demo with more sections and bookmarks
    • Notepad toolbar docked inside the widget (no more overflow in edit mode)
    • Refresh seed content with two dashboards and modern icons
    • Revamped interactive demo (all widgets, two dashboards, modern icons) and mobile bookmark visibility
    • Tighten widget padding to use the interior space
    • Toggle bookmark visibility from the reorder sheet
    • Verify the automated release/image retention pipeline end-to-end
    • Weather widget fixed 3x2 with 6-day forecast, and a leaner curated demo at real widget sizes

    Fixed

    • Clock size, green status pings and Docker update notice
    • Dock the toolbar inside the widget
    • Give the telemetry widget its real 1x3 size
    • Let content widgets fill their tile
    • Minimal padding in read-only mode
    • Repair eye-toggle, sort hidden alphabetically, shorten label
    • Size the welcome markdown to its content and rebalance Home

    Changed

    • Docker widget at 5x3 for a legible container list
    • Leaner, curated dashboards at real widget sizes
    • Add automated release/image retention (prune-releases)
    • Add bookmarks guide covering mobile visibility and ordering
    • Correct outdated details and remove broken footer nav
    • Fix ineffective .gitignore patterns
    • Point README documentation links to codigosh.com
    • Remove deployment platform reference
  11. codigosh-web v1.1.0

    Added

    • Signature node-network background: a living constellation that adapts to the theme and reacts to the cursor
    • Appearance panel to customize theme (light, dark, system), font (including the accessible OpenDyslexic), text size and layout width, all persisted and applied before first paint
    • Current version badge on each project card
    • Space Grotesk display typography for a distinctive visual identity
    • Sponsor shortcut in the header

    Changed

    • Redesigned the homepage around CodigoSH as a collective, presenting the projects as nodes in the network
    • Promoted the icon button to a shared UI utility

    Fixed

    • Keep the mobile menu button hidden on desktop and restore the menu toggle
    • Removed deployment-platform references and dead internationalization code
  12. Lastboard v1.5.4

    Added

    • Localized, informative update error messages

    Fixed

    • Log the underlying cause when download/checksum fails
    • Publish the Forgejo release as draft until assets are uploaded
    • Show real, localized messages when an update fails

    Changed

    • Ci(forgejo): revert upload-artifact to v3 (v4 unsupported on Forgejo)
  13. Lastboard v1.5.3

    Added

    • Minor updates

    Fixed

    • Normalize release notes to Keep-a-Changelog format

    Changed

    • Extract pure i18n/icon-search logic into testable helpers
    • Ci(forgejo): drop dead develop branch triggers
    • Ci(forgejo): run full frontend test suite and bump upload-artifact to v4
    • Docs(changelog): remove deployment platform references
    • I18n: translate remaining English phrases (el, ur, hi, fa, id, ar, bn)
    • Style(widgets): capitalize clock/weather text instead of uppercase
    • Test(api): add characterization tests for UpdatePreferences, PerformUpdate guards and compareVersions
  14. codigosh-web v1.0.0

    Added

    • Full organization website: projects showcase, per-project pages, documentation, changelog, and organization sections
    • Docs-as-code pipeline: sync project documentation from each Forgejo repo at build time
    • Dynamic OpenGraph images at build time with CodigoSH brand identity
    • Changelog page aggregating stable releases from all showcase projects
    • Automatic release notes backfill from each repo's CHANGELOG.md when a release body is missing
    • Project filter pills on changelog, latest release chip on homepage, nav dot for recent releases
    • Open Collective support section and footer link
    • SEO: JSON-LD structured data, sitemap, canonical URLs, web manifest
    • Release script and Forgejo Actions workflow

    Changed

    • English-only site
    • CodigoSH brand orange (#e8520e) as accent color throughout
    • Forgejo API reads anonymously — no token required for public repos
    • Self-hosted static site served by Caddy
  15. lastboard-agent v1.0.6

    Added

    • Initial release of Lastboard Agent — Docker API proxy for the Lastboard dashboard

    Fixed

    • Correct catch-all routing in Go ServeMux
    • Make Docker API version transparent: forward client version to daemon
    • Fix proxy memory leak for streaming endpoints

    Changed

    • Change default port from 2377 to 2375
    • Harden agent binary: strip symbols, trim paths, no CGO
    • Migrate CI to self-hosted Forgejo Actions
  16. Lastboard v1.5.2

    Added

    • Block the in-app updater when the binary isn't writable
    • Optional unprivileged execution via PUID/PGID

    Fixed

    • Preselect profile, stop toggle-close, remove section-switch zoom

    Changed

    • Extract templates and stylesheets from components
    • Remove dead types and tighten any usage
    • Split long handlers into cohesive helpers
    • Add native characterization tests for core logic
    • Apply gofmt (struct tag alignment, Go 1.26)
    • Compile the cmd/lastboard package instead of main.go only
    • Document PUID/PGID and unprivileged-mode updates
  17. Lastboard v1.5.1

    Added

    • Add mobile reorder — drag-to-reorder bookmarks on touch devices
    • Eliminate all 40 ts-ignore directives via proper type declarations
    • Fix gopls warnings: unused params in serveLoginPage/serveIndexDemo and tagged switch on dbTheme
    • Fix section drag and WebSocket server timeout
    • Fix static asset gzip compression and immutable cache headers
    • Improve status dots, notepad dock UX and health check resilience
    • Minor updates
    • Security hardening: zip-bomb cap, stricter file/dir perms, full cookie flags on logout, errcheck fixes in update flow
    • Show skeleton cards immediately on page load instead of blank screen
    • Stable release 1.5.1 - auditoria QA completa, Go 1.26.2, security hardening
    • Test release for update system verification
    • Upgrade Go 1.26.2, eliminate 49 unused variables/imports, enforce noUnusedLocals in tsconfig

    Changed

    • Batch health checks, modal blur, faster boot sequence
    • Rename FORGEJO_TOKEN secret to CI_TOKEN
  18. Lastboard v1.5.0

    Added

    • Create and manage multiple dashboards independently

    • Set any dashboard as default

    • Each dashboard has its own widgets, layout, and background

    • Full CRUD via a clean management interface

    • Per-dashboard background image with live preview

    • Auto-resize and compression to keep storage lean

    • Available in dashboard settings

    • Monitor and manage Docker containers directly from Lastboard

    • Real-time stats with concurrent chunked polling

    • Optimized sequential queue to prevent 429 rate limiting and UI flicker

    • Protection against accidental stop on the Lastboard Agent container

    • Single preference for metric/imperial replacing per-widget config

    • Applies across Weather, Telemetry, and all relevant widgets

    • Optional city name display with native translations

    • Blank state when no city is configured

    • Syncs widget config from store on item-id change

    • Opt-in persistent login for 30 days

    • Translated across all 20 supported languages

    Starting with v1.5.0, Docker images are built for linux/amd64 and linux/arm64 natively (no QEMU emulation):

    docker pull git.codigosh.com/codigosh/lastboard:latest
    

    Tags: latest (stable), beta (pre-release), vX.Y.Z (pinned)

    Fixed

    • Fixed version not showing correctly in Settings > Info (now injected at build time via ldflags)
    • Fixed demo mode crash (TypeError: o.find is not a function) on bootstrap — /api/dashboards now correctly returns an array
    • Fixed wrong-language strings in zh, fr, and ru locales
    • Fixed avatar upload causing LocalStorage quota errors (client-side resize before storage)
    • Fixed Weather widget showing errors on temporary network failures (silent retry up to 2x before showing error)
    • Fixed DOM thrash on Weather widget stats updates (smart diffing)

    Changed

    • Migrated CI/CD from GitHub Actions to self-hosted Forgejo Actions (git.codigosh.com)
    • Added integration test suite: auth, dashboard, user, system handlers
    • Removed 62 unused i18n keys (from 452 → 390)
    • Simplified role system to admin / user only (no more stale administrator references)