feat: F4.6g4 the Gnutella window, measured against Java's

GnutellaWindowRun uses Java's Gnutella window on terminal-net beside the
line of GnutellaRun's story "search". The core cancels a search as Java
does (every connection of the program's own requests closed, passed-on
queries kept), lets the number of peers change and lists /peer2peer's
files; the room takes the window's actions and sends its view; the editor
shows Java's four tabs with Java's symbols. Not adopted from Java: a number
of peers of one digit only, a results table that keeps the last search's
rows, a files table that lags behind the folder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 21:39:29 +00:00
co-authored by Claude Opus 5.5
parent 2b85e7432c
commit 5224e1a28b
24 changed files with 2211 additions and 17 deletions
+14
View File
@@ -0,0 +1,14 @@
// What the Gnutella window shows, as the room keeps it and every client shows
// it (plan §7.3), after GUIApplicationPeerToPeerAnwendungWindow (measured
// with tools/java-oracle's GnutellaWindowRun): its known peers, its search
// results, the files of /peer2peer, and how many peers it keeps at most.
export interface GnutellaView {
/** The known peers' addresses, in the order they came. */
readonly peers: readonly string[];
/** Each result as the table shows it: the address, the file's name, its size (" 8 B", with Java's space). */
readonly results: readonly (readonly [string, string, string])[];
/** The files of /peer2peer: name and type. */
readonly files: readonly (readonly [string, string])[];
readonly maximumKnownPeers: number;
}
+1
View File
@@ -5,5 +5,6 @@ export * from './terminal.js';
export * from './dns.js';
export * from './echo.js';
export * from './firewall.js';
export * from './gnutella.js';
export * from './mail.js';
export * from './web.js';