RaymondVerhoef
b85785a0cb
chore: ignore .claude/ local agent state
...
On Pull Request to Main / test (pull_request) Successful in 44s
On Pull Request to Main / publish (pull_request) Successful in 1m0s
On Pull Request to Main / deploy-dev (pull_request) Successful in 1m33s
Adds Claude Code's per-user .claude/ directory (settings.local.json
allowlists, etc.) to .gitignore so it doesn't get accidentally
committed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 13:54:57 +02:00
RaymondVerhoef
4a8dbee7df
feat: phase 1 of AI pipeline hardening — single LLM client + tier-aware models
...
Implements phase 1 of AI_PIPELINE_HARDENING_PLAN.md. Every Anthropic call
now goes through one module that owns retry, timeout, abort, structured-
output parsing, schema validation, and best-effort call telemetry.
* src/lib/llm.js — single callLLM entry point. Resolves model per tier
(fast / standard / reasoning) with admin:model legacy fallback for the
standard tier; 60s default timeout via AbortController; balanced-brace
JSON extraction; LLMHttpError, LLMTruncatedError, LLMOutputError, and
LLMValidationError surface clearly distinct failure modes.
* src/lib/llmRetry.js — exponential backoff with full jitter, retries
only on transient HTTP statuses, honours Retry-After up to 60s, never
retries on AbortError.
* src/lib/llmSchemas.js — Zod schemas for every structured task plus
normalizeHandbookResult (collapses legacy "executes" relations into
the canonical "executed_by" vocabulary).
* src/lib/api.js — thin shim over callLLM so existing callers (extraction
pipeline, learning, quiz, R42, knowledge graph) keep working unchanged.
* src/lib/__tests__/ — 32 Vitest cases covering parse paths, error
surfaces, simulation mode, model resolution, and schema validation.
* src/pages/Admin/index.jsx — three model inputs (fast / standard /
reasoning) replacing the single legacy field; legacy value falls back
for the standard tier so existing overrides survive.
Adds Zod and Vitest, plus an "npm run test" script.
Also cleans up the pre-existing repo-wide ESLint failures so phase 1's
"npm run lint passes" acceptance criterion can be checked: drops unused
React imports across the JSX tree (React 19 JSX runtime auto-imports),
attaches cause to rethrown errors in the service modules, ignores
pb_migrations in the ESLint config (PocketBase JSVM globals), and
removes one dead handleCreateCustom function in Leren.jsx. A real
behaviour bug surfaced in Testen.jsx — the quiz timer captured a stale
finishQuiz via setInterval closure; now updated via finishQuizRef so the
timer always invokes the latest callback.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 13:50:09 +02:00
RaymondVerhoef
db5bb854c3
docs: add AI pipeline hardening plan; rename giteaService to githubService
...
On Pull Request to Main / test (pull_request) Successful in 30s
On Pull Request to Main / publish (pull_request) Successful in 58s
On Pull Request to Main / deploy-dev (pull_request) Successful in 1m35s
Adds AI_PIPELINE_HARDENING_PLAN.md — a phased, self-contained plan an AI
agent can execute to harden the Anthropic integration (central LLM
client, tool-based structured outputs, prompt caching, retrieval-based
R42 context, eval harness).
Renames src/lib/giteaService.js to src/lib/githubService.js. The module
calls api.github.com and raw.githubusercontent.com; the previous name
was misleading. No behaviour change. Updates the single import site in
src/components/admin/KnowledgeGraph.jsx.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 12:03:25 +02:00
RaymondVerhoef
6fe66bbd93
feat: implement curriculum service and learning automation infrastructure
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 57s
On Push to Main / deploy-dev (push) Successful in 1m33s
2026-05-20 11:44:58 +02:00
RaymondVerhoef
2752fb95d9
feat: implement AI-driven knowledge extraction pipeline for company documentation
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 59s
On Push to Main / deploy-dev (push) Successful in 1m32s
2026-05-20 09:35:57 +02:00
RaymondVerhoef
caaf2b9eba
feat: implement extraction pipeline for knowledge graph generation from text and handbook updates
2026-05-20 09:29:21 +02:00
RaymondVerhoef
d6c1813f75
feat: add extractionPipeline to process source text and handbook updates into a structured knowledge graph
2026-05-20 09:29:16 +02:00
RaymondVerhoef
d5655d2232
feat: implement automated knowledge graph extraction pipeline and visualization component
2026-05-20 08:55:27 +02:00
RaymondVerhoef
08aaed591f
feat: add KnowledgeGraph component for visualizing and managing learning topics and relationships
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 57s
On Push to Main / deploy-dev (push) Successful in 1m37s
2026-05-19 12:33:12 +02:00
RaymondVerhoef
8529def748
feat: add UploadZone component and database utility for file processing
On Push to Main / test (push) Successful in 31s
On Push to Main / publish (push) Successful in 59s
On Push to Main / deploy-dev (push) Successful in 1m35s
2026-05-19 12:00:14 +02:00
RaymondVerhoef
d23b0b6b16
feat: add learning_relevance field to topics and implement KnowledgeGraph UI with handbook synchronization capabilities
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 58s
On Push to Main / deploy-dev (push) Successful in 1m39s
2026-05-19 08:40:52 +02:00
RaymondVerhoef
fa5dcaeb01
feat: add docker-compose configuration and ansible playbook for production deployment
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 59s
On Push to Main / deploy-dev (push) Successful in 1m36s
2026-05-19 07:54:52 +02:00
RaymondVerhoef
190d1a6e0b
feat: add KnowledgeGraph component for visualizing, editing, and syncing handbook content with AI-driven analysis
On Push to Main / test (push) Successful in 31s
On Push to Main / publish (push) Successful in 59s
On Push to Main / deploy-dev (push) Successful in 1m49s
2026-05-18 22:12:19 +02:00
RaymondVerhoef
d2b067735c
feat: add UploadZone component for drag-and-drop file processing
On Push to Main / test (push) Successful in 31s
On Push to Main / publish (push) Successful in 57s
On Push to Main / deploy-dev (push) Successful in 1m34s
2026-05-18 22:03:10 +02:00
RaymondVerhoef
00541f4a08
feat: add KnowledgeGraph visualization and handbook synchronization component for admin interface
2026-05-18 22:01:02 +02:00
RaymondVerhoef
3555048308
chore: update document title to Learning Platform
2026-05-18 21:48:20 +02:00
RaymondVerhoef
590912ac04
feat: add KnowledgeGraph component for visualizing and managing knowledge base topics and relations
2026-05-18 21:42:14 +02:00
RaymondVerhoef
d71caa41f6
feat: implement interactive Knowledge Graph visualization with AI-driven content analysis and handbook synchronization tools
2026-05-18 21:30:05 +02:00
RaymondVerhoef
f68d76e3d2
feat: add giteaService for fetching files and content from GitHub repositories
2026-05-18 21:25:18 +02:00
RaymondVerhoef
7b84545dc5
feat: add KnowledgeGraph component for D3-based visualization and AI-driven graph management
2026-05-18 21:21:58 +02:00
RaymondVerhoef
f35550f270
feat: add knowledge graph component and persistent handbook sync state collection
2026-05-18 21:13:17 +02:00
RaymondVerhoef
9f3e1113a6
chore: update pocketbase command to include migrations directory and set working directory
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 59s
On Push to Main / deploy-dev (push) Successful in 1m32s
2026-05-18 20:46:34 +02:00
RaymondVerhoef
07a41938f1
feat: add created and updated autodate fields to sources collection via migration
2026-05-18 20:35:03 +02:00
RaymondVerhoef
3afef7785e
feat: perform extensive database collection migrations and updates to PocketBase schema
On Push to Main / test (push) Successful in 43s
On Push to Main / publish (push) Successful in 1m6s
On Push to Main / deploy-dev (push) Successful in 1m38s
2026-05-18 20:12:40 +02:00
RaymondVerhoef
d68164880f
chore: update package-lock.json dependencies
2026-05-18 19:57:43 +02:00
RaymondVerhoef
08f5b1fe18
feat: implement 52-week annual curriculum system with admin management and automated topic progression
2026-05-18 19:49:05 +02:00
RaymondVerhoef
228d0d7a54
docs: update README and AI_AGENT.md with platform architecture, selective content generation, and deployment details
On Push to Main / test (push) Successful in 28s
On Push to Main / publish (push) Successful in 54s
On Push to Main / deploy-dev (push) Successful in 1m27s
2026-05-17 20:35:12 +02:00
RaymondVerhoef
06eb974825
feat: add Anthropic API client and knowledge graph extraction pipeline
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 58s
On Push to Main / deploy-dev (push) Successful in 1m35s
2026-05-17 18:20:29 +02:00
RaymondVerhoef
5659ff6726
feat: implement learning module page with AI-generated content and feedback workflow
On Push to Main / test (push) Successful in 29s
On Push to Main / publish (push) Successful in 58s
On Push to Main / deploy-dev (push) Successful in 1m34s
2026-05-17 17:53:09 +02:00
RaymondVerhoef
5b37c04588
feat: implement AI-driven learning content generation service and interactive student dashboard
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 57s
On Push to Main / deploy-dev (push) Successful in 1m32s
2026-05-17 17:10:40 +02:00
RaymondVerhoef
98e32d8ac0
feat: implement R42 chat infrastructure with Anthropic API integration and custom design system
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 57s
On Push to Main / deploy-dev (push) Successful in 1m31s
2026-05-17 16:48:40 +02:00
RaymondVerhoef
43d01dff58
docs: document global disablement of PocketBase auto-cancellation in AI_AGENT.md
2026-05-17 16:03:48 +02:00
RaymondVerhoef
b28956bbe7
feat: initialize PocketBase client with global auto-cancellation disabled and custom session expiry handling
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 57s
On Push to Main / deploy-dev (push) Successful in 1m33s
2026-05-17 15:27:34 +02:00
RaymondVerhoef
e2de7f0729
feat: add GitHub repository synchronization functionality with document extraction pipeline and update security policy to permit GitHub API access.
On Push to Main / test (push) Successful in 29s
On Push to Main / publish (push) Successful in 58s
On Push to Main / deploy-dev (push) Successful in 1m32s
2026-05-17 15:15:51 +02:00
RaymondVerhoef
2374413282
feat: add anthropic-dangerous-direct-browser-access header to Anthropic proxy in Caddyfile
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 57s
On Push to Main / deploy-dev (push) Successful in 1m34s
2026-05-17 14:47:11 +02:00
RaymondVerhoef
77d411b77e
feat: implement Anthropic API client with simulation support and add PocketBase configuration with session expiry handling
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 58s
On Push to Main / deploy-dev (push) Successful in 1m33s
2026-05-17 14:27:31 +02:00
RaymondVerhoef
775c3030d5
feat: implement PocketBase database schema setup script and core API service for content management
On Push to Main / test (push) Successful in 29s
On Push to Main / publish (push) Successful in 59s
On Push to Main / deploy-dev (push) Successful in 1m33s
2026-05-17 14:18:26 +02:00
RaymondVerhoef
1bc51b3cb6
feat: initialize PocketBase backend with database structure, API helpers, and setup scripts
2026-05-17 14:16:00 +02:00
RaymondVerhoef
1ba647fecd
feat: add roles documentation and database configuration files while removing deployment guide
On Push to Main / test (push) Successful in 38s
On Push to Main / publish (push) Successful in 1m4s
On Push to Main / deploy-dev (push) Successful in 1m38s
2026-05-17 13:39:58 +02:00
RaymondVerhoef
271baba860
chore: add environment variable configuration for Anthropic API key
On Push to Main / test (push) Successful in 40s
On Push to Main / publish (push) Successful in 1m6s
On Push to Main / deploy-dev (push) Successful in 1m41s
2026-05-17 10:39:40 +02:00
RaymondVerhoef
8b57e10754
feat: implement admin dashboard with management modules and PocketBase setup script
2026-05-17 10:29:06 +02:00
RaymondVerhoef
e68335e159
feat: implement automated Ansible deployment workflows and secure Anthropic API key management via reverse proxy injection
On Push to Main / test (push) Successful in 41s
On Push to Main / publish (push) Successful in 1m8s
On Push to Main / deploy-dev (push) Successful in 1m39s
2026-05-17 10:00:14 +02:00
RaymondVerhoef
bb39a5fa71
feat: add script to initialize and configure PocketBase collections
On Push to Main / test (push) Successful in 39s
On Push to Main / publish (push) Successful in 1m8s
On Push to Main / deploy-dev (push) Successful in 1m43s
2026-05-16 20:00:28 +02:00
RaymondVerhoef
267fa340a8
feat: initialize database connection module for data persistence
On Push to Main / test (push) Successful in 39s
On Push to Main / publish (push) Successful in 1m6s
On Push to Main / deploy-dev (push) Successful in 1m40s
2026-05-16 19:44:30 +02:00
RaymondVerhoef
6e25cdbf25
feat: modularize deployment by adding environment-specific compose configurations and standardizing pocketbase data paths
On Push to Main / test (push) Successful in 38s
On Push to Main / publish (push) Successful in 1m7s
On Push to Main / deploy-dev (push) Successful in 1m41s
2026-05-16 18:22:19 +02:00
RaymondVerhoef
4b7562749d
feat: add docker compose configurations for development and production environments
On Push to Main / test (push) Successful in 38s
On Push to Main / publish (push) Successful in 1m7s
On Push to Main / deploy-dev (push) Successful in 1m39s
2026-05-15 15:06:48 +02:00
RaymondVerhoef
7234074c21
chore: initialize PocketBase environment with project metadata, configuration, and data structure types
On Push to Main / test (push) Successful in 42s
On Push to Main / publish (push) Successful in 1m7s
On Push to Main / deploy-dev (push) Successful in 1m40s
2026-05-15 14:55:34 +02:00
RaymondVerhoef
0a73ab3466
feat: implement content management dashboard and update proxy configurations to support AI-assisted learning material generation
On Push to Main / test (push) Successful in 23s
On Push to Main / publish (push) Successful in 50s
On Push to Main / deploy-dev (push) Successful in 1m22s
2026-05-15 12:53:53 +02:00
RaymondVerhoef
aaafe413f6
feat: add docker-compose configuration for production learning platform and pocketbase services
On Push to Main / test (push) Successful in 18s
On Push to Main / publish (push) Successful in 52s
On Push to Main / deploy-dev (push) Successful in 1m27s
2026-05-14 22:30:52 +02:00
RaymondVerhoef
e223836d7d
feat: add Leren learning page for content generation and feedback, and create TestManager admin component
On Push to Main / test (push) Has been cancelled
On Push to Main / publish (push) Has been cancelled
On Push to Main / deploy-dev (push) Has been cancelled
2026-05-14 22:21:39 +02:00