Conversation
Reference: core/api/LICENCE. Co-Authored-By: Cladius Maximus <cladius@lethean.io>
…untime subdirs The .core/ root holds tracked Lethean canon config (go.yaml, build.yaml, agents.yaml, etc.). Only the runtime subdirs (workspace/, vm/, cache/, runtime/) and per-repo runtime artifacts should be gitignored. Brings this repo into the managed canonical set per audit-sweep discovery filter. Co-Authored-By: Cladius Maximus <cladius@lethean.io>
…(Mantis #1336)
go-html gets the canonical NewService(opts) + Register(c) dual-method
shape per #1336. Implementation in service.go with //go:build !js so
the WASM build (per RFC §7's 3.5 MB raw / 1 MB gzip budget) doesn't
pull in dappco.re/go.
html.NewService(html.Options{Locale: "en", Translator: t})
→ factory for core.WithService
html.Register(c) → defaults
svc.Context() → pre-built default Context
ready for Render(node, ctx)
Service struct embeds *core.ServiceRuntime[Options] for typed options
access and holds a pre-built default Context. Translator is optional —
nil leaves the package's existing fallback behaviour intact.
The shared rendering surface (context.go, node.go, render.go,
responsive.go, layout.go, etc.) stays core-free so the WASM build is
unaffected. Service registration is server-side only.
Smoke verified:
- GOWORK=off go vet ./... — clean
- GOWORK=off GOOS=js GOARCH=wasm go build ./... — pre-existing
Imprint failure unrelated to service.go (verified by stashing —
same failure on pristine HEAD)
- TestNewService_DefaultOptions / TestNewService_LocaleOption /
TestRegister_Imperative — all PASS
Co-Authored-By: Virgil <virgil@lethean.io>
Permanent service_test.go for canon shape (commit 9a9e000). Build-tagged //go:build !js so the WASM build (RFC §7 size budget) doesn't pull in dappco.re/go via the test compilation. Four cases: default-locale fallback, explicit-Locale flow-through, imperative Register, nil-receiver Context guard. Coverage sweep (#1387): 7th of 22. Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Virgil <virgil@lethean.io> Co-Authored-By: Hephaestus <hephaestus@lthn.ai>
TestCmdWasm_WASMBinarySizeGood called process.RunWithOptions without initialising the process service, failing with "process: service not initialized". process@v0.8 binds the global service to dappco.re/go/core, not the dappco.re/go facade, so init via corepkg.New(). Co-Authored-By: Virgil <virgil@lethean.io>
Adds Good/Bad/Ugly coverage for the codegen CLI command layer: option-path helpers, flag defaults, poll-interval parsing, generate/types/watch command actions, named-file read/write paths, and the result-wrapping helpers. cmd/codegen statement coverage 40.0% -> 66.7%. Co-Authored-By: Virgil <virgil@lethean.io>
Adds Good/Bad/Ugly coverage for the HTTP handlers: empty-template rejection, locale propagation, invalid-JSON grammar requests, the reference/similarity branch (match and mismatch against min_similarity), and the nil-context guards. pkg/api statement coverage 69.6% -> 100.0%. Co-Authored-By: Virgil <virgil@lethean.io>
Adds Good/Bad/Ugly coverage for renderLayout: empty-variant guard, all five HLCRF slots, unrecognised slot keys, and the no-locale path. cmd/wasm statement coverage 73.9% -> 95.7% (remaining is the !js main stub). Co-Authored-By: Virgil <virgil@lethean.io>
Adds Good/Bad/Ugly coverage for the JS string-literal escaper (named escapes, U+2028/U+2029 line separators, sub-0x20 control chars, BMP surrogate pairs, empty input) and for isValidCustomElementTag (reserved names, non-letter start, missing hyphen, uppercase, invalid UTF-8). codegen statement coverage 80.5% -> 98.4%. Co-Authored-By: Virgil <virgil@lethean.io>
Adds Good/Bad/Ugly coverage for the GrammarImprint walker across the control-flow node types: Responsive (populated and empty), If/Unless (both branches), Entitled (granted, denied, no-checker), Switch (hit and miss) and an empty-slot layout. grammar.go imprint walker 26.1% -> 91.3%. Co-Authored-By: Virgil <virgil@lethean.io>
Adds Good/Bad/Ugly coverage for Entitled's invalid argument shapes (empty feature, non-string feature, non-Node child, wrong arity in both 2- and 3-arg forms) and the empty sentinel's layout-path renderer and isNilHTMLNode guard. entitled.go now 100% covered. Co-Authored-By: Virgil <virgil@lethean.io>
Adds Good/Bad coverage for If/Unless/Entitled/Switch rendered inside a layout slot (both nested-layout and leaf children, both branches each), exercising their renderWithLayoutPath methods. node.go control-flow path renderers 0-66% -> ~80%. Co-Authored-By: Virgil <virgil@lethean.io>
Adds Good/Ugly coverage for nodePreservesLayoutPath via single-item Each inside a layout slot, exercising the If/Unless/Entitled/Switch arms (preserve true) and the leaf default arm plus a failing-condition path. nodePreservesLayoutPath 25% -> 75%. Co-Authored-By: Virgil <virgil@lethean.io>
Adds Good/Ugly coverage for ShadowComponent.RenderClass JS string-literal escaping: control chars, U+2028/U+2029 line separators, sub-0x20 unicode escapes, BMP surrogate pairs, plus the style-prepend and explicit-mode paths. shadow.go appendUnicodeEscape 0% -> 100%, appendJSStringLiteral 25% -> 85%. Co-Authored-By: Virgil <virgil@lethean.io>
Adds Good/Bad/Ugly coverage for translationArgs and countInt: all numeric type branches, string parse and whitespace edges, non-numeric rejection, nil/non-count-key/no-count-in-context paths, count injection vs prepend vs leading-count-kept, metadata fallback, and trimTextSpace. text_translate_args.go now fully covered. Co-Authored-By: Virgil <virgil@lethean.io>
…amps Adds Good/Bad/Ugly coverage for the GrammarImprint structural helpers by stamping control-flow node types at the depth limit: switchNode (countMapNodes), Each (structuralEachChildCount), If/Unless/Entitled and Responsive child counts. countMapNodes 0% -> 100%, structuralChildCount 39% -> 75%, structuralEmpty 60% -> 93%. Co-Authored-By: Virgil <virgil@lethean.io>
Bump the core/go module pin to v0.10.4. This repo has no external/go workspace submodule on disk, so the bump is module-mode (GOWORK=off) only — verified build + test green. Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Virgil <virgil@lethean.io>
|
Warning Review limit reached
Next review available in: 35 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (19)
Warning Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|



This pull request introduces project metadata and licensing to the repository. The most important changes are the addition of a canonical project marker for Go tooling and the inclusion of the EUPL-1.2 license text.
Project configuration and licensing:
.core/go.yamlto mark the repository as a managed canonical Go project, specifying module name, subtree, and Go version for audit and dispatch tooling.LICENCE, establishing the project's open source license.Documentation:
SESSION-BRIEF.md, which previously described the project’s architecture, status, dependencies, and conventions.