Feature Owner: Joshua Uriel Tribiana
Module: Design ( Dual Editor )
Priority: P1
Week 7 Sprint: Fully Implemented
Date: 06-30-2026
EXECUTIVE SUMMARY
What is this feature?
Archive Node lets creators hide nodes from the visual canvas without permanently deleting them. It is a lightweight content-management feature for the quest editor that keeps archived nodes preserved in state, removes them from the visible canvas, and allows them to be restored later.
Why does it matter?
Creators often need to remove content from view temporarily while preserving the underlying structure for later reuse. This reduces clutter, helps with iterative editing, and prevents accidental deletion during content refinement.
What’s the MVP scope?
Archive and restore actions from node-level controls
A dedicated archived-nodes modal for managing hidden content
Hidden-node behavior in both linear and exploration canvas modes
Preservation of node data so it can be restored later
Permanent delete support from the archived-node management UI
1. USER PAIN POINT & SOLUTION
Current State (Without Feature)
Creators often have to leave unused or outdated nodes visible on the canvas, which makes the editing experience cluttered and harder to navigate. Deleting a node is risky because it removes the content permanently.
Pain Point
Emotional: Frustration and fear of losing content while reorganizing a quest
Functional: Visual clutter and limited control over which nodes are visible during editing
Business Impact: Slower iteration, accidental content loss, and reduced confidence while authoring complex quests
Future State (With Feature)
Creators can archive nodes they no longer want visible, keep them safely stored, and restore them later when needed. The canvas becomes cleaner while preserving editing flexibility.
Marketing Hook
“Declutter your quest editor without losing your work — archive nodes and bring them back whenever you need them.”
2. CODEBASE ASSESSMENT
Current Implementation Status
The archive-node experience is already implemented in the quest editor’s visual-canvas layer. The feature is wired into the node action menu, the canvas state management hooks, and the archived-node modal.
Primary Files
components/quest-editor/visual-canvas/ArchivedNodesModal.tsx
UI for managing archived nodes
Supports restore and permanent delete actions
components/quest-editor/visual-canvas/ArchivedNodeHider.tsx
Prevents archived nodes from rendering while preserving them in state
components/quest-editor/visual-canvas/nodes/NodeActionButtons.tsx
Exposes archive/restore actions from the node menu
hooks/visual-canvas/useCanvasFunctions.ts
Implements the core archive and unarchive state transitions
Handles both top-level nodes and child nodes inside scenario nodes
hooks/visual-canvas/useArchiveModal.ts
Connects canvas state to the archived-nodes modal
app/quest-editor/[questID]/(sections)/content/visual-canvas/linear/page.tsx
app/quest-editor/[questID]/(sections)/content/visual-canvas/exploration/page.tsx
Surface the archived-node count and modal entry point in both canvas modes
Current Behavior Summary
Archive action is available through the node action menu
Archived nodes are removed from the visible canvas and hidden from the creator view
Archived nodes remain in the backing React Flow state and can be restored
Archived nodes can be permanently deleted from the archived-node modal
Archived nodes are visually marked as archived in the UI and are non-editable
Strengths Already Present
Clear creator-facing archive/restore flow
Data preservation before permanent deletion
Works across both linear and exploration canvas modes
Supports both regular nodes and child nodes inside scenario structures
Gaps / Hardening Opportunities
No dedicated analytics or audit trail for archives yet
No bulk archive/restore experience beyond the current per-node workflow
No explicit “show archived nodes” toggle outside the modal entry point
3. 4D FRAMEWORK MAPPING
Diagnose
The feature helps creators evaluate and reorganize their content by removing clutter from the active editing view without losing the underlying content structure.
Design
It supports a cleaner content-authoring experience by allowing creators to temporarily hide nodes they are not actively editing or that are no longer relevant.
Develop
Creators can continue iterating faster because they can de-emphasize older or draft content without permanently deleting it.
Deliver
Archived nodes remain safe in the quest payload and can be restored at any time, making authoring more resilient and less destructive.
4. USER FLOWS
Entry Point
A creator is editing a quest in the visual canvas and opens the node actions menu.
Success Criteria
The selected node is hidden from the visible canvas
The node is preserved and can be restored later
The creator can review and manage archived nodes from the archived-node modal
Main Flow (Happy Path)
Creator clicks the node actions menu on a node
Creator chooses “Archive”
The node is removed from the visible canvas and stored as archived
The archived-node count appears in the canvas toolbar
Creator opens the archived-node modal and restores or permanently deletes the node
Edge Cases
Child node inside a scenario: The archive action removes the child from the visible scenario structure and preserves it in archive state
Archived node already hidden: The UI should avoid duplicate archive actions or stale state
Permanent delete: The node is removed from archive state and cannot be restored afterward
Decision Points
IF the creator restores the node → it reappears on the canvas
IF the creator deletes it permanently → it is removed from the archive list and the canvas
ELSE → the node remains archived and hidden
5. INFORMATION ARCHITECTURE
Primary Information (Always visible)
Node label or node type
Archived-node count in the canvas UI
Restore and Delete actions in the archived-node modal
Secondary Information
Node status badge such as “Archived”
Whether the node is a start/end node or AI-generated scenario node
Full archived-node list
Child-node archival state inside scenario structures
Internal node metadata preserved in canvas state
Actions
Primary CTA:
Restore archived node
Secondary Actions:
Delete permanently
Close modal
6. WIREFRAMES
No standalone new screen is required for this feature.
Key Screens:
Node action menu on a canvas node
Archived-nodes modal listing hidden nodes
Empty state when no nodes are archived
Confirmation dialog for permanent delete
Annotations:
Archive is a non-destructive action
Restore returns the node to the canvas
Permanent delete is explicit and destructive
7. WIREFLOWS
+--------------------+| Canvas Node |+--------------------+ | v+--------------------+| Context Menu || Archive |+--------------------+ | v+--------------------+| Status Updated || (ARCHIVED) |+--------------------+ | +----+----+ | | v v+-----------+ +----------------+| Hidden | | Archived Nodes || on Canvas | | Modal |+-----------+ +----------------+ | v +----------------+ | Restore Node | +----------------+ | v +----------------+ | Visible Again | +----------------+
8. PROTOTYPE
Excluded — feature is fully implemented.
How to test:
Open a quest in the visual canvas
Archive a node from the node action menu
Confirm it disappears from the canvas and shows up in the archived list
Restore it and confirm it reappears
Delete it permanently and confirm it is removed from the archive list
9. BACKEND SCHEMA
Data Model
No dedicated archive table is required for this feature. The archive state is stored as node-level metadata on the canvas payload and persisted with the quest’s saved canvas data.
Relevant Runtime Shape
The archive state is represented through node data such as:
interface NodeData { isArchived?: boolean; label?: string; type?: string; [key: string]: unknown;}
Constraints
Archived nodes must remain part of the saved canvas structure until explicitly removed
Archived nodes should not be visible to creators or learners while archived
Restoring a node should restore its prior node data and position context
10. API ENDPOINTS
Current Pattern
This feature does not use a separate archive API endpoint. It operates through the existing canvas save and load flow.
Relevant Behavior
Nodes are archived and unarchived in the client-side React Flow state
Those changes are saved as part of the overall canvas state when the quest is saved
Expected Payload Behavior
The persisted canvas data carries node metadata including isArchived, letting the app rehydrate the correct visible state on reload.
11. DATA REQUIREMENTS
Frontend Needs
The UI needs to:
Show archive/restore actions on each node
Display a count of archived nodes in the canvas toolbar
Open a modal listing archived nodes
Support restore and permanent delete actions
Client State Requirements
Current canvas nodes
Archived-node list
Node metadata including archived status
Save and reload behavior for canvas state
Caching Strategy
No special caching is required. The archive state is part of the saved canvas model and should be reloaded with the rest of the quest content.
12. PERFORMANCE CONSIDERATIONS
UI Performance
The feature is lightweight and runs entirely in the canvas state layer. Since archived nodes are simply filtered from the visible render path, it avoids unnecessary rendering overhead.
Save Behavior
The archive state is part of the normal canvas save process, so it should not introduce a separate persistence burden.
Reliability
The archive state should remain stable across refreshes and canvas reloads, even when a node is hidden from the visible canvas.
Who can access this feature?
Creator: ✓
Reviewer: ✗
Learner: ✗
This interaction is part of the creator editing experience and is controlled by the existing quest editor permissions and published-edit confirmation flow.
Data Validation
Archive and restore actions should only occur in creator-editable contexts
Permanent delete should require explicit confirmation
Archived content should remain protected from normal learner navigation and editing flows
14. ERROR HANDLING
Common Errors
Node not found: The selected node may already have been removed or reloaded
Save failure: The archive change may not persist if the canvas save fails
Published content restriction: Some edits may be blocked when the quest is published or in a protected state
Handling Guidance
Show a graceful fallback if the node is no longer present
Preserve the last known archived state if the save action fails
Use the existing published-edit confirmation mechanism before destructive actions
15. TESTING CHECKLIST
Happy Path
A node can be archived from the node action menu
The node disappears from the visible canvas
The archived-node count updates correctly
The node can be restored from the archived-node modal
The node can be permanently deleted from the archived-node modal
Edge Cases
Child nodes inside a scenario can be archived and restored
The canvas remains stable after archiving multiple nodes
Archived nodes are excluded from normal learner and editor flows
The UI handles empty archived-node state correctly
16. OPEN QUESTIONS
For Frontend
Should there be a bulk archive/restore action for multiple selected nodes?
Should archived nodes be visually distinguishable in the canvas when the modal is closed?
For Backend / Persistence
Should archived state be surfaced in any analytics or content-history view?
Should there be a stronger “soft delete” lifecycle for canvas content beyond the current archive flow?
17. OUT OF SCOPE (v1.1+)
Bulk archive/restore across large sets of nodes
A dedicated archive history or audit timeline
Cross-quest node recovery workflow
Advanced filtering of archived content by type or date
Why: The current scope is to ship a dependable per-node archive/restore experience that fits the existing editor workflow.
18. SUCCESS METRICS
How will we know this feature is working well?
Creators successfully archive nodes without losing content
Restores happen reliably and quickly
The canvas feels less cluttered during editing sessions
Permanent delete is used only when the creator intentionally wants to remove content
19. DEPENDENCIES
This feature depends on:
The existing visual-canvas editor infrastructure
React Flow node state and save/load logic
The published-edit confirmation flow for protected content
These features depend on this:
Any future content-cleanup and content-organization flows in the quest editor
Any future soft-delete or recovery system for quest content
20. TIMELINE & OWNERSHIP
Implementation Ownership
Owner: Joshua Uriel Tribiana
QA: JD Billate