fix: TempoMapEditor crash on missing count_in + registry URL + Ollama schema
- Defensive default for count_in in TempoMapEditor prevents crash when AI omits field - Fix hardcoded GitHub registry URL → git.avezzano.io/the_og/clicktrack-registry - Add response_format json_schema to Ollama provider so count_in is always required Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -34,7 +34,11 @@ export default function TempoMapEditor({
|
|||||||
ctpDoc,
|
ctpDoc,
|
||||||
readOnly = false,
|
readOnly = false,
|
||||||
}: TempoMapEditorProps) {
|
}: TempoMapEditorProps) {
|
||||||
const { metadata, count_in, sections } = ctpDoc;
|
const {
|
||||||
|
metadata,
|
||||||
|
count_in = { enabled: false, bars: 2, use_first_section_tempo: true },
|
||||||
|
sections,
|
||||||
|
} = ctpDoc;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="space-y-5">
|
<div className="space-y-5">
|
||||||
@@ -117,7 +121,7 @@ export default function TempoMapEditor({
|
|||||||
<p className="text-xs text-zinc-600">
|
<p className="text-xs text-zinc-600">
|
||||||
Interactive editor coming soon — contribute via the{" "}
|
Interactive editor coming soon — contribute via the{" "}
|
||||||
<a
|
<a
|
||||||
href="https://github.com/your-org/clicktrack-registry"
|
href="https://git.avezzano.io/the_og/clicktrack-registry"
|
||||||
className="text-blue-500 hover:underline"
|
className="text-blue-500 hover:underline"
|
||||||
>
|
>
|
||||||
community registry
|
community registry
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'server-only';
|
|||||||
|
|
||||||
import type { CTPDocument } from "@/lib/ctp/schema";
|
import type { CTPDocument } from "@/lib/ctp/schema";
|
||||||
import type { AnalysisInput, AnalysisProvider } from "@/lib/analysis/providers";
|
import type { AnalysisInput, AnalysisProvider } from "@/lib/analysis/providers";
|
||||||
import { SYSTEM_PROMPT } from "./anthropic";
|
import { SYSTEM_PROMPT, CTP_SCHEMA } from "./anthropic";
|
||||||
|
|
||||||
function getBaseUrl(): string {
|
function getBaseUrl(): string {
|
||||||
return process.env.OLLAMA_BASE_URL ?? "http://localhost:11434";
|
return process.env.OLLAMA_BASE_URL ?? "http://localhost:11434";
|
||||||
@@ -44,6 +44,13 @@ async function callOllama(model: string, userMessage: string): Promise<string> {
|
|||||||
"\n\nRespond with valid JSON only. Do not add any explanation or markdown. Your entire response must be a single valid JSON object matching the schema.",
|
"\n\nRespond with valid JSON only. Do not add any explanation or markdown. Your entire response must be a single valid JSON object matching the schema.",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
response_format: {
|
||||||
|
type: "json_schema",
|
||||||
|
json_schema: {
|
||||||
|
name: "CTPDocument",
|
||||||
|
schema: CTP_SCHEMA,
|
||||||
|
},
|
||||||
|
},
|
||||||
stream: false,
|
stream: false,
|
||||||
}),
|
}),
|
||||||
signal: AbortSignal.timeout(120000), // 2-minute timeout for slow local models
|
signal: AbortSignal.timeout(120000), // 2-minute timeout for slow local models
|
||||||
|
|||||||
Reference in New Issue
Block a user