You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PDF documents now extract and persist images during ingestion. Images are embedded inline in wiki pages and rendered in the wiki viewer. The vision model (if configured) analyzes each image with page-level context to produce more accurate captions.
New SourceImage model stores image metadata and MinIO keys per source
wiki_images router resolves image references to presigned URLs at read time
New WikiImage frontend component with lazy loading and fallback state
useImageResolver hook fetches presigned URLs on demand
Embedding model catalog
Embedding models are now managed through a structured catalog instead of free-form text input. This eliminates two classes of production bugs: misspelled model IDs and dimension mismatches between stored vectors and the configured model.
Admin can switch embedding models and trigger a full re-embed from the UI
Improvements
Vision captioning quality - captioning prompt now includes surrounding page text as context, producing more specific and accurate image descriptions
Image storage - images are stored with stable UUIDs and referenced from wiki content_md by ID rather than injected as inline captions; this makes wiki content portable across MinIO key changes
Wiki compiler - improved handling of image markers in the compilation pipeline
Docker & deployment
Self-contained Docker Compose - postgres, redis, and MinIO are now included in docker-compose.yml; no external infrastructure needed
MINIO_PUBLIC_ENDPOINT - new env var for presigned URL hostname. Must be set to a browser-accessible address (localhost:9000 for local Docker, <server-ip>:9000 for remote). Without it, presigned image URLs resolve to the internal Docker hostname and fail in the browser
POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_DB - postgres credentials moved from hardcoded values in docker-compose.yml to .env.docker
--env-file .env.docker - must now be passed explicitly to docker compose commands to avoid credential mismatch between the local .env and the Docker environment
Service name hostnames - MINIO_ENDPOINT, REDIS_HOST, and DATABASE_URL now use Docker Compose service names (minio, redis, postgres) instead of container names with underscores, which caused InvalidRequest (invalid hostname) errors in the MinIO SDK
Server deployment guide added to SETUP.md, covering Linux server setup, firewall config, and optional nginx + HTTPS
Bug fixes
Fixed MinIO presigned URLs returning 403 when MINIO_PUBLIC_ENDPOINT differed from MINIO_ENDPOINT - the presign client now uses a dedicated Minio instance configured with the public endpoint and pre-seeds the bucket region to avoid internal connectivity checks
Fixed SignatureDoesNotMatch on fresh Docker Compose deployments caused by Docker loading .env (local dev config) for variable substitution instead of .env.docker
Fixed Invalid Request (invalid hostname) in MinIO SDK caused by underscores in container names
Database migrations
015_multi_dim_embeddings - adds per-dimension embedding tables and an embedding_jobs tracking table
016_source_images - adds source_images table for persisted image metadata
Run after upgrading:
docker exec arkon_api alembic upgrade head
v0.2.0 - 2026-05-06
MCP server finalized with full tool set
Wiki versioning and draft/approval workflow
AI Skills system with department scoping
Workspace-scoped wiki and document management
Audit logging
RBAC v2 with custom roles and granular permissions
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Release Notes
v0.2.2 - 2026-05-08
New features
Images in wiki pages
PDF documents now extract and persist images during ingestion. Images are embedded inline in wiki pages and rendered in the wiki viewer. The vision model (if configured) analyzes each image with page-level context to produce more accurate captions.
SourceImagemodel stores image metadata and MinIO keys per sourcewiki_imagesrouter resolves image references to presigned URLs at read timeWikiImagefrontend component with lazy loading and fallback stateuseImageResolverhook fetches presigned URLs on demandEmbedding model catalog
Embedding models are now managed through a structured catalog instead of free-form text input. This eliminates two classes of production bugs: misspelled model IDs and dimension mismatches between stored vectors and the configured model.
google/gemini-embedding-001,google/gemini-embedding-2,openai/text-embedding-3-small,openai/text-embedding-3-largewiki_page_embeddings_768,_1024,_1536,_3072Improvements
content_mdby ID rather than injected as inline captions; this makes wiki content portable across MinIO key changesDocker & deployment
docker-compose.yml; no external infrastructure neededMINIO_PUBLIC_ENDPOINT- new env var for presigned URL hostname. Must be set to a browser-accessible address (localhost:9000for local Docker,<server-ip>:9000for remote). Without it, presigned image URLs resolve to the internal Docker hostname and fail in the browserPOSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB- postgres credentials moved from hardcoded values indocker-compose.ymlto.env.docker--env-file .env.docker- must now be passed explicitly todocker composecommands to avoid credential mismatch between the local.envand the Docker environmentMINIO_ENDPOINT,REDIS_HOST, andDATABASE_URLnow use Docker Compose service names (minio,redis,postgres) instead of container names with underscores, which causedInvalidRequest (invalid hostname)errors in the MinIO SDKBug fixes
MINIO_PUBLIC_ENDPOINTdiffered fromMINIO_ENDPOINT- the presign client now uses a dedicated Minio instance configured with the public endpoint and pre-seeds the bucket region to avoid internal connectivity checksSignatureDoesNotMatchon fresh Docker Compose deployments caused by Docker loading.env(local dev config) for variable substitution instead of.env.dockerInvalid Request (invalid hostname)in MinIO SDK caused by underscores in container namesDatabase migrations
015_multi_dim_embeddings- adds per-dimension embedding tables and anembedding_jobstracking table016_source_images- addssource_imagestable for persisted image metadataRun after upgrading:
docker exec arkon_api alembic upgrade headv0.2.0 - 2026-05-06
This discussion was created from the release v0.2.2 - 2026-05-08.
All reactions