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
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
213 lines
5.9 KiB
JSON
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
|
|
}
|
|
]
|