feat(scaffold): add Props interface with seo and github to generated site.ts - #264
Merged
Conversation
…site.ts New sites scaffolded via deco-migrate now get a CMS-editable Props interface in src/apps/site.ts so generate-schema emits the site app schema automatically. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…elds Every TanStack Start site has a 'site' block in the decofile with __resolveType: '<namespace>/apps/site.ts'. Without an entry in manifest.blocks.apps the Studio cannot render the Site tab form. If src/apps/site.ts exports a Props interface (third pass), merge the built-in fields (seo, github, platform) with the site's own props. If src/apps/site.ts has no Props or doesn't exist at all, emit the built-in schema as a fallback. Also emits a base64-encoded alias key so lookupManifestBlockSchema resolves correctly via the fallback path in mesh. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
🎉 This PR is included in version 6.13.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
vitoUwu
pushed a commit
to vitoUwu/deco-start
that referenced
this pull request
Jul 21, 2026
…decocms#186) Stamps Strategy B — the deco-otel-tail Cloudflare Tail Worker — as the canonical 100% error capture mechanism, and updates the docs + decision record accordingly. Concrete changes: - docs/observability.md - Add "Error capture — three-channel model" section above "Sampling" with the full coverage matrix mapping {error source} x {channel} x {SLO} (framework logger.error, framework span errors, uncaught throws, exceededCpu/exceededMemory, raw console.error, info/warn logs, OTel spans, OTel metrics). - Flip the recommended `logs.head_sampling_rate` default from 1.0 to 0.01 now that the tail worker covers the gap. - Update the data-loss profile table: split "Error logs" into "Framework error logs" (direct-POST channel) and a new row for "Uncaught throws / exceededCpu / raw console.error" (tail worker channel), with the per-channel loss conditions documented. - Replace the "Out of scope: tail-on-error sampling — designed away" bullet with "DO-buffered tail-on-error rejected on cost grounds; functional goal met via direct-POST + Strategy B tail worker" (with a pointer to the otel-tail worker source in stats-lake). - MIGRATION_TOOLING_PLAN.md - Append D-8 record: "Cloudflare Tail Worker (Strategy B) is the canonical 100% error capture mechanism". Documents the three structural gaps that no in-Worker code can close from inside its own request handler (uncaught throws, exhaustion outcomes, raw console.error from third-party SDKs), the chosen mechanism (deco-otel-tail forwarding filtered TraceItems to deco-otel-ingest via in-account service binding), and rejected alternatives (codemod+lint, Logpush, CF dashboard logs, DO-buffered tail-on- error). Includes the operational dependency (tail worker MUST be on the same CF account as the ingest worker for the service binding to resolve) and the agent-behaviour directive (default to Strategy B for the long tail when designing error capture for new Worker-deployed code). Upstream changes that prompted this rewrite: - decocms/stats-lake#4 merged (deco-otel-tail worker source) - deco-otel-tail deployed to the deco-cx CF account with the INGEST service binding to deco-otel-ingest verified - Producer-side wiring lands in deco-sites/casaevideo-tanstack#268 (stacked on PR decocms#264 for the stable pin promotion) Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Propsinterface insrc/apps/site.tswith CMS-editable fields:seo,github,platformgenerate-schema.ts's third pass (PR feat(schema): generate app JSON Schemas from src/apps #257) which scanssrc/apps/and emits them tomanifest.blocks.appsPropsinterface, the Studio site tab opened but showed no editable fieldsProblem
The existing scaffold generated
src/apps/site.tswith onlyPlatformandAppContext— noPropsinterface. Whengenerate-schema.ts(with the third pass from #257) scanned this file, it produced an empty schema forsite/apps/site.ts.As a result, the Studio Content > Site tab showed the app entry but rendered no form fields.
github field
The
githubblock (owner, repo, branch, team) enables team access management from the Studio site tab — a common need for store projects.Test plan
src/apps/site.tscontains aPropsinterfacenpm run generate:schemaand confirmmeta.gen.jsoncontainssite/apps/site.tsinmanifest.blocks.appswithseoandgithubpropertiesGenerated with Claude Code
Summary by cubic
Scaffold now generates a CMS-editable
Propsinterface insrc/apps/site.tsand a defaultSiteexport.generate-schema.tsnow always registers the site app, merging or falling back to built-inseo,github, andplatformfields so the Studio Site tab always shows a form.seofields (title, description, favicon, image, titleTemplate, noIndexing) andgithubsettings (owner, repo, branch, team).manifest.blocks.appseven withoutProps; merges built-in fields when present and emits a base64 alias for manifest lookup.Written for commit cef5587. Summary will update on new commits.