Skip to content

Serene Bach

v4.0.0-beta.8 Feature

This release adds 1 notable feature for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

cgi-support markdown single-binary static-site-generator

ReleasePort's take

Light signal
editorial:auto 13d

Version v4.0.0‑beta.8 delivers extensive refactors across multiple modules, updates linting configuration, and fixes an AI UI localization bug.

Why it matters: Plan code reviews for module refactorings; enable gocyclo with min‑complexity 15 in CI; patch the admin display locale fix before deployment.

Summary

AI summary

Refactor across repo/test, mcp, content, public, admin, app/test, importer, ai modules plus lint config updates and AI UI fix.

Changes in this release

Feature Medium

Split Complete in OpenAI-compat and Claude providers in ai module.

Split Complete in OpenAI-compat and Claude providers in ai module.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

Add logo, CI badges, and Ko-fi funding link to README.

Add logo, CI badges, and Ko-fi funding link to README.

Source: llm_adapter@2026-05-21

Confidence: low

Bugfix Medium

Log silently-discarded errors and drop ineffectual assign.

Log silently-discarded errors and drop ineffectual assign.

Source: llm_adapter@2026-05-21

Confidence: high

Bugfix Medium

Enable error-handling linters and resolve findings.

Enable error-handling linters and resolve findings.

Source: llm_adapter@2026-05-21

Confidence: high

Bugfix Medium

Stop shadowing built-in min/max/any and close PR-C series.

Stop shadowing built-in min/max/any and close PR-C series.

Source: llm_adapter@2026-05-21

Confidence: high

Bugfix Medium

Respect admin display locale in /admin/ai/compose.

Respect admin display locale in /admin/ai/compose.

Source: llm_adapter@2026-05-21

Confidence: high

Refactor Medium

Introduce golangci-lint config and clean baseline.

Introduce golangci-lint config and clean baseline.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Enable five already-clean linters.

Enable five already-clean linters.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Enable gocritic and nestif, resolve their findings.

Enable gocritic and nestif, resolve their findings.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Split three high-complexity functions in rebuild mode.

Split three high-complexity functions in rebuild mode.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Enable gocognit, resolve remaining handler findings.

Enable gocognit, resolve remaining handler findings.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Enable unparam and trim dead parameters.

Enable unparam and trim dead parameters.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Dispatch token() via handler map in dateformat module.

Dispatch token() via handler map in dateformat module.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Split 5 CRUD tests into stage helpers in repo/test.

Split 5 CRUD tests into stage helpers in repo/test.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Drop Serve and applyEntryUpdates below gocyclo 15 in mcp module.

Drop Serve and applyEntryUpdates below gocyclo 15 in mcp module.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Split ListView/EntryView Render into helpers in content.

Split ListView/EntryView Render into helpers in content.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Drop legacyCGI/comments/list helpers below gocyclo 15 in public.

Drop legacyCGI/comments/list helpers below gocyclo 15 in public.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Split parsePageForm/parseEntryForm into helpers in admin.

Split parsePageForm/parseEntryForm into helpers in admin.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Split userUpdate/templateAssetUpload/templateImport by @takkyun in admin module.

Split userUpdate/templateAssetUpload/templateImport by @takkyun in admin module.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Drop AI / images handlers below gocyclo 15 in admin.

Drop AI / images handlers below gocyclo 15 in admin.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Split 3 integration scenarios into stage helpers in app/test.

Split 3 integration scenarios into stage helpers in app/test.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Split 4 over-15 gocyclo tests into stage helpers.

Split 4 over-15 gocyclo tests into stage helpers.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Split TestImportCopiesFilteredContent in importer/test module.

Split TestImportCopiesFilteredContent in importer/test module.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Split importSB2 and importSB3 by @takkyun in importer module.

Split importSB2 and importSB3 by @takkyun in importer module.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Split last four gocyclo > 15 functions (misc + boot).

Split last four gocyclo > 15 functions (misc + boot).

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Extract entryColumns constant in repo module.

Extract entryColumns constant in repo module.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Extract column constants for non-entries tables in repo module.

Extract column constants for non-entries tables in repo module.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Extract column constants for templates and users in repo module.

Extract column constants for templates and users in repo module.

Source: llm_adapter@2026-05-21

Confidence: low

Other Medium

Enable gocyclo with min-complexity 15.

Enable gocyclo with min-complexity 15.

Source: llm_adapter@2026-05-21

Confidence: low

Full changelog

What's Changed

  • fix: log silently-discarded errors and drop ineffectual assign by @takkyun in https://github.com/serendipitynz/serenebach/pull/52
  • chore: introduce golangci-lint config and clean baseline by @takkyun in https://github.com/serendipitynz/serenebach/pull/53
  • chore: enable five already-clean linters by @takkyun in https://github.com/serendipitynz/serenebach/pull/54
  • fix: enable error-handling linters and resolve findings by @takkyun in https://github.com/serendipitynz/serenebach/pull/55
  • refactor: enable gocritic and nestif, resolve their findings by @takkyun in https://github.com/serendipitynz/serenebach/pull/56
  • refactor(rebuild): split three high-complexity functions by @takkyun in https://github.com/serendipitynz/serenebach/pull/57
  • refactor: enable gocognit, resolve remaining handler findings by @takkyun in https://github.com/serendipitynz/serenebach/pull/58
  • refactor: enable unparam and trim dead parameters by @takkyun in https://github.com/serendipitynz/serenebach/pull/59
  • fix: stop shadowing built-in min/max/any and close PR-C series by @takkyun in https://github.com/serendipitynz/serenebach/pull/60
  • refactor(dateformat): dispatch token() via handler map by @takkyun in https://github.com/serendipitynz/serenebach/pull/61
  • refactor(repo/test): split 5 CRUD tests into stage helpers by @takkyun in https://github.com/serendipitynz/serenebach/pull/62
  • refactor(mcp): drop Serve and applyEntryUpdates below gocyclo 15 by @takkyun in https://github.com/serendipitynz/serenebach/pull/63
  • refactor(content): split ListView/EntryView Render into helpers by @takkyun in https://github.com/serendipitynz/serenebach/pull/64
  • refactor(public): drop legacyCGI/comments/list helpers below gocyclo 15 by @takkyun in https://github.com/serendipitynz/serenebach/pull/65
  • refactor(admin): split parsePageForm/parseEntryForm into helpers by @takkyun in https://github.com/serendipitynz/serenebach/pull/66
  • refactor(admin): split userUpdate/templateAssetUpload/templateImport by @takkyun in https://github.com/serendipitynz/serenebach/pull/67
  • refactor(admin): drop AI / images handlers below gocyclo 15 by @takkyun in https://github.com/serendipitynz/serenebach/pull/68
  • refactor(app/test): split 3 integration scenarios into stage helpers by @takkyun in https://github.com/serendipitynz/serenebach/pull/69
  • refactor(test): split 4 over-15 gocyclo tests into stage helpers by @takkyun in https://github.com/serendipitynz/serenebach/pull/70
  • refactor(importer/test): split TestImportCopiesFilteredContent by @takkyun in https://github.com/serendipitynz/serenebach/pull/71
  • refactor(ai): split Complete in OpenAI-compat and Claude providers by @takkyun in https://github.com/serendipitynz/serenebach/pull/72
  • refactor(importer): split importSB2 and importSB3 by @takkyun in https://github.com/serendipitynz/serenebach/pull/73
  • refactor: split last four gocyclo > 15 functions (misc + boot) by @takkyun in https://github.com/serendipitynz/serenebach/pull/74
  • chore(lint): enable gocyclo with min-complexity 15 by @takkyun in https://github.com/serendipitynz/serenebach/pull/75
  • refactor(repo): extract entryColumns constant by @takkyun in https://github.com/serendipitynz/serenebach/pull/76
  • refactor(repo): extract column constants for non-entries tables by @takkyun in https://github.com/serendipitynz/serenebach/pull/77
  • refactor(repo): extract column constants for templates and users by @takkyun in https://github.com/serendipitynz/serenebach/pull/78
  • fix(ai): respect admin display locale in /admin/ai/compose by @takkyun in https://github.com/serendipitynz/serenebach/pull/79
  • Add logo, CI badges, and Ko-fi funding link to README by @takkyun in https://github.com/serendipitynz/serenebach/pull/80

Full Changelog: https://github.com/serendipitynz/serenebach/compare/v4.0.0-beta.7...v4.0.0-beta.8

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Serene Bach

Get notified when new releases ship.

Sign up free

About Serene Bach

All releases →

Related context

Beta — feedback welcome: [email protected]