Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
1500751
fix(config): negatively cache deterministic hosted config rejections …
kojiwakayama Aug 14, 2026
aff43ab
fix(observability): downgrade tenant build errors to tagged warning-l…
kojiwakayama Aug 14, 2026
07482ba
fix(transforms): keep @/ alias imports off the page origin and stop b…
kojiwakayama Aug 14, 2026
67f20d1
Keep framework build errors at error severity
kojiwakayama Aug 14, 2026
2dc472d
Keep escaped aliases on module transport
kojiwakayama Aug 14, 2026
91e0eb2
Keep observability API reference aligned with capture changes
kojiwakayama Aug 14, 2026
8d4d1a5
Merge updated Sentry server base into tenant capture
kojiwakayama Aug 14, 2026
2646788
Keep generic build infrastructure failures error-level
kojiwakayama Aug 14, 2026
595040a
Keep alias extension normalization on captured strings
kojiwakayama Aug 14, 2026
0e94107
Regenerate bundles for hardened alias paths
kojiwakayama Aug 14, 2026
c6c5506
Keep framework build failures at error severity
kojiwakayama Aug 14, 2026
7c73e35
Materialize cached dynamic project imports
kojiwakayama Aug 14, 2026
6a383b4
Classify real MDX syntax failures at their source
kojiwakayama Aug 14, 2026
3b8878b
Reconcile tenant observability with the merged config foundation
kojiwakayama Aug 14, 2026
d43dd54
Keep late module rewrites stable under poisoned intrinsics
kojiwakayama Aug 14, 2026
2026cfd
Keep bundled runtimes aligned with hardened extension normalization
kojiwakayama Aug 14, 2026
0ac0f49
Classify tenant content parse failures without hiding framework errors
kojiwakayama Aug 14, 2026
48f741d
Keep reviewed alias imports visible across literal forms
kojiwakayama Aug 14, 2026
8480991
Keep MDX processor failure tests type-complete
kojiwakayama Aug 14, 2026
a882893
Materialize side-effect module dependencies before caching
kojiwakayama Aug 14, 2026
578b6c8
Keep malformed MDX frontmatter in tenant error policy
kojiwakayama Aug 14, 2026
7de5d71
Preserve HTTP fallback side-effect imports
kojiwakayama Aug 14, 2026
0f8951e
Keep infrastructure SSG failures at error level
kojiwakayama Aug 14, 2026
84b95e5
Resolve executable template dynamic imports
kojiwakayama Aug 14, 2026
6c9879e
Keep generated observability references aligned with CI
kojiwakayama Aug 14, 2026
16cd955
Handle regex braces in template import scans
kojiwakayama Aug 14, 2026
0874703
Preserve scans after postfix division
kojiwakayama Aug 14, 2026
b215260
Classify provider-neutral frontmatter syntax failures
kojiwakayama Aug 14, 2026
f28a8ed
Keep escaped alias and template scans deterministic
kojiwakayama Aug 14, 2026
9c4db23
Classify marked Markdown frontmatter syntax failures
kojiwakayama Aug 14, 2026
6e7d5be
Preserve suffixes through MDX materialization
kojiwakayama Aug 14, 2026
8cb8d1b
Classify Markdown frontmatter syntax failures by parser provenance
kojiwakayama Aug 14, 2026
d4fad76
Keep late MDX import rewrites deterministic
kojiwakayama Aug 14, 2026
31832d4
Keep operational compile failures out of tenant build warnings
kojiwakayama Aug 14, 2026
05c67a5
Keep template scanning past closed control blocks
kojiwakayama Aug 14, 2026
eef4856
Recognize for-of regex literals in template scans
kojiwakayama Aug 14, 2026
f28d33f
Keep tenant compile classification explicit across capture seams
kojiwakayama Aug 14, 2026
ba9e2d3
Keep division scans out of literal control text
kojiwakayama Aug 15, 2026
cc143fb
Keep rewritten import literals parseable
kojiwakayama Aug 15, 2026
21e4e73
fix(observability): narrow tenant build classification at both open s…
kwakayama Aug 15, 2026
ab84bba
fix(transforms): escape emitted import literals and drop unreachable …
kwakayama Aug 15, 2026
b20d720
fix(observability): classify the retry seam from resolver evidence, n…
kwakayama Aug 15, 2026
58ecf6e
fix(observability): keep an evicted rebuilt artifact at error severity
kwakayama Aug 15, 2026
06d2ed2
fix(transforms): keep brace matching linear
kojiwakayama Aug 15, 2026
da209cb
fix(observability): classify only the rebuilt graph
kojiwakayama Aug 15, 2026
a1eb2fc
fix(observability): read single-quoted module targets and keep cached…
kwakayama Aug 15, 2026
a3ae4cd
fix(transforms): distinguish for-of regex prefixes
kojiwakayama Aug 15, 2026
3e93683
fix(observability): replay transitive cache evidence
kojiwakayama Aug 15, 2026
c491cf0
fix(transforms): keep module scans context-aware
kojiwakayama Aug 15, 2026
5477b6b
fix(observability): persist tenant import evidence
kojiwakayama Aug 15, 2026
798fc6a
fix(transforms): keep delimiter matching linear
kojiwakayama Aug 15, 2026
5ab7cd5
fix(observability): track side-effect import evidence
kojiwakayama Aug 15, 2026
6a57226
test(transforms): cover nested import parens
kojiwakayama Aug 15, 2026
4cffb2f
fix(transforms): close import scanner edge cases
kojiwakayama Aug 15, 2026
c37f36b
fix(transforms): preserve scanner syntax validation
kojiwakayama Aug 15, 2026
9d9c076
fix(transforms): classify default regex literals
kojiwakayama Aug 15, 2026
f4b73c2
fix(transforms): make static imports regex aware
kojiwakayama Aug 15, 2026
83262ca
fix(transforms): reject false dynamic imports
kojiwakayama Aug 15, 2026
12ebec7
fix(transforms): preserve lexer context across trivia
kojiwakayama Aug 15, 2026
1d590e4
fix(transforms): close scanner review gaps
kojiwakayama Aug 15, 2026
d6b2100
fix(transforms): honor JavaScript line terminators
kojiwakayama Aug 15, 2026
a64687f
Keep declaration scans aligned with ECMAScript lines
kojiwakayama Aug 15, 2026
66d4966
Integrate the hardened module scanner
kojiwakayama Aug 15, 2026
335a1cd
Keep tenant side-effect imports classifiable
kojiwakayama Aug 15, 2026
c445b41
Preserve tenant attribution only when retry evidence matches
kojiwakayama Aug 15, 2026
7d23702
Avoid reusing artifacts without attribution evidence
kojiwakayama Aug 15, 2026
8237167
Prevent stale cache evidence from hiding tenant imports
kojiwakayama Aug 15, 2026
44ccaa9
Keep Markdown compiler regressions type-checkable
kojiwakayama Aug 15, 2026
ca698aa
Keep regex-looking imports out of dependency resolution
kojiwakayama Aug 15, 2026
e26388f
Preserve tenant attribution for missing alias imports
kojiwakayama Aug 15, 2026
4ed33d4
Keep rewritten aliases attributable to tenant source
kojiwakayama Aug 15, 2026
2fcce2e
Keep tenant alias attribution on one rewrite rule
kojiwakayama Aug 15, 2026
7edc662
Keep cycle aliases from reading text as default exports
kojiwakayama Aug 15, 2026
a0aec6b
Pin JavaScript cycle targets to their authored path
kojiwakayama Aug 15, 2026
417d8b4
Defer missing dynamic MDX imports
kojiwakayama Aug 15, 2026
8c814dc
Preserve cycle export and path invariants together
kojiwakayama Aug 15, 2026
bdc5012
Defer strict missing imports until execution
kojiwakayama Aug 15, 2026
35e1753
Preserve deferred imports at the cache boundary
kojiwakayama Aug 15, 2026
dc50765
Keep HTTP fallback branches lazy
kojiwakayama Aug 15, 2026
002ed83
Defer root MDX dynamic alias failures
kojiwakayama Aug 15, 2026
5af0193
Keep missing authored packages in tenant build telemetry
kojiwakayama Aug 15, 2026
7aeda41
Classify missing imports as tenant build failures
kojiwakayama Aug 15, 2026
97647ea
Keep framework import failures at error severity
kojiwakayama Aug 15, 2026
4f5248f
Reconcile tenant telemetry with current main
kojiwakayama Aug 15, 2026
1d6f809
Keep descendant CDN failures at error severity
kojiwakayama Aug 15, 2026
f6783d7
Keep URL correlation lossless without exposing requests
kojiwakayama Aug 15, 2026
d97073b
Respect ASI boundaries while scanning MDX imports
kojiwakayama Aug 15, 2026
b625b6d
Keep async iteration syntax out of import discovery
kojiwakayama Aug 15, 2026
f738617
fix(transforms): keep commented for out of for-await detection
kwakayama Aug 15, 2026
d6f2b31
Keep scanner guidance within repository copy rules
kojiwakayama Aug 15, 2026
f584aab
Keep dynamic dependency failures lazy
kojiwakayama Aug 15, 2026
042ea1c
Preserve concurrent scanner hardening
kojiwakayama Aug 15, 2026
6d99c28
Keep optional module failures lazy on every fetch path
kojiwakayama Aug 15, 2026
498c067
Keep keyword-named properties from swallowing tenant imports
kojiwakayama Aug 15, 2026
5b67040
Keep display text and regexes out of module metadata
kojiwakayama Aug 15, 2026
81b5efa
Keep reserved member names distinct from regex prefixes
kojiwakayama Aug 15, 2026
9f970a3
Keep source-like text from becoming executable dependencies
kojiwakayama Aug 15, 2026
e0c12ef
Keep source-like JSX syntax out of dependency resolution
kojiwakayama Aug 15, 2026
a4d3667
Keep source-like Unicode JSX out of dependency resolution
kojiwakayama Aug 15, 2026
49da2c1
Keep optional tenant modules lazy without hiding infrastructure faults
kojiwakayama Aug 15, 2026
1144890
Keep declaration and control boundaries out of regex text
kojiwakayama Aug 15, 2026
600e681
Bring tenant error classification onto the current runtime
kojiwakayama Aug 15, 2026
91e21cb
Keep authored failures distinct at syntax and package boundaries
kojiwakayama Aug 15, 2026
769ca30
Keep JSX examples out of static import resolution
kojiwakayama Aug 15, 2026
2c1e6b2
Keep tenant build diagnostics resistant to poisoned errors
kojiwakayama Aug 15, 2026
0e25fad
Keep tenant build classification honest after intrinsic poisoning
kojiwakayama Aug 15, 2026
ab0b645
Keep observability references aligned with hardened classification
kojiwakayama Aug 15, 2026
9048ec5
Preserve root dynamic import suffixes in MDX modules
kojiwakayama Aug 15, 2026
3ca25c2
Keep tenant build markers honest after primordial poisoning
kojiwakayama Aug 15, 2026
d8edd78
Prevent poisoned diagnostic shapes from hiding framework failures
kojiwakayama Aug 15, 2026
e7f5390
Keep generated observability links aligned with source
kojiwakayama Aug 15, 2026
8da293c
Preserve tenant diagnostics across the scanner merge
kojiwakayama Aug 15, 2026
81c7b59
Keep project detection on the shared manifest parser
kojiwakayama Aug 15, 2026
f972e7d
Keep member-name scanning linear under coverage
kojiwakayama Aug 16, 2026
5ea69db
Restore validation on the stabilized main baseline
kojiwakayama Aug 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions docs/api-reference/veryfront/errors.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/api-reference/veryfront/extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -785,7 +785,7 @@ import {
| Name | Description | Source |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `ApplicationErrorContext` | Sanitized context attached when a runtime reports an application error. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-error-contract.ts#L5) |
| `ApplicationErrorReporter` | Provider-neutral application error capture and flush interface. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-error-contract.ts#L23) |
| `ApplicationErrorReporter` | Provider-neutral application error capture and flush interface. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-error-contract.ts#L27) |
| `ApplicationErrorReporterInitializationContext` | Runtime context passed to an explicitly selected reporter initializer. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/extensions/observability/application-error-reporter.ts#L9) |
| `ApplicationErrorReporterInitializer` | Application-composition contract for an error-reporting implementation. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/extensions/observability/application-error-reporter.ts#L20) |
| `ApplicationErrorReporterSession` | Reporter and cleanup ownership returned by an application-selected initializer. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/extensions/observability/application-error-reporter.ts#L14) |
Expand Down
16 changes: 8 additions & 8 deletions docs/api-reference/veryfront/observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,13 @@ const result = await withSpan("load-data", async () => {
| Name | Description | Source |
| ---------------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `addSpanEvent` | Event emitted for add span. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/index.ts#L70) |
| `captureApplicationError` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L224) |
| `captureApplicationError` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L266) |
| `createChildSpan` | Create child span. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/index.ts#L79) |
| `createFileLogSubscriber` | Create file log subscriber. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/file-log-subscriber.ts#L541) |
| `createOpenTelemetryServiceTracer` | Create open telemetry service tracer. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/service-tracer.ts#L364) |
| `endSpan` | End an active tracing span. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/index.ts#L57) |
| `extractContext` | Context for extract. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/index.ts#L88) |
| `flushApplicationErrors` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L242) |
| `flushApplicationErrors` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L294) |
| `getActiveContext` | Context for get active. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/index.ts#L98) |
| `getErrorCollector` | Return error collector. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/error-collector.ts#L406) |
| `getGlobalMetricsAPI` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/api-shim.ts#L667) |
Expand All @@ -58,7 +58,7 @@ const result = await withSpan("load-data", async () => {
| `getMetricsState` | State for get metrics. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/metrics/index.ts#L38) |
| `getTraceContext` | Context for get trace. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/otlp-setup.ts#L500) |
| `initAutoInstrumentation` | Initialize automatic instrumentation wrappers. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/auto-instrument/orchestrator.ts#L15) |
| `initializeApplicationErrorReporter` | Activate an explicitly selected reporter initializer. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L149) |
| `initializeApplicationErrorReporter` | Activate an explicitly selected reporter initializer. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L153) |
| `initializeOTLP` | Initialize OTLP tracing export. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/otlp-setup.ts#L113) |
| `initMetrics` | Initialize metrics collection. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/metrics/index.ts#L20) |
| `initTracing` | Initialize tracing for the current runtime. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/index.ts#L18) |
Expand Down Expand Up @@ -131,10 +131,10 @@ const result = await withSpan("load-data", async () => {
| Name | Description | Source |
| ----------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `ApplicationErrorContext` | Sanitized context attached when a runtime reports an application error. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-error-contract.ts#L5) |
| `ApplicationErrorReporter` | Provider-neutral application error capture and flush interface. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-error-contract.ts#L23) |
| `ApplicationErrorReporter` | Provider-neutral application error capture and flush interface. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-error-contract.ts#L27) |
| `ApplicationErrorReporterInitializationContext` | Runtime context passed to an explicitly selected reporter initializer. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/extensions/observability/application-error-reporter.ts#L9) |
| `ApplicationErrorReporterInitializer` | Application-composition contract for an error-reporting implementation. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/extensions/observability/application-error-reporter.ts#L20) |
| `ApplicationErrorReporterLifecycle` | Active application-error reporter ownership. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L28) |
| `ApplicationErrorReporterLifecycle` | Active application-error reporter ownership. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L29) |
| `ApplicationErrorReporterSession` | Reporter and cleanup ownership returned by an application-selected initializer. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/extensions/observability/application-error-reporter.ts#L14) |
| `AttributeValue` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/tracing/api-shim.ts#L33) |
| `AutoInstrumentConfig` | Configuration used by auto instrument. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/auto-instrument/types.ts#L24) |
Expand Down Expand Up @@ -237,8 +237,8 @@ import {

| Name | Description | Source |
| ---------------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `captureApplicationError` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L224) |
| `flushApplicationErrors` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L242) |
| `captureApplicationError` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L266) |
| `flushApplicationErrors` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-errors.ts#L294) |
| `initializeSentry` | Initialize the process-wide Sentry reporter once. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/sentry.ts#L86) |
| `initializeSentryFromEnv` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/sentry.ts#L70) |
| `isSentryEnabled` | Return whether Sentry is explicitly enabled. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/sentry.ts#L39) |
Expand All @@ -250,5 +250,5 @@ import {
| Name | Description | Source |
| -------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `ApplicationErrorContext` | Sanitized context attached when a runtime reports an application error. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-error-contract.ts#L5) |
| `ApplicationErrorReporter` | Provider-neutral application error capture and flush interface. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-error-contract.ts#L23) |
| `ApplicationErrorReporter` | Provider-neutral application error capture and flush interface. | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/application-error-contract.ts#L27) |
| `SentryConfig` | | [source](https://github.com/veryfront/veryfront-code/blob/main/src/observability/sentry.ts#L18) |
7 changes: 7 additions & 0 deletions docs/guides/errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,13 @@ MDX compilation failed.
- **HTTP status:** 500
- **What to do:** Check your MDX file syntax

### markdown-compile-error

Markdown compilation failed.

- **HTTP status:** 500
- **What to do:** Check your Markdown file syntax and frontmatter

### asset-optimization-error

Asset optimization failed.
Expand Down
50 changes: 50 additions & 0 deletions extensions/ext-bundler-esbuild/src/esbuild-bundler.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { createRequire } from "node:module";
import type { BuildContext } from "veryfront/extensions/bundler";

import {
__markEsbuildSourceDiagnosticForTests,
__recordOwnershipErrorForTests,
__resetOwnershipErrorForTests,
__resetServiceRecoveryForTests,
Expand Down Expand Up @@ -72,6 +73,55 @@ function observeEsbuildServices(): {
}

describe("EsbuildBundler.transform", () => {
it("normalizes only trusted esbuild diagnostic accessors to an own marker", () => {
const marker = Symbol.for("veryfront.bundler.esbuild-source-diagnostic");
const failure = new Error("Transform failed");
let errorsGetterReads = 0;
Object.defineProperty(failure, "errors", {
get() {
errorsGetterReads++;
return [{ location: { line: 1, column: 1 } }];
},
});
const defineProperty = Object.defineProperty;
const previousDefineProperty = Object.getOwnPropertyDescriptor(Object, "defineProperty");
assertExists(previousDefineProperty);
defineProperty(Object, "defineProperty", {
...previousDefineProperty,
value: () => {
throw new Error("poisoned Object.defineProperty");
},
});

try {
__markEsbuildSourceDiagnosticForTests(failure);
} finally {
defineProperty(Object, "defineProperty", previousDefineProperty);
}

assertEquals(errorsGetterReads, 1);
assertEquals(Object.getOwnPropertyDescriptor(failure, marker)?.value, true);

let locationGetterReads = 0;
const accessorLocation = Object.defineProperty({}, "location", {
get() {
locationGetterReads++;
return { line: 1, column: 1 };
},
});
const untrustedLocation = new Error("Transform failed");
Object.defineProperty(untrustedLocation, "errors", {
get() {
return [accessorLocation];
},
});

__markEsbuildSourceDiagnosticForTests(untrustedLocation);

assertEquals(locationGetterReads, 0);
assertEquals(Object.getOwnPropertyDescriptor(untrustedLocation, marker), undefined);
});

it("compiles TS to JS", async () => {
const bundler = new EsbuildBundler();
try {
Expand Down
Loading