Skip to content

Releases

v0.23.1 — Inspectable application diagnostics

Choose a tag to compare

@ShanilKoshitha ShanilKoshitha released this 21 Oct 19:40
f2e8b5a

v0.23.1 — Inspectable application diagnosis and route inventory

Normal fresh applications now use format 17 and the immutable, publicly verified
v0.23.0 runtime. The scaffold includes ordinary application-owned Go under
cmd/diagnostics and internal/diagnostics; no runtime discovery or reflection.

  • forge doctor aggregates independent HTTP, worker/mail, scheduler, and database
    configuration checks, actual application construction, PostgreSQL availability,
    read-only migration verification, ORM/view freshness, and embedded asset
    validity. Failed/skipped checks exit nonzero with safe repair guidance, not raw
    driver/compiler errors, credentials, SQL, or panic stacks. It never repairs.
  • forge routes:list prints actual production-router registrations, including
    generated resources and handwritten routes, without requiring reachable
    PostgreSQL or starting services. It is not an inferred authorization report.
  • Diagnostic subprocesses use readonly modules, disabled workspaces, external
    shared caches/temporary builds, bounded output and deadlines, and the existing
    complete process-tree cancellation boundary. No implicit migrations, generated
    source publication, background service startup, SMTP connection, or job claims.
  • Application checks, constructors and route wiring remain explicit ordinary Go.
    Replace them directly. Custom application code is trusted code, not sandboxed;
    it must remain side-effect-free when used for inspection. Direct Go commands
    remain available with documented caller-owned build/cache and output boundaries.
  • Existing applications are not rewritten or injected with diagnostics. Older
    formats receive an unsupported-command explanation. Historical generation
    contracts and the authentic public format-16 compatibility workflow remain.

The runtime was published and verified before this scaffold adopted its exact
public module sums. Runtime v0.23.0 remains fixed at
8f92f31557d05920bcdef25376dcbd3b181c5b96.

See the diagnostic guide,
acceptance contract,
and scorecard.

Published from qualified merge f2e8b5a42d84250d2ee22a6bd303b340897d5fcf,
tree e10a3306b2f5f76f4b51d89d0df6a17f5f743ad8, identical to reviewed
head 56a1bf86b360af23a6236200e03dffcd26166542.

Both complete Windows/Linux workflows passed and were independently audited:
push qualification
and PR qualification.
Each Linux job executed all sixteen product stages, historical public formats
7–16, the normal no-replace format-17 scaffold, and all eleven PostgreSQL journeys
twice, including all eleven diagnostic states and all six scale cases twice.
Those final PostgreSQL stages had no failures, skips, panics, or timeouts
(640.751s / 545.593s). Framework CLI race tests actually executed
(1160.965s / 962.324s); twenty unchanged runtime-package results reused Go's
test cache. Windows installer, CLI tests, vet, and build passed in both jobs.

The independent native fresh -race -count=1 full-framework run also passed,
followed by whole-framework vet and diff checks: 26 packages, 648 top-level
tests, CLI 1505.539s. Two Windows-specific file-mode tests were skipped and are
disclosed in the scorecard history; this is not a zero-skip Windows claim.

Public v0.23.1 installation and no-replace application qualification passed
after publication. The downloaded installer produced the exact public CLI
module checksum h1:QT1h4MJZrWp4+nDyLCUtFlq10C9XqjiBbO8YhhEKsdo=.
A normal format-17 Category/Ticket/LegacyIssue app passed tests, fresh race tests,
vet, artifact/module checks, and all five process builds on public v0.23.0.
Offline/private-input diagnosis, actual route inventory, healthy ten-check CLI
and seven-check direct Go diagnosis, complete application/database nonmutation,
exact owned-schema cleanup, and process-environment restoration all passed.
Independent artifact/log/schema-absence review was clean.

Two earlier public-proof failures remain recorded, not counted as passes: an
overstrict assertion about optional older shared-cache provenance fields, and
a Windows scaffold-rename Access denied before application publication. A
byte/mode-identical complete ordinary-Go control reproduced the latter errno 5
without GoForge code; the specific host cause remains unidentified. No product
or ACL changes or automatic success-until-green retry were used. One
predeclared fresh full proof completed all unchanged workflow assertions.

v0.23.0 — Read-only diagnostic runtime primitives

Choose a tag to compare

@ShanilKoshitha ShanilKoshitha released this 21 Oct 18:25
8f92f31

v0.23.0 — Read-only diagnostic runtime primitives

Adds explicit ordinary-Go building blocks for application diagnosis:

  • config.FieldError exposes a trusted field key and rule through errors.As.
    Reader conversion failures discard supplied values and value-bearing parse
    causes; parsing, fallbacks, required values, and joined accumulation remain.
  • Migration verification exposes ErrPendingMigration, ErrMigrationDrift,
    ErrLedgerUpgradeRequired, and ErrInvalidMigrationSource through errors.Is.
    Verify remains read-only: no migration, ledger upgrade, transaction, lock,
    checksum backfill, or rebaseline is performed.
  • Incomplete, inconsistently named, empty, and whitespace-only SQL pairs fail
    source validation before ledger inspection. This is not evidence that the
    affected migration was applied. Complete applied source-pair removal, renamed
    applied records, and changed applied checksums retain distinct drift handling.

Typed migration categories do not sanitize every underlying operational or
filesystem error. Application diagnosis should emit safe summaries rather than
printing raw driver errors, recorded names, or SQL.

This is a runtime-first release. Its CLI still generates format-16 applications
pinned to public v0.22.0. Application-owned forge doctor and forge routes:list
require separately qualified format-17 adoption; they are not enabled for older
applications, and existing source is never automatically rewritten.

The complete v0.23 milestone is not accepted by publishing these primitives.
Qualification, immutable public origin/checksum verification, and the separately
qualified adoption release are recorded in the
milestone
and scorecard.
Runtime preparation merged at 8f92f31557d05920bcdef25376dcbd3b181c5b96,
with the exact qualified tree 0db532b481932e211d1c7b54d27ce150fe553fc1.
Both complete qualification matrices passed:
push and
pull request.
Independent log review confirmed all eleven generated PostgreSQL journeys twice
per matrix (22 top-level passes each), including all eleven diagnostic states,
without skips or failures in those stages. Native Windows whole-framework race
and vet also passed; platform-specific mode/permission skips were recorded.

v0.22.1 - Resource browsing and relationship choices at scale

Choose a tag to compare

@ShanilKoshitha ShanilKoshitha released this 21 Oct 17:07
d71a93a

v0.22.1 — Resource browsing and relationship choices at scale

Fresh applications use format 16 and pin the independently published v0.22.0 runtime with its verified public checksums.

  • Browser and JSON indexes share application-owned typed filtering, literal text search, allowlisted sorting, and bounded pagination.
  • Relationship forms support Search, ID Lookup, Previous, and Next without JavaScript. Refreshes retain drafts, independent selections, validation correction, and optimistic versions without domain writes.
  • Relationship labels remain ID-only unless explicitly declared choice-safe with --choice-label category:title. That declaration permits the target text on the source's authorized create/edit forms; it does not grant target-list access or relax ownership.
  • Requests use explicit save/refresh intents. Missing, duplicate, or unknown intents reject rather than falling through to a write.
  • Repositories, query structs, controllers, route wiring, and compiled Forge templates remain ordinary application-owned Go/HTML with tested replacements.

Generated formats 8–15 retain their released output and contracts. Existing applications are not automatically rewritten or upgraded. The earlier v0.22.0 runtime-first CLI intentionally retains format 15; install v0.22.1 for this new application workflow.

go install github.com/ShanilKoshitha/goforge/cmd/forge@v0.22.1
forge new issueboard --module example.com/issueboard

Qualification covers the complete Linux/PostgreSQL and Windows matrices, public historical applications, fresh no-replace format-16 applications, and repeated 10,000-category owner/privileged browser and JSON journeys. See the milestone criteria and scorecard for exact scope and evidence.

Public distribution verification passed after publishing immutable tag v0.22.1 at d71a93af85d212956fcc5f08bd17f2796f914a50: a fresh-cache public proxy/SumDB download verified origin and exact CLI checksum, the downloaded Windows installer installed without persistent PATH changes, and a fresh format-16 application without module replacements passed ordinary/race tests, vet, and server/worker/scheduler/console builds against public v0.22.0. CLI module sum: h1:02D7JfoxlnU523K0lcmj9MTILLM0h0grV1f/zZ5EJME=. The scorecard records the interrupted initial Windows directory-rename attempt separately from the complete successful confirmation; no published tag was rewritten.

GoForge v0.22.0 — Typed literal search runtime

Choose a tag to compare

@ShanilKoshitha ShanilKoshitha released this 21 Oct 15:17
5efd243

v0.22.0 — Typed literal search runtime

Adds explicit, parameterized case-insensitive substring predicates to the Go ORM:

  • orm.ContainsFold for string columns, including named strings.
  • orm.ContainsFoldNullable for nullable string columns.
  • Literal %, _, !, and backslash behavior, tested against PostgreSQL in both database and transaction paths.

The predicates compile to inspectable parameterized SQL with a fixed escape character. Existing caller-pattern Like behavior remains unchanged. PostgreSQL supplies text/collation behavior.

This is a runtime-first release. The CLI still generates format-15 applications pinned to public v0.21.0. Scalable resource browsing and relationship forms are not enabled by this release; they require separately qualified v0.22.1 adoption. Existing applications are not rewritten or upgraded automatically.

Qualification: both complete corrected CI matrices passed at 5cf1222, including Linux/PostgreSQL, Windows, race/vet/build, public historical application compatibility, and repeated generated PostgreSQL workflows. Runtime PR #41 merged as 5efd243 with an identical tree; exact-main CI run 39621243237 also passed its full matrix. Public distribution verification is recorded separately after publication.

Install this runtime-first CLI with go install github.com/ShanilKoshitha/goforge/cmd/forge@v0.22.0. Use the separately qualified adoption release for format-16 resource browsing when it becomes available.

GoForge v0.21.1

Choose a tag to compare

@ShanilKoshitha ShanilKoshitha released this 21 Oct 13:27
8be0d79

GoForge v0.21.1 adopts the published v0.21.0 view compiler in fresh format-15 applications.

  • Application-owned input, textarea, and select components provide associated labels, help, and errors. Password controls never recover old values, including mixed-case HTML input types.
  • Authentication pages use separate token, password, and action form state. Typed resource forms preserve meaningful empty, zero, false, nullable, and relationship values while reporting scalar and semantic validation errors together.
  • Invalid browser update versions return a usable correction form after an authorized lookup. Valid stale versions retain optimistic conflict detection, and rejected forms do not write resource data.
  • Windows installation reports progress, verifies the installed CLI, and configures Go's binary directory on PATH.

Generated controllers, SQL, routes, and templates remain ordinary application-owned source. Older project formats retain their existing contracts; the new form components and recovery behavior apply to format 15. Fresh applications pin immutable public v0.21.0 without a local module replacement.

Install:

go install github.com/ShanilKoshitha/goforge/cmd/forge@v0.21.1

See the repository scorecard for acceptance and compatibility evidence. Existing applications may copy and adapt the generated code; this release does not automatically rewrite application-owned files.

GoForge v0.21.0

Choose a tag to compare

@ShanilKoshitha ShanilKoshitha released this 14 Sep 22:22
a1960a4

Backward-compatible view runtime release. Adds compile-time component attribute emission and forwarding, deterministic class merging, strict static-name and single-sink validation, and additive explicit form selection for nested and multi-form views. Fresh applications intentionally remain format 14 and pin the public v0.19.0 runtime; format-15 accessible form adoption follows only after this release is available through the Go proxy and checksum database.

GoForge v0.20.0

Choose a tag to compare

@ShanilKoshitha ShanilKoshitha released this 14 Sep 20:15
273f735

GoForge v0.20.0 adds named, expiring personal API tokens to fresh format-14 applications.

Highlights:

  • Create, list, and revoke tokens through ordinary JSON controllers or the CSRF-protected account-security page.
  • Return the raw token exactly once while persisting only a selector and cryptographic digest.
  • Authenticate strict Bearer credentials as the existing auth.User, preserving application-owned policies and SQL scopes.
  • Invalidate prior tokens when credentials are rotated through password change, password reset, or sign-out-everywhere.
  • Keep routes, middleware, repositories, migrations, controllers, and views as inspectable application-owned Go, SQL, and Forge templates.

Fresh format-14 source intentionally pins the public v0.19.0 runtime because this workflow adds application-owned source and requires no new runtime package.

Install:

go install github.com/ShanilKoshitha/goforge/cmd/forge@v0.20.0

See the personal API token guide for the generated workflow and security model.

GoForge v0.8.1 — Account integrity and bounded sessions

Choose a tag to compare

@ShanilKoshitha ShanilKoshitha released this 06 Sep 01:14

Full Changelog: v0.8.0...v0.8.1

GoForge v0.7.1

Choose a tag to compare

@ShanilKoshitha ShanilKoshitha released this 05 Sep 23:48

Accepted v0.7 request-boundary release. Adds typed composable validation, exact JSON and form failures, bounded HTTP policy, correlated request logs, explicit CORS and trusted-proxy configuration, shared PostgreSQL authentication throttles, a frozen format-6 compatibility gate, and repeated generated-application PostgreSQL journeys. v0.7.1 fixes clean-cache scaffold checksums without rewriting the immutable v0.7.0 tag.