Michael Chihlas
71ff4a8c35
feat: KB Accelerator — convert KB articles into interactive flows
Full-stack implementation of the KB Accelerator feature that converts
static MSP knowledge base articles into interactive troubleshooting
and procedural flows using AI.
Backend:
- Migrations 054/055: kb_imports, kb_import_nodes tables + plan_limits KB columns
- SQLAlchemy models with relationships and self-referential node hierarchy
- Text extraction service (txt, paste, docx with structural metadata)
- AI conversion service with MSP-specialist prompts for both flow types
- 8 API endpoints: upload, get, list, convert, edit node, commit, delete, quota
- Tier-gated access via plan_limits (free: 3 lifetime, pro/team: unlimited)
- 8 integration tests covering upload, get/list, quota, commit, delete
Frontend:
- TypeScript types and API client for all KB Accelerator endpoints
- Multi-step wizard page: upload → processing → review → success
- Upload screen with paste/file tabs, drag-drop, target type selector
- Two-panel review screen with source highlighting and node cards
- Per-node actions: approve, edit, regenerate, insert, delete
- Confidence color indicators (green/amber/red)
- Sidebar navigation with Sparkles icon
- Code-split lazy-loaded route at /kb-accelerator
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:56:28 -04:00
..
2026-02-17 10:35:31 -05:00
2026-02-17 13:20:55 -05:00
2026-02-03 19:15:36 -05:00
2026-02-25 23:17:29 -05:00
2026-02-17 11:48:08 -05:00
2026-01-23 12:17:18 -05:00
2026-02-07 21:17:25 -05:00
2026-02-07 23:06:13 -05:00
2026-01-22 14:38:53 -05:00
2026-02-01 00:08:06 -05:00
2026-02-01 01:32:10 -05:00
2026-02-01 16:53:19 -05:00
2026-02-02 01:31:13 -05:00
2026-02-02 01:31:13 -05:00
2026-02-03 02:07:46 -05:00
2026-02-03 02:07:46 -05:00
2026-02-04 02:47:18 -05:00
2026-02-05 02:42:44 -05:00
2026-02-05 22:04:37 -05:00
2026-02-05 22:44:05 -05:00
2026-02-05 22:44:05 -05:00
2026-02-05 23:28:41 -05:00
2026-02-05 23:33:05 -05:00
2026-02-07 02:38:47 -05:00
2026-02-07 02:38:47 -05:00
2026-02-07 02:38:47 -05:00
2026-02-07 02:38:47 -05:00
2026-02-07 02:55:53 -05:00
2026-02-07 03:06:35 -05:00
2026-02-07 19:10:47 -05:00
2026-02-07 19:10:47 -05:00
2026-02-07 23:06:13 -05:00
2026-02-07 23:06:13 -05:00
2026-02-08 06:05:59 -05:00
2026-02-08 08:14:22 -05:00
2026-02-10 09:45:26 -05:00
2026-02-11 17:52:12 -05:00
2026-02-11 21:42:58 -05:00
2026-02-13 01:42:51 -05:00
2026-02-13 01:42:51 -05:00
2026-02-13 01:42:51 -05:00
2026-02-13 08:32:20 -05:00
2026-02-14 04:13:52 -05:00
2026-02-15 22:45:19 -05:00
2026-02-15 22:45:19 -05:00
2026-02-15 22:45:19 -05:00
2026-02-16 15:23:14 -05:00
2026-03-04 20:44:25 -05:00
2026-03-04 20:44:25 -05:00
2026-03-04 20:44:25 -05:00
2026-03-04 20:44:25 -05:00
2026-03-04 20:44:25 -05:00
2026-03-04 20:44:25 -05:00
2026-03-05 02:03:38 -05:00
2026-03-05 01:41:22 -05:00
2026-03-05 22:43:02 -05:00
2026-03-05 22:43:02 -05:00
2026-03-07 15:51:37 -05:00
2026-03-07 15:51:37 -05:00
2026-03-07 15:51:37 -05:00
2026-03-10 09:49:51 -04:00
2026-03-10 20:56:28 -04:00
2026-03-10 20:56:28 -04:00
2026-02-17 11:29:25 -05:00
2026-02-25 23:52:48 -05:00
2026-02-23 00:03:54 -05:00
2026-02-27 03:42:10 -05:00
2026-02-18 17:39:44 -05:00
2026-02-25 23:17:29 -05:00