Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

213 lines
5.9 KiB
JSON

[
{
"id": "T01",
"description": "Drawer opens CollaborativeEditor when clicking an in-app document in edit mode",
"featureIds": ["F01"],
"implemented": true
},
{
"id": "T02",
"description": "CollaborativeEditor connects to correct Hocuspocus room (document:<tenantId>:<documentId>)",
"featureIds": ["F02"],
"implemented": true
},
{
"id": "T03",
"description": "Detect BlockNote JSON format: array with objects having 'props' field",
"featureIds": ["F03"],
"implemented": true
},
{
"id": "T04",
"description": "Detect ProseMirror JSON format: object with type:'doc'",
"featureIds": ["F03"],
"implemented": true
},
{
"id": "T05",
"description": "Detect empty/null block_data and initialize empty document",
"featureIds": ["F03"],
"implemented": true
},
{
"id": "T06",
"description": "Convert BlockNote paragraph block to ProseMirror paragraph node",
"featureIds": ["F04"],
"implemented": true
},
{
"id": "T07",
"description": "Convert BlockNote paragraph with styled text (bold, italic, underline) to ProseMirror marks",
"featureIds": ["F07"],
"implemented": true
},
{
"id": "T08",
"description": "Convert BlockNote heading block (levels 1-3) to ProseMirror heading node",
"featureIds": ["F05"],
"implemented": true
},
{
"id": "T09",
"description": "Convert BlockNote bulletListItem blocks to ProseMirror bullet_list > list_item",
"featureIds": ["F06"],
"implemented": true
},
{
"id": "T10",
"description": "Convert BlockNote numberedListItem blocks to ProseMirror ordered_list > list_item",
"featureIds": ["F06"],
"implemented": true
},
{
"id": "T11",
"description": "Convert BlockNote link inline content to ProseMirror link mark",
"featureIds": ["F07"],
"implemented": true
},
{
"id": "T12",
"description": "Convert BlockNote mention inline content to ProseMirror (preserve or drop gracefully)",
"featureIds": ["F07"],
"implemented": true
},
{
"id": "T13",
"description": "Convert BlockNote codeBlock to ProseMirror code_block node",
"featureIds": ["F08"],
"implemented": true
},
{
"id": "T14",
"description": "Convert BlockNote blockquote (quote) to ProseMirror blockquote node",
"featureIds": ["F08"],
"implemented": true
},
{
"id": "T15",
"description": "Conversion handles empty blocks (no content) without crashing",
"featureIds": ["F04"],
"implemented": true
},
{
"id": "T16",
"description": "Conversion handles nested children blocks",
"featureIds": ["F06", "F08"],
"implemented": true
},
{
"id": "T17",
"description": "Existing ProseMirror JSON document loads without conversion in CollaborativeEditor",
"featureIds": ["F09"],
"implemented": true
},
{
"id": "T18",
"description": "Existing BlockNote JSON document loads correctly after conversion in CollaborativeEditor",
"featureIds": ["F09"],
"implemented": true
},
{
"id": "T19",
"description": "Save button triggers syncCollabSnapshot and persists content to document_block_content",
"featureIds": ["F10"],
"implemented": true
},
{
"id": "T20",
"description": "Closing drawer triggers snapshot (best-effort, doesn't block close)",
"featureIds": ["F11"],
"implemented": true
},
{
"id": "T21",
"description": "When Hocuspocus is unreachable, editor falls back to single-user mode within 3 seconds",
"featureIds": ["F12"],
"implemented": true
},
{
"id": "T22",
"description": "Fallback mode allows editing and saving via manual Save button",
"featureIds": ["F13"],
"implemented": true
},
{
"id": "T23",
"description": "Fallback mode shows 'Offline — manual save mode' status indicator",
"featureIds": ["F14"],
"implemented": true
},
{
"id": "T24",
"description": "Two users opening same document in drawers see each other's cursors",
"featureIds": ["F15"],
"implemented": true
},
{
"id": "T25",
"description": "Presence bar in drawer shows names/avatars of connected users",
"featureIds": ["F15"],
"implemented": true
},
{
"id": "T26",
"description": "Changes from user A appear in user B's drawer in real-time",
"featureIds": ["F15"],
"implemented": true
},
{
"id": "T27",
"description": "New document creation: drawer opens with empty CollaborativeEditor, document record created in DB",
"featureIds": ["F16"],
"implemented": true
},
{
"id": "T28",
"description": "Read-only view mode renders document content without editing",
"featureIds": ["F17"],
"implemented": true
},
{
"id": "T29",
"description": "Document name can be edited in the drawer header",
"featureIds": ["F18"],
"implemented": true
},
{
"id": "T30",
"description": "Unsaved changes warning appears when closing drawer in fallback mode with pending changes",
"featureIds": ["F19"],
"implemented": true
},
{
"id": "T31",
"description": "After BlockNote-to-ProseMirror conversion, converted format is persisted back to DB",
"featureIds": ["F20"],
"implemented": true
},
{
"id": "T32",
"description": "Round-trip: content saved by CollaborativeEditor can be reopened in CollaborativeEditor",
"featureIds": ["F09", "F10"],
"implemented": true
},
{
"id": "T33",
"description": "Formatting toolbar (BubbleMenu) works inside the drawer CollaborativeEditor",
"featureIds": ["F01"],
"implemented": true
},
{
"id": "T34",
"description": "Emoticon extension works in drawer CollaborativeEditor (:) converts to emoji)",
"featureIds": ["F01"],
"implemented": true
},
{
"id": "T35",
"description": "Link auto-detection works in drawer CollaborativeEditor",
"featureIds": ["F01"],
"implemented": true
}
]