Skip to content

Commit e133a02

Browse files
committed
fix: clean up dead renderSeek config, tool-call fixHints, and unnecessary comments
1 parent ba13e5c commit e133a02

4 files changed

Lines changed: 10 additions & 63 deletions

File tree

packages/core/src/lint/hyperframeLinter.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -369,8 +369,7 @@ export function lintHyperframeHtml(
369369
}
370370

371371
// #3.6: Placeholder/fake media URLs — CRITICAL
372-
// Agents sometimes fabricate URLs (placehold.co, placeholder.com, example.com)
373-
// instead of using fetch_media or generate_image. These 404 at render time.
372+
// Placeholder URLs (placehold.co, placeholder.com, example.com) will 404 at render time.
374373
{
375374
const PLACEHOLDER_DOMAINS = /\b(placehold\.co|placeholder\.com|placekitten\.com|picsum\.photos|example\.com|via\.placeholder\.com|dummyimage\.com)\b/i;
376375
for (const tag of tags) {
@@ -384,16 +383,15 @@ export function lintHyperframeHtml(
384383
severity: "error",
385384
message: `<${tag.name}${elementId ? ` id="${elementId}"` : ""}> uses a placeholder URL that will 404 at render time: ${src.slice(0, 80)}`,
386385
elementId,
387-
fixHint: "Use fetch_media to find real stock media, or generate_image/generate_video for AI-generated content.",
386+
fixHint: "Replace with a real media URL. Placeholder domains will 404 at render time.",
388387
snippet: truncateSnippet(tag.raw),
389388
});
390389
}
391390
}
392391
}
393392

394393
// #3.7: Fabricated inline base64 media — CRITICAL
395-
// Agents sometimes embed fake base64 audio/video data instead of using fetch_media.
396-
// Even small base64 data URIs for audio are almost always fabricated garbage that
394+
// Inline base64 audio/video data is almost always fabricated garbage that
397395
// won't play. Real audio files are 100KB+ when base64-encoded.
398396
{
399397
const base64MediaRe = /src\s*=\s*["'](data:(?:audio|video)\/[^;]+;base64,([A-Za-z0-9+/=]{100,}))["']/gi;
@@ -407,9 +405,11 @@ export function lintHyperframeHtml(
407405
// Any embedded base64 audio is suspicious — real audio should be a file
408406
pushFinding({
409407
code: "fabricated_inline_media",
410-
severity: "error",
411-
message: `Embedded base64 ${isSuspicious ? "FABRICATED" : ""} media detected (${(dataSize / 1024).toFixed(0)} KB). Inline base64 audio/video is almost always fake data that won't play. Use fetch_media or extract_audio to get real audio files.`,
412-
fixHint: "Remove the data: URI. Use fetch_media to search for stock music, or extract_audio to get audio from a video.",
408+
severity: isSuspicious ? "error" : "warning",
409+
message: isSuspicious
410+
? `Fabricated base64 media detected (${(dataSize / 1024).toFixed(0)} KB). This is almost certainly fake data that won't play.`
411+
: `Embedded base64 audio/video detected (${(dataSize / 1024).toFixed(0)} KB). Consider using a file URL instead.`,
412+
fixHint: "Remove the data: URI and use a real media file URL instead.",
413413
snippet: truncateSnippet((b64Match[1] ?? "").slice(0, 80) + "..."),
414414
});
415415
}
@@ -858,7 +858,7 @@ export async function lintMediaUrls(
858858
severity: "error",
859859
message: `<${tagName}${elementId ? ` id="${elementId}"` : ""}> references a URL that returned HTTP ${resp.status}: ${url.slice(0, 100)}`,
860860
elementId,
861-
fixHint: "This URL is not accessible. Use fetch_media to find real stock media, or check the URL is correct.",
861+
fixHint: "This URL is not accessible. Replace with a valid, reachable media URL.",
862862
snippet,
863863
});
864864
}
@@ -869,7 +869,7 @@ export async function lintMediaUrls(
869869
severity: "error",
870870
message: `<${tagName}${elementId ? ` id="${elementId}"` : ""}> references an unreachable URL (${reason}): ${url.slice(0, 100)}`,
871871
elementId,
872-
fixHint: "This URL is not accessible. Use fetch_media to find real stock media, or check the URL is correct.",
872+
fixHint: "This URL is not accessible. Replace with a valid, reachable media URL.",
873873
snippet,
874874
});
875875
}

packages/engine/src/config.ts

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,6 @@ export interface EngineConfig {
6666
/** Custom manifest path for Hyperframe runtime. */
6767
runtimeManifestPath?: string;
6868

69-
// ── Render Seek ────────────────────────────────────────────────────
70-
/** Seek strategy for frame-accurate rendering. */
71-
renderSeekMode: "preview-phase" | "strict-boundary";
72-
/** Emit seek diagnostics to console. */
73-
renderSeekDiagnostics: boolean;
74-
/** Time step (seconds) for seek resolution. */
75-
renderSeekStep: number;
76-
/** Fractional offset within a frame for seek positioning. */
77-
renderSeekOffsetFraction: number;
78-
7969
// ── Debug ────────────────────────────────────────────────────────────
8070
debug: boolean;
8171
}
@@ -114,11 +104,6 @@ export const DEFAULT_CONFIG: EngineConfig = {
114104

115105
verifyRuntime: true,
116106

117-
renderSeekMode: "preview-phase",
118-
renderSeekDiagnostics: false,
119-
renderSeekStep: 1 / 120,
120-
renderSeekOffsetFraction: 0.5,
121-
122107
debug: false,
123108
};
124109

@@ -202,16 +187,6 @@ export function resolveConfig(overrides?: Partial<EngineConfig>): EngineConfig {
202187

203188
verifyRuntime: env("PRODUCER_VERIFY_HYPERFRAME_RUNTIME") !== "false",
204189
runtimeManifestPath: env("PRODUCER_HYPERFRAME_MANIFEST_PATH"),
205-
206-
renderSeekMode: env("PRODUCER_RUNTIME_RENDER_SEEK_MODE") === "strict-boundary"
207-
? "strict-boundary" as const
208-
: DEFAULT_CONFIG.renderSeekMode,
209-
renderSeekDiagnostics: envBool("PRODUCER_DEBUG_SEEK_DIAGNOSTICS", DEFAULT_CONFIG.renderSeekDiagnostics),
210-
renderSeekStep: Math.max(1 / 600, envNum("PRODUCER_RENDER_SEEK_STEP", DEFAULT_CONFIG.renderSeekStep)),
211-
renderSeekOffsetFraction: Math.max(
212-
0,
213-
Math.min(0.95, envNum("PRODUCER_RUNTIME_RENDER_SEEK_OFFSET_FRACTION", DEFAULT_CONFIG.renderSeekOffsetFraction)),
214-
),
215190
};
216191

217192
// Remove undefined values so they don't override defaults

packages/producer/src/services/fileServer.ts

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -40,32 +40,7 @@ const MIME_TYPES: Record<string, string> = {
4040
* Render mode extension -- adds renderSeek() for frame-accurate seeking
4141
* without media sync (videos are replaced with frame images during render).
4242
*/
43-
const RENDER_SEEK_MODE =
44-
process.env.PRODUCER_RUNTIME_RENDER_SEEK_MODE === "strict-boundary"
45-
? "strict-boundary"
46-
: "preview-phase";
47-
const RENDER_SEEK_DIAGNOSTICS = process.env.PRODUCER_DEBUG_SEEK_DIAGNOSTICS === "true";
48-
const RENDER_SEEK_STEP = Math.max(
49-
1 / 600,
50-
Number(process.env.PRODUCER_RENDER_SEEK_STEP || 1 / 120),
51-
);
52-
const RENDER_SEEK_OFFSET_FRACTION = Math.max(
53-
0,
54-
Math.min(0.95, Number(process.env.PRODUCER_RUNTIME_RENDER_SEEK_OFFSET_FRACTION || 0.5)),
55-
);
56-
5743
const RENDER_MODE_SCRIPT = `(function() {
58-
var __seekMode = ${JSON.stringify(RENDER_SEEK_MODE)};
59-
var __seekDiagnostics = ${RENDER_SEEK_DIAGNOSTICS ? "true" : "false"};
60-
var __seekStep = ${RENDER_SEEK_STEP};
61-
var __seekOffsetFraction = ${RENDER_SEEK_OFFSET_FRACTION};
62-
window.__HF_EXPORT_RENDER_SEEK_CONFIG = {
63-
mode: __seekMode,
64-
diagnostics: __seekDiagnostics,
65-
step: __seekStep,
66-
offsetFraction: __seekOffsetFraction,
67-
owner: "runtime",
68-
};
6944
function installMediaFallbackPlayer() {
7045
if (document.querySelector('[data-composition-id]')) return false;
7146
var mediaEls = Array.from(document.querySelectorAll('video, audio'));

packages/producer/src/services/htmlCompiler.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -580,9 +580,6 @@ function inlineSubCompositions(
580580
const existing = host.getAttribute("style") || "";
581581
const needsWidth = !existing.includes("width");
582582
const needsHeight = !existing.includes("height");
583-
// Don't inject position — the host's CSS class determines positioning.
584-
// Injecting position:relative breaks overlay compositions (captions,
585-
// foreground-ui) that use position:absolute via their CSS class.
586583
const additions = [
587584
needsWidth ? `width:${hostW}px` : "",
588585
needsHeight ? `height:${hostH}px` : "",

0 commit comments

Comments
 (0)