Neural Inverse is Open Source →
DocsSession Setup

Session Setup

A modernisation session is the persistent unit of work that ties source and target projects together. It records the migration pattern, project roles, and current stage — and survives IDE restarts.

Topologies

The session topology determines how many source and target projects are connected.

TopologySourceTargetTypical Use Case
1:111COBOL monolith → Java service, bare-metal → FreeRTOS
1:N1ManyMonolith decomposition, microservices extraction
N:1Many1Service consolidation, vendor source merge
N:MManyManyMicroservices re-boundary, multi-vendor migration
FlexibleAnyAnyCustom patterns with open project count

The topology is set by the selected migration pattern preset. Patterns with sourceCount: 'many' or flexible show add/remove buttons for additional project folders in the wizard.

The Wizard

The wizard opens after clicking New Modernisation Project. It has two panes:

Left pane — Project folders

For each role defined by the topology:

  • Source project picker(s)
  • Target project picker(s)
  • Add/remove buttons for multi-project topologies

Right pane — Migration pattern

  • 60+ preset patterns grouped by domain
  • Custom text input for free-form pattern names
  • Pattern description and topology indicator

Click Initialise Session once both panes are filled.

The Modernisation.inverse File

When a session is initialised, the IDE writes a Modernisation.inverse file to the root of every paired project. This file is the session contract.

Format (v2):

{
  "neuralInverseModernisation": true,
  "version": "2",
  "role": "source",
  "projectLabel": "ACME-COBOL-Mainframe",
  "projectId": "proj-src-abc123",
  "pairedProjects": [
    {
      "role": "target",
      "label": "ACME-Modern-PaymentService",
      "uri": "file:///path/to/modern/project",
      "id": "proj-tgt-def456"
    }
  ],
  "migrationPattern": "cobol-to-typescript",
  "sessionId": "sess-b3f8c21a",
  "createdAt": 1742300000000
}
FieldDescription
role"source" or "target" — this project's role
projectLabelHuman-readable label for this project
projectIdStable UUID for this project across sessions
pairedProjectsAll other projects in the session
migrationPatternPattern ID or free-form name
sessionIdShared across all projects in the session
createdAtUnix timestamp in milliseconds

The file is written by the IDE, not generated by AI. Commit it to version control — it is the source of truth for session restoration.

Restoring a Session

Open any project that contains a Modernisation.inverse file. The IDE detects it on startup and restores the session at the stage where it was left. No manual action required.

The v1 format (legacyFolderUri/modernFolderUri) is automatically migrated to v2 on load.

Session State

The session state is stored in workspace storage (a .vscdb file in your IDE data directory). The Modernisation.inverse file provides the project pairing — the session state provides the stage progress, unit statuses, and approval records.

Stage Gates

TransitionGate
Discovery → PlanningDiscovery completes all 11 phases
Planning → MigrationUser clicks Approve Plan →
Migration → ValidationAll units reach a terminal state
Validation → CutoverAll 4 blocking readiness checks pass

Ending a Session

Run Neural Inverse: End Modernisation Session to clear the session state. This does not delete the Modernisation.inverse files from disk — you can restore the session by reopening the project.

To fully remove a session, delete the Modernisation.inverse files from the project roots.


Was this page helpful?

Last edited