feat(fls): export the editor model's programs

exportProject.ts, step X4a: each installed program of a PC or notebook as
the FILIUS application of its class, keyed by that class name as Java keys
them, with its settings: servers switched on as the model has them, a web
server's port and virtual hosts, the DNS server's recursion on port 53, the
echo server's port, the generic client's target (none as null, as its
constructor leaves it), the peer count, the personal firewall. E-mail
contents are the next step.

The model lost a web server's virtual hosts switch (useVHost, on for 3 web
servers in the corpus); Swift sets it off on import. The core now has
WebServerConfiguration.virtualHosts (Swift's name), the import carries
Java's value, and the Swift comparison names Swift's error.

Checked by Java: every corpus file, imported, exported and written, loads
with the programs of the original, with no new departure. In the synthetic
model the PC has every program with settings away from the defaults, the
notebook programs without settings (Java's defaults, 3 peers), where Java
makes /peer2peer itself. 12 mutation probes, each loaded by Java, were all
caught.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-30 09:17:30 +00:00
co-authored by Claude Opus 5.5
parent 698a775c37
commit 95daa64276
7 changed files with 1927 additions and 131 deletions
+3 -1
View File
@@ -34,7 +34,8 @@
// prompt, text editor, file explorer, image viewer, echo server and
// generic client, and their settings (port, target) have a place here;
// - a web server's files stay in /webserver (its document root), where Swift
// moves them to /www; and no program state is written into a host's files
// moves them to /www, and it keeps Java's virtual hosts switch (Swift sets
// it off); and no program state is written into a host's files
// (Swift keeps Gnutella and e-mail state there as hidden JSON files).
// - e-mail: see importEmail.ts;
// - a DNS server's records are what Java's server answers from /dns/hosts
@@ -422,6 +423,7 @@ function registerPrograms(source: FlsNode, node: TopologyNode, system: SystemCon
system.webServerConfigurations.set(node.id, {
port: application.port ?? DEFAULT_WEB_SERVER_PORT,
documentRoot: JAVA_WEB_ROOT,
virtualHosts: application.useVirtualHosts === true,
});
break;
case 'gnutella':