(stack, plan, usage, signals = {})
| 313 | } |
| 314 | |
| 315 | function renderMetadataLine(stack, plan, usage, signals = {}) { |
| 316 | const fw = `${stack.framework ?? 'unknown'}@${stack.frameworkVersion ?? '?'}`; |
| 317 | const router = stack.hasAppRouter ? 'app-router' : stack.hasPagesRouter ? 'pages-router' : null; |
| 318 | const orm = stack.orm && stack.orm !== 'none' ? stack.orm : null; |
| 319 | const stackParts = [fw, router, orm].filter(Boolean).join(' | '); |
| 320 | const period = usage?.period |
| 321 | ? `${usage.period.from ?? '?'} → ${usage.period.to ?? '?'}` |
| 322 | : '(unavailable)'; |
| 323 | const oplusLabel = observabilityLabel(signals, usage); |
| 324 | // Plan-inference reason is debug detail — only surface when plan is uncertain. |
| 325 | const planLabel = plan.plan === 'uncertain' |
| 326 | ? `${plan.plan} (${plan.reason ?? 'no signal'})` |
| 327 | : (plan.plan ?? 'unknown'); |
| 328 | return `**Stack**: ${stackParts} · **Plan**: ${planLabel} · **Period**: ${period} · **Observability**: ${oplusLabel}`; |
| 329 | } |
| 330 | |
| 331 | function observabilityLabel(signals, usage) { |
| 332 | if (signals.observabilityPlusUsable === true) { |
no test coverage detected