Current limitations - HULKs/labello GitHub Wiki

Current limitations

These boundaries describe current behavior. See the documentation index for the supported workflows.

Product and workflow

  • Session recovery retains account-scoped drafts but does not enable offline work. Browser recovery remains a best-effort local cache; reloading or an OAuth round trip relies on the existing persisted draft and assignment checks.

  • Offline bundle and synchronization APIs exist, but the browser UI cannot download an offline workspace, author against it without a network connection, retain versioned offline mutations, synchronize them, or present merge conflicts. Browser draft recovery is not offline mode.

  • Independent multi-annotator labeling and agreement calculation are not operational.

  • Prelabels support static float32 Ultralytics YOLO detection and pose ONNX exports. Server-managed box and pose generation requires Linux and uses native GPU providers with CPU fallback. Browser inference is unavailable. Model files are supplied by the operator. External prediction import is unavailable.

  • Task tutorials display configured title and text only. Administrators can enter example-image paths, but those images are not loaded or shown to annotators.

  • Approval review supports object decisions through buttons and configurable shortcuts plus a final full-image check. Swipe-to-approve or reject is not implemented.

  • The browser normalizes primary pen events and suppresses compatibility-event duplication. Stylus validation covers Chromium emulation and scripted WebKit input; iPadOS Safari/Firefox, physical Linux tablets, and Android styluses remain unverified. Pressure, tilt tools, erasers, and device-level palm rejection are unsupported.

  • Assignment balance can enforce an absolute completion-count window across enabled tasks. It does not separately aggregate and enforce class-level balance when multiple tasks share a class. See Assignment for exact count and boundary semantics.

  • There is no supported native desktop client. The native inspector is a development tool, not an offline or production client.

Persistence and compatibility

  • The browser build requires 128-bit WebAssembly SIMD. Engine support is listed in the WebAssembly feature table. Working previews require createImageBitmap and OffscreenCanvas for asynchronous decoding; decoder failures do not fall back to another image representation.
  • Current dataset configuration and keybindings are versioned TOML, while image indexes, state, events, schemas, snapshots, and import records use JSON or JSONL.
  • Persisted schema version 3 is current and version 2 is the only supported legacy version. Version 1 artifacts are rejected; no 1 -> 2 migration is available.
  • Snapshots are downloadable annotation/audit packages, not complete backups. They omit image bytes, authentication state, user keybindings, and private import/export/prelabel control state, and there is no native snapshot-restore operation.

Operations

  • There is no general browser end-to-end test suite. Focused startup and stylus checks exercise production WASM/API behavior with disposable data. egui_kittest and the native inspector do not validate WASM networking, cookies, IndexedDB, browser input, or deployed responsive behavior.
  • Ingest jobs and some derived caches are process-local and do not survive restarts as durable jobs.
  • Configured cleanup of retained import jobs is not invoked or scheduled by the production server, and import API control/idempotency records have no complete retention lifecycle.
  • GET /health is liveness only. GET /deployment/readiness checks dataset-root traversal and authentication-store loading for deployment admission, but it does not cover write capacity, free space, representative dataset reads, OAuth, or browser networking.
  • Graceful shutdown is wired to Ctrl-C, but there is no application drain deadline or documented SIGTERM handler.
  • Import format support is tested under configured limits, but official COCO-scale operation remains a separate performance gate.
  • Import does not merge into existing datasets and does not support prediction or prelabel import, segmentation, remote sources, or archive sources. Detection and pose export supports explicit ground-truth round trips into new datasets; it does not restore native identities or history.
  • Import publication, assignment locking, and in-memory caches assume one Labello server process per datasets root. Multi-process coordination is not supported, including on a shared network filesystem.

AccessKit and Chromium accessibility checks do not establish certification for a named screen-reader/browser combination. Inspector return-to-review reasons are audited but are not yet integrated into saved-reason notices or notifications.