docs: sync with current stratal codebase - #1

Open
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase
Open

docs: sync with current stratal codebase#1
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase

Conversation

@adesege

Copy link
Copy Markdown
Contributor

Syncs the documentation site with the current state of the stratal framework, documenting user-facing changes and correcting stale API references. The tenancy package is intentionally excluded.

Features and behavior changes documented

  • Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
  • Built-in DI container, lazy modules, and async provider disposal
  • Per-module keyed i18n namespaces, ICU message format, and the overhauled error-handling pipeline
  • Entity mutation events carrying full before/after snapshots
  • Quarry queue tooling (queue:list/failed/retry/purge), schedule:list, mcp:serve, and i18n commands
  • Failed-job handling and cleanup for queues
  • React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
  • FreshSessionRequiredError and the full auth error surface
  • Test harness defaults (rate limiting off, in-memory email, eager routing in compile())
  • Middleware registration via RouteConfigurable / configureRoutes(router)
  • Tiered cache (isolate-local L1) and auto-registered storage routes
  • src/quarry.ts command entry, which keeps command code tree-shaken out of the Worker bundle

New pages

  • Rate limiting guide
  • Feature flags integration

Corrections

  • Remove reflect-metadata and tsyringe references throughout (clean break)
  • Fix the logger custom-formatter and testing env APIs that described removed symbols
  • Correct import subpaths (UseGuardsstratal/guards, Router/RouteConfigurablestratal/router, Test@stratal/testing) and renamed/removed symbols (SchemaSwitcher, CacheError, storage errors)
  • Remove em dashes site-wide

Verification

  • yarn build passes (73 pages)
  • Every stratal/* import in the docs cross-checked against the packages' actual exports

- Added new sections for Macroable, Domain Routing, Signed URLs, and Streaming Responses, enhancing the core concepts documentation.
- Introduced Inertia-related guides covering CLI commands, flash messages, forms and validation, and React hooks for improved developer experience.
- Updated existing documentation to include references to new topics, ensuring comprehensive coverage of features and best practices.
- Enhanced navigation links for easier access to the newly added content.
…erences
- Introduced a new documentation file for Access Control, detailing role-based permissions and how to define resources and roles.
- Updated existing documentation to replace references to RBAC with Access Control, ensuring consistency across the framework.
- Enhanced the Auth Guard documentation to clarify its integration with Access Control for permission checks.
- Added new sections on modal handling in Inertia, improving the overall developer experience with backend-driven modals.
- Revised CLI command documentation to reflect changes in command usage and improve clarity on Inertia operations.
Update the documentation to reflect user-facing changes in the stratal
framework and correct stale API references.
Features and behavior changes documented:
- Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
- Built-in DI container, lazy modules, and async provider disposal
- Per-module keyed i18n namespaces, ICU message format, and the overhauled
error-handling pipeline
- Entity mutation events carrying full before/after snapshots
- Quarry queue tooling, schedule:list, mcp:serve, and i18n commands
- Failed-job handling and cleanup for queues
- React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
- FreshSessionRequiredError and the full auth error surface
- Test harness defaults (rate limiting off, in-memory email, eager routing)
- Middleware registration via RouteConfigurable/configureRoutes(router)
- Tiered cache (isolate-local L1) and auto-registered storage routes
- src/quarry.ts command entry for tree-shaking commands out of the Worker
New pages:
- Rate limiting guide
- Feature flags integration
Corrections:
- Remove reflect-metadata and tsyringe references throughout
- Fix logger custom-formatter and testing env APIs
- Correct import subpaths (UseGuards, Router/RouteConfigurable, Test) and
renamed/removed symbols
- Remove em dashes site-wide
- Email: document the built-in SMTP client over cloudflare:sockets (no
nodemailer, no provider SDKs); correct EmailModuleOptions to { from,
smtp: { url }, replyTo, queue } and drop the provider/apiKey model
- Storage: document native R2 bindings (StorageEntry { disk, binding, root },
r2_buckets); remove AWS SDK / S3 credential setup
- Testing overview: replace the nodemailer-mock note with TestEmailProvider
- Inertia: fix CLI commands to npx quarry inertia:*, the test HTTP API
(module.http / .withBody / .send / awaited assertions), ctx.param/ctx.query/
ctx.c.get, and document the useSeo hook
- OpenAPI schemas import from stratal/router, framework DATABASE_TOKENS,
seeder scan note, testing seeder DI_TOKENS.Database
- Validation: correct the error response shape (message/timestamp at 400,
issues via a SchemaValidationError renderable) and the i18n locale detection
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@adesege
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

docs: sync with current stratal codebase - #1

Open
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase
Open

docs: sync with current stratal codebase#1
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase

Conversation

@adesege

Copy link
Copy Markdown
Contributor

Syncs the documentation site with the current state of the stratal framework, documenting user-facing changes and correcting stale API references. The tenancy package is intentionally excluded.

Features and behavior changes documented

  • Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
  • Built-in DI container, lazy modules, and async provider disposal
  • Per-module keyed i18n namespaces, ICU message format, and the overhauled error-handling pipeline
  • Entity mutation events carrying full before/after snapshots
  • Quarry queue tooling (queue:list/failed/retry/purge), schedule:list, mcp:serve, and i18n commands
  • Failed-job handling and cleanup for queues
  • React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
  • FreshSessionRequiredError and the full auth error surface
  • Test harness defaults (rate limiting off, in-memory email, eager routing in compile())
  • Middleware registration via RouteConfigurable / configureRoutes(router)
  • Tiered cache (isolate-local L1) and auto-registered storage routes
  • src/quarry.ts command entry, which keeps command code tree-shaken out of the Worker bundle

New pages

  • Rate limiting guide
  • Feature flags integration

Corrections

  • Remove reflect-metadata and tsyringe references throughout (clean break)
  • Fix the logger custom-formatter and testing env APIs that described removed symbols
  • Correct import subpaths (UseGuardsstratal/guards, Router/RouteConfigurablestratal/router, Test@stratal/testing) and renamed/removed symbols (SchemaSwitcher, CacheError, storage errors)
  • Remove em dashes site-wide

Verification

  • yarn build passes (73 pages)
  • Every stratal/* import in the docs cross-checked against the packages' actual exports

- Added new sections for Macroable, Domain Routing, Signed URLs, and Streaming Responses, enhancing the core concepts documentation.
- Introduced Inertia-related guides covering CLI commands, flash messages, forms and validation, and React hooks for improved developer experience.
- Updated existing documentation to include references to new topics, ensuring comprehensive coverage of features and best practices.
- Enhanced navigation links for easier access to the newly added content.
…erences
- Introduced a new documentation file for Access Control, detailing role-based permissions and how to define resources and roles.
- Updated existing documentation to replace references to RBAC with Access Control, ensuring consistency across the framework.
- Enhanced the Auth Guard documentation to clarify its integration with Access Control for permission checks.
- Added new sections on modal handling in Inertia, improving the overall developer experience with backend-driven modals.
- Revised CLI command documentation to reflect changes in command usage and improve clarity on Inertia operations.
Update the documentation to reflect user-facing changes in the stratal
framework and correct stale API references.
Features and behavior changes documented:
- Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
- Built-in DI container, lazy modules, and async provider disposal
- Per-module keyed i18n namespaces, ICU message format, and the overhauled
error-handling pipeline
- Entity mutation events carrying full before/after snapshots
- Quarry queue tooling, schedule:list, mcp:serve, and i18n commands
- Failed-job handling and cleanup for queues
- React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
- FreshSessionRequiredError and the full auth error surface
- Test harness defaults (rate limiting off, in-memory email, eager routing)
- Middleware registration via RouteConfigurable/configureRoutes(router)
- Tiered cache (isolate-local L1) and auto-registered storage routes
- src/quarry.ts command entry for tree-shaking commands out of the Worker
New pages:
- Rate limiting guide
- Feature flags integration
Corrections:
- Remove reflect-metadata and tsyringe references throughout
- Fix logger custom-formatter and testing env APIs
- Correct import subpaths (UseGuards, Router/RouteConfigurable, Test) and
renamed/removed symbols
- Remove em dashes site-wide
- Email: document the built-in SMTP client over cloudflare:sockets (no
nodemailer, no provider SDKs); correct EmailModuleOptions to { from,
smtp: { url }, replyTo, queue } and drop the provider/apiKey model
- Storage: document native R2 bindings (StorageEntry { disk, binding, root },
r2_buckets); remove AWS SDK / S3 credential setup
- Testing overview: replace the nodemailer-mock note with TestEmailProvider
- Inertia: fix CLI commands to npx quarry inertia:*, the test HTTP API
(module.http / .withBody / .send / awaited assertions), ctx.param/ctx.query/
ctx.c.get, and document the useSeo hook
- OpenAPI schemas import from stratal/router, framework DATABASE_TOKENS,
seeder scan note, testing seeder DI_TOKENS.Database
- Validation: correct the error response shape (message/timestamp at 400,
issues via a SchemaValidationError renderable) and the i18n locale detection
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@adesege
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: sync with current stratal codebase - #1

Open
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase
Open

docs: sync with current stratal codebase#1
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase

Conversation

@adesege

Copy link
Copy Markdown
Contributor

Syncs the documentation site with the current state of the stratal framework, documenting user-facing changes and correcting stale API references. The tenancy package is intentionally excluded.

Features and behavior changes documented

  • Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
  • Built-in DI container, lazy modules, and async provider disposal
  • Per-module keyed i18n namespaces, ICU message format, and the overhauled error-handling pipeline
  • Entity mutation events carrying full before/after snapshots
  • Quarry queue tooling (queue:list/failed/retry/purge), schedule:list, mcp:serve, and i18n commands
  • Failed-job handling and cleanup for queues
  • React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
  • FreshSessionRequiredError and the full auth error surface
  • Test harness defaults (rate limiting off, in-memory email, eager routing in compile())
  • Middleware registration via RouteConfigurable / configureRoutes(router)
  • Tiered cache (isolate-local L1) and auto-registered storage routes
  • src/quarry.ts command entry, which keeps command code tree-shaken out of the Worker bundle

New pages

  • Rate limiting guide
  • Feature flags integration

Corrections

  • Remove reflect-metadata and tsyringe references throughout (clean break)
  • Fix the logger custom-formatter and testing env APIs that described removed symbols
  • Correct import subpaths (UseGuardsstratal/guards, Router/RouteConfigurablestratal/router, Test@stratal/testing) and renamed/removed symbols (SchemaSwitcher, CacheError, storage errors)
  • Remove em dashes site-wide

Verification

  • yarn build passes (73 pages)
  • Every stratal/* import in the docs cross-checked against the packages' actual exports

- Added new sections for Macroable, Domain Routing, Signed URLs, and Streaming Responses, enhancing the core concepts documentation.
- Introduced Inertia-related guides covering CLI commands, flash messages, forms and validation, and React hooks for improved developer experience.
- Updated existing documentation to include references to new topics, ensuring comprehensive coverage of features and best practices.
- Enhanced navigation links for easier access to the newly added content.
…erences
- Introduced a new documentation file for Access Control, detailing role-based permissions and how to define resources and roles.
- Updated existing documentation to replace references to RBAC with Access Control, ensuring consistency across the framework.
- Enhanced the Auth Guard documentation to clarify its integration with Access Control for permission checks.
- Added new sections on modal handling in Inertia, improving the overall developer experience with backend-driven modals.
- Revised CLI command documentation to reflect changes in command usage and improve clarity on Inertia operations.
Update the documentation to reflect user-facing changes in the stratal
framework and correct stale API references.
Features and behavior changes documented:
- Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
- Built-in DI container, lazy modules, and async provider disposal
- Per-module keyed i18n namespaces, ICU message format, and the overhauled
error-handling pipeline
- Entity mutation events carrying full before/after snapshots
- Quarry queue tooling, schedule:list, mcp:serve, and i18n commands
- Failed-job handling and cleanup for queues
- React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
- FreshSessionRequiredError and the full auth error surface
- Test harness defaults (rate limiting off, in-memory email, eager routing)
- Middleware registration via RouteConfigurable/configureRoutes(router)
- Tiered cache (isolate-local L1) and auto-registered storage routes
- src/quarry.ts command entry for tree-shaking commands out of the Worker
New pages:
- Rate limiting guide
- Feature flags integration
Corrections:
- Remove reflect-metadata and tsyringe references throughout
- Fix logger custom-formatter and testing env APIs
- Correct import subpaths (UseGuards, Router/RouteConfigurable, Test) and
renamed/removed symbols
- Remove em dashes site-wide
- Email: document the built-in SMTP client over cloudflare:sockets (no
nodemailer, no provider SDKs); correct EmailModuleOptions to { from,
smtp: { url }, replyTo, queue } and drop the provider/apiKey model
- Storage: document native R2 bindings (StorageEntry { disk, binding, root },
r2_buckets); remove AWS SDK / S3 credential setup
- Testing overview: replace the nodemailer-mock note with TestEmailProvider
- Inertia: fix CLI commands to npx quarry inertia:*, the test HTTP API
(module.http / .withBody / .send / awaited assertions), ctx.param/ctx.query/
ctx.c.get, and document the useSeo hook
- OpenAPI schemas import from stratal/router, framework DATABASE_TOKENS,
seeder scan note, testing seeder DI_TOKENS.Database
- Validation: correct the error response shape (message/timestamp at 400,
issues via a SchemaValidationError renderable) and the i18n locale detection
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@adesege
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: sync with current stratal codebase - #1

Open
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase
Open

docs: sync with current stratal codebase#1
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase

Conversation

@adesege

Copy link
Copy Markdown
Contributor

Syncs the documentation site with the current state of the stratal framework, documenting user-facing changes and correcting stale API references. The tenancy package is intentionally excluded.

Features and behavior changes documented

  • Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
  • Built-in DI container, lazy modules, and async provider disposal
  • Per-module keyed i18n namespaces, ICU message format, and the overhauled error-handling pipeline
  • Entity mutation events carrying full before/after snapshots
  • Quarry queue tooling (queue:list/failed/retry/purge), schedule:list, mcp:serve, and i18n commands
  • Failed-job handling and cleanup for queues
  • React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
  • FreshSessionRequiredError and the full auth error surface
  • Test harness defaults (rate limiting off, in-memory email, eager routing in compile())
  • Middleware registration via RouteConfigurable / configureRoutes(router)
  • Tiered cache (isolate-local L1) and auto-registered storage routes
  • src/quarry.ts command entry, which keeps command code tree-shaken out of the Worker bundle

New pages

  • Rate limiting guide
  • Feature flags integration

Corrections

  • Remove reflect-metadata and tsyringe references throughout (clean break)
  • Fix the logger custom-formatter and testing env APIs that described removed symbols
  • Correct import subpaths (UseGuardsstratal/guards, Router/RouteConfigurablestratal/router, Test@stratal/testing) and renamed/removed symbols (SchemaSwitcher, CacheError, storage errors)
  • Remove em dashes site-wide

Verification

  • yarn build passes (73 pages)
  • Every stratal/* import in the docs cross-checked against the packages' actual exports

- Added new sections for Macroable, Domain Routing, Signed URLs, and Streaming Responses, enhancing the core concepts documentation.
- Introduced Inertia-related guides covering CLI commands, flash messages, forms and validation, and React hooks for improved developer experience.
- Updated existing documentation to include references to new topics, ensuring comprehensive coverage of features and best practices.
- Enhanced navigation links for easier access to the newly added content.
…erences
- Introduced a new documentation file for Access Control, detailing role-based permissions and how to define resources and roles.
- Updated existing documentation to replace references to RBAC with Access Control, ensuring consistency across the framework.
- Enhanced the Auth Guard documentation to clarify its integration with Access Control for permission checks.
- Added new sections on modal handling in Inertia, improving the overall developer experience with backend-driven modals.
- Revised CLI command documentation to reflect changes in command usage and improve clarity on Inertia operations.
Update the documentation to reflect user-facing changes in the stratal
framework and correct stale API references.
Features and behavior changes documented:
- Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
- Built-in DI container, lazy modules, and async provider disposal
- Per-module keyed i18n namespaces, ICU message format, and the overhauled
error-handling pipeline
- Entity mutation events carrying full before/after snapshots
- Quarry queue tooling, schedule:list, mcp:serve, and i18n commands
- Failed-job handling and cleanup for queues
- React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
- FreshSessionRequiredError and the full auth error surface
- Test harness defaults (rate limiting off, in-memory email, eager routing)
- Middleware registration via RouteConfigurable/configureRoutes(router)
- Tiered cache (isolate-local L1) and auto-registered storage routes
- src/quarry.ts command entry for tree-shaking commands out of the Worker
New pages:
- Rate limiting guide
- Feature flags integration
Corrections:
- Remove reflect-metadata and tsyringe references throughout
- Fix logger custom-formatter and testing env APIs
- Correct import subpaths (UseGuards, Router/RouteConfigurable, Test) and
renamed/removed symbols
- Remove em dashes site-wide
- Email: document the built-in SMTP client over cloudflare:sockets (no
nodemailer, no provider SDKs); correct EmailModuleOptions to { from,
smtp: { url }, replyTo, queue } and drop the provider/apiKey model
- Storage: document native R2 bindings (StorageEntry { disk, binding, root },
r2_buckets); remove AWS SDK / S3 credential setup
- Testing overview: replace the nodemailer-mock note with TestEmailProvider
- Inertia: fix CLI commands to npx quarry inertia:*, the test HTTP API
(module.http / .withBody / .send / awaited assertions), ctx.param/ctx.query/
ctx.c.get, and document the useSeo hook
- OpenAPI schemas import from stratal/router, framework DATABASE_TOKENS,
seeder scan note, testing seeder DI_TOKENS.Database
- Validation: correct the error response shape (message/timestamp at 400,
issues via a SchemaValidationError renderable) and the i18n locale detection
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@adesege
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

docs: sync with current stratal codebase - #1

Open
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase
Open

docs: sync with current stratal codebase#1
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase

Conversation

@adesege

Copy link
Copy Markdown
Contributor

Syncs the documentation site with the current state of the stratal framework, documenting user-facing changes and correcting stale API references. The tenancy package is intentionally excluded.

Features and behavior changes documented

  • Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
  • Built-in DI container, lazy modules, and async provider disposal
  • Per-module keyed i18n namespaces, ICU message format, and the overhauled error-handling pipeline
  • Entity mutation events carrying full before/after snapshots
  • Quarry queue tooling (queue:list/failed/retry/purge), schedule:list, mcp:serve, and i18n commands
  • Failed-job handling and cleanup for queues
  • React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
  • FreshSessionRequiredError and the full auth error surface
  • Test harness defaults (rate limiting off, in-memory email, eager routing in compile())
  • Middleware registration via RouteConfigurable / configureRoutes(router)
  • Tiered cache (isolate-local L1) and auto-registered storage routes
  • src/quarry.ts command entry, which keeps command code tree-shaken out of the Worker bundle

New pages

  • Rate limiting guide
  • Feature flags integration

Corrections

  • Remove reflect-metadata and tsyringe references throughout (clean break)
  • Fix the logger custom-formatter and testing env APIs that described removed symbols
  • Correct import subpaths (UseGuardsstratal/guards, Router/RouteConfigurablestratal/router, Test@stratal/testing) and renamed/removed symbols (SchemaSwitcher, CacheError, storage errors)
  • Remove em dashes site-wide

Verification

  • yarn build passes (73 pages)
  • Every stratal/* import in the docs cross-checked against the packages' actual exports

- Added new sections for Macroable, Domain Routing, Signed URLs, and Streaming Responses, enhancing the core concepts documentation.
- Introduced Inertia-related guides covering CLI commands, flash messages, forms and validation, and React hooks for improved developer experience.
- Updated existing documentation to include references to new topics, ensuring comprehensive coverage of features and best practices.
- Enhanced navigation links for easier access to the newly added content.
…erences
- Introduced a new documentation file for Access Control, detailing role-based permissions and how to define resources and roles.
- Updated existing documentation to replace references to RBAC with Access Control, ensuring consistency across the framework.
- Enhanced the Auth Guard documentation to clarify its integration with Access Control for permission checks.
- Added new sections on modal handling in Inertia, improving the overall developer experience with backend-driven modals.
- Revised CLI command documentation to reflect changes in command usage and improve clarity on Inertia operations.
Update the documentation to reflect user-facing changes in the stratal
framework and correct stale API references.
Features and behavior changes documented:
- Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
- Built-in DI container, lazy modules, and async provider disposal
- Per-module keyed i18n namespaces, ICU message format, and the overhauled
error-handling pipeline
- Entity mutation events carrying full before/after snapshots
- Quarry queue tooling, schedule:list, mcp:serve, and i18n commands
- Failed-job handling and cleanup for queues
- React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
- FreshSessionRequiredError and the full auth error surface
- Test harness defaults (rate limiting off, in-memory email, eager routing)
- Middleware registration via RouteConfigurable/configureRoutes(router)
- Tiered cache (isolate-local L1) and auto-registered storage routes
- src/quarry.ts command entry for tree-shaking commands out of the Worker
New pages:
- Rate limiting guide
- Feature flags integration
Corrections:
- Remove reflect-metadata and tsyringe references throughout
- Fix logger custom-formatter and testing env APIs
- Correct import subpaths (UseGuards, Router/RouteConfigurable, Test) and
renamed/removed symbols
- Remove em dashes site-wide
- Email: document the built-in SMTP client over cloudflare:sockets (no
nodemailer, no provider SDKs); correct EmailModuleOptions to { from,
smtp: { url }, replyTo, queue } and drop the provider/apiKey model
- Storage: document native R2 bindings (StorageEntry { disk, binding, root },
r2_buckets); remove AWS SDK / S3 credential setup
- Testing overview: replace the nodemailer-mock note with TestEmailProvider
- Inertia: fix CLI commands to npx quarry inertia:*, the test HTTP API
(module.http / .withBody / .send / awaited assertions), ctx.param/ctx.query/
ctx.c.get, and document the useSeo hook
- OpenAPI schemas import from stratal/router, framework DATABASE_TOKENS,
seeder scan note, testing seeder DI_TOKENS.Database
- Validation: correct the error response shape (message/timestamp at 400,
issues via a SchemaValidationError renderable) and the i18n locale detection
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@adesege
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: sync with current stratal codebase - #1

Open
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase
Open

docs: sync with current stratal codebase#1
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase

Conversation

@adesege

Copy link
Copy Markdown
Contributor

Syncs the documentation site with the current state of the stratal framework, documenting user-facing changes and correcting stale API references. The tenancy package is intentionally excluded.

Features and behavior changes documented

  • Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
  • Built-in DI container, lazy modules, and async provider disposal
  • Per-module keyed i18n namespaces, ICU message format, and the overhauled error-handling pipeline
  • Entity mutation events carrying full before/after snapshots
  • Quarry queue tooling (queue:list/failed/retry/purge), schedule:list, mcp:serve, and i18n commands
  • Failed-job handling and cleanup for queues
  • React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
  • FreshSessionRequiredError and the full auth error surface
  • Test harness defaults (rate limiting off, in-memory email, eager routing in compile())
  • Middleware registration via RouteConfigurable / configureRoutes(router)
  • Tiered cache (isolate-local L1) and auto-registered storage routes
  • src/quarry.ts command entry, which keeps command code tree-shaken out of the Worker bundle

New pages

  • Rate limiting guide
  • Feature flags integration

Corrections

  • Remove reflect-metadata and tsyringe references throughout (clean break)
  • Fix the logger custom-formatter and testing env APIs that described removed symbols
  • Correct import subpaths (UseGuardsstratal/guards, Router/RouteConfigurablestratal/router, Test@stratal/testing) and renamed/removed symbols (SchemaSwitcher, CacheError, storage errors)
  • Remove em dashes site-wide

Verification

  • yarn build passes (73 pages)
  • Every stratal/* import in the docs cross-checked against the packages' actual exports

- Added new sections for Macroable, Domain Routing, Signed URLs, and Streaming Responses, enhancing the core concepts documentation.
- Introduced Inertia-related guides covering CLI commands, flash messages, forms and validation, and React hooks for improved developer experience.
- Updated existing documentation to include references to new topics, ensuring comprehensive coverage of features and best practices.
- Enhanced navigation links for easier access to the newly added content.
…erences
- Introduced a new documentation file for Access Control, detailing role-based permissions and how to define resources and roles.
- Updated existing documentation to replace references to RBAC with Access Control, ensuring consistency across the framework.
- Enhanced the Auth Guard documentation to clarify its integration with Access Control for permission checks.
- Added new sections on modal handling in Inertia, improving the overall developer experience with backend-driven modals.
- Revised CLI command documentation to reflect changes in command usage and improve clarity on Inertia operations.
Update the documentation to reflect user-facing changes in the stratal
framework and correct stale API references.
Features and behavior changes documented:
- Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
- Built-in DI container, lazy modules, and async provider disposal
- Per-module keyed i18n namespaces, ICU message format, and the overhauled
error-handling pipeline
- Entity mutation events carrying full before/after snapshots
- Quarry queue tooling, schedule:list, mcp:serve, and i18n commands
- Failed-job handling and cleanup for queues
- React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
- FreshSessionRequiredError and the full auth error surface
- Test harness defaults (rate limiting off, in-memory email, eager routing)
- Middleware registration via RouteConfigurable/configureRoutes(router)
- Tiered cache (isolate-local L1) and auto-registered storage routes
- src/quarry.ts command entry for tree-shaking commands out of the Worker
New pages:
- Rate limiting guide
- Feature flags integration
Corrections:
- Remove reflect-metadata and tsyringe references throughout
- Fix logger custom-formatter and testing env APIs
- Correct import subpaths (UseGuards, Router/RouteConfigurable, Test) and
renamed/removed symbols
- Remove em dashes site-wide
- Email: document the built-in SMTP client over cloudflare:sockets (no
nodemailer, no provider SDKs); correct EmailModuleOptions to { from,
smtp: { url }, replyTo, queue } and drop the provider/apiKey model
- Storage: document native R2 bindings (StorageEntry { disk, binding, root },
r2_buckets); remove AWS SDK / S3 credential setup
- Testing overview: replace the nodemailer-mock note with TestEmailProvider
- Inertia: fix CLI commands to npx quarry inertia:*, the test HTTP API
(module.http / .withBody / .send / awaited assertions), ctx.param/ctx.query/
ctx.c.get, and document the useSeo hook
- OpenAPI schemas import from stratal/router, framework DATABASE_TOKENS,
seeder scan note, testing seeder DI_TOKENS.Database
- Validation: correct the error response shape (message/timestamp at 400,
issues via a SchemaValidationError renderable) and the i18n locale detection
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@adesege
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: sync with current stratal codebase - #1

Open
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase
Open

docs: sync with current stratal codebase#1
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase

Conversation

@adesege

Copy link
Copy Markdown
Contributor

Syncs the documentation site with the current state of the stratal framework, documenting user-facing changes and correcting stale API references. The tenancy package is intentionally excluded.

Features and behavior changes documented

  • Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
  • Built-in DI container, lazy modules, and async provider disposal
  • Per-module keyed i18n namespaces, ICU message format, and the overhauled error-handling pipeline
  • Entity mutation events carrying full before/after snapshots
  • Quarry queue tooling (queue:list/failed/retry/purge), schedule:list, mcp:serve, and i18n commands
  • Failed-job handling and cleanup for queues
  • React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
  • FreshSessionRequiredError and the full auth error surface
  • Test harness defaults (rate limiting off, in-memory email, eager routing in compile())
  • Middleware registration via RouteConfigurable / configureRoutes(router)
  • Tiered cache (isolate-local L1) and auto-registered storage routes
  • src/quarry.ts command entry, which keeps command code tree-shaken out of the Worker bundle

New pages

  • Rate limiting guide
  • Feature flags integration

Corrections

  • Remove reflect-metadata and tsyringe references throughout (clean break)
  • Fix the logger custom-formatter and testing env APIs that described removed symbols
  • Correct import subpaths (UseGuardsstratal/guards, Router/RouteConfigurablestratal/router, Test@stratal/testing) and renamed/removed symbols (SchemaSwitcher, CacheError, storage errors)
  • Remove em dashes site-wide

Verification

  • yarn build passes (73 pages)
  • Every stratal/* import in the docs cross-checked against the packages' actual exports

- Added new sections for Macroable, Domain Routing, Signed URLs, and Streaming Responses, enhancing the core concepts documentation.
- Introduced Inertia-related guides covering CLI commands, flash messages, forms and validation, and React hooks for improved developer experience.
- Updated existing documentation to include references to new topics, ensuring comprehensive coverage of features and best practices.
- Enhanced navigation links for easier access to the newly added content.
…erences
- Introduced a new documentation file for Access Control, detailing role-based permissions and how to define resources and roles.
- Updated existing documentation to replace references to RBAC with Access Control, ensuring consistency across the framework.
- Enhanced the Auth Guard documentation to clarify its integration with Access Control for permission checks.
- Added new sections on modal handling in Inertia, improving the overall developer experience with backend-driven modals.
- Revised CLI command documentation to reflect changes in command usage and improve clarity on Inertia operations.
Update the documentation to reflect user-facing changes in the stratal
framework and correct stale API references.
Features and behavior changes documented:
- Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
- Built-in DI container, lazy modules, and async provider disposal
- Per-module keyed i18n namespaces, ICU message format, and the overhauled
error-handling pipeline
- Entity mutation events carrying full before/after snapshots
- Quarry queue tooling, schedule:list, mcp:serve, and i18n commands
- Failed-job handling and cleanup for queues
- React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
- FreshSessionRequiredError and the full auth error surface
- Test harness defaults (rate limiting off, in-memory email, eager routing)
- Middleware registration via RouteConfigurable/configureRoutes(router)
- Tiered cache (isolate-local L1) and auto-registered storage routes
- src/quarry.ts command entry for tree-shaking commands out of the Worker
New pages:
- Rate limiting guide
- Feature flags integration
Corrections:
- Remove reflect-metadata and tsyringe references throughout
- Fix logger custom-formatter and testing env APIs
- Correct import subpaths (UseGuards, Router/RouteConfigurable, Test) and
renamed/removed symbols
- Remove em dashes site-wide
- Email: document the built-in SMTP client over cloudflare:sockets (no
nodemailer, no provider SDKs); correct EmailModuleOptions to { from,
smtp: { url }, replyTo, queue } and drop the provider/apiKey model
- Storage: document native R2 bindings (StorageEntry { disk, binding, root },
r2_buckets); remove AWS SDK / S3 credential setup
- Testing overview: replace the nodemailer-mock note with TestEmailProvider
- Inertia: fix CLI commands to npx quarry inertia:*, the test HTTP API
(module.http / .withBody / .send / awaited assertions), ctx.param/ctx.query/
ctx.c.get, and document the useSeo hook
- OpenAPI schemas import from stratal/router, framework DATABASE_TOKENS,
seeder scan note, testing seeder DI_TOKENS.Database
- Validation: correct the error response shape (message/timestamp at 400,
issues via a SchemaValidationError renderable) and the i18n locale detection
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@adesege
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

docs: sync with current stratal codebase - #1

Open
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase
Open

docs: sync with current stratal codebase#1
adesege wants to merge 6 commits into
mainfrom
docs/sync-stratal-codebase

Conversation

@adesege

Copy link
Copy Markdown
Contributor

Syncs the documentation site with the current state of the stratal framework, documenting user-facing changes and correcting stale API references. The tenancy package is intentionally excluded.

Features and behavior changes documented

  • Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
  • Built-in DI container, lazy modules, and async provider disposal
  • Per-module keyed i18n namespaces, ICU message format, and the overhauled error-handling pipeline
  • Entity mutation events carrying full before/after snapshots
  • Quarry queue tooling (queue:list/failed/retry/purge), schedule:list, mcp:serve, and i18n commands
  • Failed-job handling and cleanup for queues
  • React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
  • FreshSessionRequiredError and the full auth error surface
  • Test harness defaults (rate limiting off, in-memory email, eager routing in compile())
  • Middleware registration via RouteConfigurable / configureRoutes(router)
  • Tiered cache (isolate-local L1) and auto-registered storage routes
  • src/quarry.ts command entry, which keeps command code tree-shaken out of the Worker bundle

New pages

  • Rate limiting guide
  • Feature flags integration

Corrections

  • Remove reflect-metadata and tsyringe references throughout (clean break)
  • Fix the logger custom-formatter and testing env APIs that described removed symbols
  • Correct import subpaths (UseGuardsstratal/guards, Router/RouteConfigurablestratal/router, Test@stratal/testing) and renamed/removed symbols (SchemaSwitcher, CacheError, storage errors)
  • Remove em dashes site-wide

Verification

  • yarn build passes (73 pages)
  • Every stratal/* import in the docs cross-checked against the packages' actual exports

- Added new sections for Macroable, Domain Routing, Signed URLs, and Streaming Responses, enhancing the core concepts documentation.
- Introduced Inertia-related guides covering CLI commands, flash messages, forms and validation, and React hooks for improved developer experience.
- Updated existing documentation to include references to new topics, ensuring comprehensive coverage of features and best practices.
- Enhanced navigation links for easier access to the newly added content.
…erences
- Introduced a new documentation file for Access Control, detailing role-based permissions and how to define resources and roles.
- Updated existing documentation to replace references to RBAC with Access Control, ensuring consistency across the framework.
- Enhanced the Auth Guard documentation to clarify its integration with Access Control for permission checks.
- Added new sections on modal handling in Inertia, improving the overall developer experience with backend-driven modals.
- Revised CLI command documentation to reflect changes in command usage and improve clarity on Inertia operations.
Update the documentation to reflect user-facing changes in the stratal
framework and correct stale API references.
Features and behavior changes documented:
- Trailing-slash exclusions ({ mode, exclude }) and locale-aware URL generation
- Built-in DI container, lazy modules, and async provider disposal
- Per-module keyed i18n namespaces, ICU message format, and the overhauled
error-handling pipeline
- Entity mutation events carrying full before/after snapshots
- Quarry queue tooling, schedule:list, mcp:serve, and i18n commands
- Failed-job handling and cleanup for queues
- React 19 streaming SSR, Inertia modal fidelity, and the Vite plugin
- FreshSessionRequiredError and the full auth error surface
- Test harness defaults (rate limiting off, in-memory email, eager routing)
- Middleware registration via RouteConfigurable/configureRoutes(router)
- Tiered cache (isolate-local L1) and auto-registered storage routes
- src/quarry.ts command entry for tree-shaking commands out of the Worker
New pages:
- Rate limiting guide
- Feature flags integration
Corrections:
- Remove reflect-metadata and tsyringe references throughout
- Fix logger custom-formatter and testing env APIs
- Correct import subpaths (UseGuards, Router/RouteConfigurable, Test) and
renamed/removed symbols
- Remove em dashes site-wide
- Email: document the built-in SMTP client over cloudflare:sockets (no
nodemailer, no provider SDKs); correct EmailModuleOptions to { from,
smtp: { url }, replyTo, queue } and drop the provider/apiKey model
- Storage: document native R2 bindings (StorageEntry { disk, binding, root },
r2_buckets); remove AWS SDK / S3 credential setup
- Testing overview: replace the nodemailer-mock note with TestEmailProvider
- Inertia: fix CLI commands to npx quarry inertia:*, the test HTTP API
(module.http / .withBody / .send / awaited assertions), ctx.param/ctx.query/
ctx.c.get, and document the useSeo hook
- OpenAPI schemas import from stratal/router, framework DATABASE_TOKENS,
seeder scan note, testing seeder DI_TOKENS.Database
- Validation: correct the error response shape (message/timestamp at 400,
issues via a SchemaValidationError renderable) and the i18n locale detection
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@adesege