diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts
index b334faf..66f86dc 100644
--- a/packages/api/src/index.ts
+++ b/packages/api/src/index.ts
@@ -67,7 +67,7 @@ app.get("/", (_req, res) => {
app.get("/api", (_req, res) => {
res.json({
name: "Transceiver Intelligence Platform",
- version: "0.2.2",
+ version: "0.2.3",
endpoints: [
"GET /api/transceivers?q=&form_factor=&speed=&category=&fiber_type=&wdm_type=&coherent=",
"GET /api/transceivers/:id",
diff --git a/packages/api/src/routes/health.ts b/packages/api/src/routes/health.ts
index a679375..797c6d2 100644
--- a/packages/api/src/routes/health.ts
+++ b/packages/api/src/routes/health.ts
@@ -14,7 +14,7 @@ healthRouter.get("/", async (_req: Request, res: Response) => {
res.json({
success: true,
status: "healthy",
- version: "0.2.2",
+ version: "0.2.3",
uptime: process.uptime(),
database: {
connected: true,
diff --git a/packages/dashboard/index.html b/packages/dashboard/index.html
index ffec0d2..d2a2a92 100644
--- a/packages/dashboard/index.html
+++ b/packages/dashboard/index.html
@@ -2287,7 +2287,7 @@ function copyBlogContent(id) {
// BLOG
function generateBlog(topic, speed) {
- el('blog-list').innerHTML = '
Generating article...
';
+ el('blog-list').innerHTML = 'Generating template... LLM 10-step pipeline starts in background (~10 min)
';
var body = { topic: topic };
if (speed) body.speed = speed;
fetch(API + '/api/blog/generate', {
@@ -2308,17 +2308,17 @@ function generateBlog(topic, speed) {
}
function pollBlogLlm(id, attempt) {
- if (attempt > 30) return;
+ if (attempt > 60) { showToast("Timeout", "LLM pipeline took too long. Check logs."); return; }
setTimeout(function() {
api('/api/blog/' + id).then(function(data) {
- if (data.draft && data.draft.generated_by && data.draft.generated_by.includes('llm')) {
+ if (data.draft && data.draft.generated_by && data.draft.generated_by && data.draft.generated_by !== 'tip-blog-engine-template' && data.draft.generated_by !== null) {
showToast('LLM Enhanced', data.draft.title + ' — ' + data.draft.word_count + ' words');
loadBlogDrafts();
} else {
- pollBlogLlm(id, attempt + 1);
+ var steps = data.draft.pipeline_steps_completed || 0; showToast("LLM Step " + steps + "/10", "Pipeline running..."); pollBlogLlm(id, attempt + 1);
}
}).catch(function() {});
- }, 10000);
+ }, 20000);
}
el('gen-hype').addEventListener('click', function() { generateBlog('hype_cycle', '800G'); });