@@ -3,6 +3,7 @@ import { spawn } from 'node:child_process';
33import { pathExists } from './fsUtil.js' ;
44import { join } from 'node:path' ;
55import { readdir } from 'node:fs/promises' ;
6+ import { SLUG_MODEL } from '@shared/constants.js' ;
67import { log } from './log.js' ;
78
89const MAX_SLUG_LENGTH = 32 ;
@@ -75,9 +76,9 @@ export async function deriveSlug(
7576 }
7677
7778 if ( ! slugBase ) {
78- const haikuSlug = await tryHaikuSlug ( input . variantContent , input . claudeBin ) ;
79- if ( haikuSlug && isSafeSlugFragment ( haikuSlug ) ) {
80- slugBase = haikuSlug ;
79+ const modelSlug = await tryModelSlug ( input . variantContent , input . claudeBin ) ;
80+ if ( modelSlug && isSafeSlugFragment ( modelSlug ) ) {
81+ slugBase = modelSlug ;
8182 source = 'haiku' ;
8283 }
8384 }
@@ -110,7 +111,7 @@ export function slugStoragePath(storageRoot: string, folderName: string): string
110111 return join ( storageRoot , folderName ) ;
111112}
112113
113- async function tryHaikuSlug ( content : string , claudeBin : string ) : Promise < string | null > {
114+ async function tryModelSlug ( content : string , claudeBin : string ) : Promise < string | null > {
114115 const prompt =
115116 'Produce a 2-4 word kebab-case slug summarizing this variant. Output only the slug, no quotes, no explanation. Example: "concise-style" or "verbose-debugging". Variant content follows:\n\n' +
116117 content . slice ( 0 , 4_000 ) ;
@@ -129,7 +130,7 @@ async function tryHaikuSlug(content: string, claudeBin: string): Promise<string
129130 '-p' ,
130131 prompt ,
131132 '--model' ,
132- 'haiku' ,
133+ SLUG_MODEL ,
133134 '--output-format' ,
134135 'json' ,
135136 '--tools' ,
@@ -147,7 +148,7 @@ async function tryHaikuSlug(content: string, claudeBin: string): Promise<string
147148 let buf = '' ;
148149 proc . stdout . on ( 'data' , ( d ) => ( buf += d . toString ( ) ) ) ;
149150 proc . stderr . on ( 'data' , ( d ) => {
150- log . debug ( 'haiku -slug stderr' , { text : d . toString ( ) . slice ( 0 , 200 ) } ) ;
151+ log . debug ( 'model -slug stderr' , { text : d . toString ( ) . slice ( 0 , 200 ) } ) ;
151152 } ) ;
152153
153154 const timer = setTimeout ( ( ) => {
@@ -157,7 +158,7 @@ async function tryHaikuSlug(content: string, claudeBin: string): Promise<string
157158
158159 proc . on ( 'error' , ( err ) => {
159160 clearTimeout ( timer ) ;
160- log . warn ( 'haiku -slug spawn error' , { error : err . message } ) ;
161+ log . warn ( 'model -slug spawn error' , { error : err . message } ) ;
161162 finish ( null ) ;
162163 } ) ;
163164
0 commit comments