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
+838
View File
@@ -0,0 +1,838 @@
{
"steps": [
{
"step": "open",
"address": {
"text": "192.168.0.1",
"red": false
},
"peers": [],
"search": "",
"results": [],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [],
"programResults": [],
"programFiles": [],
"dialogs": []
},
{
"step": "type an address that is none",
"address": {
"text": "192.168.0.300",
"red": true
},
"peers": [],
"search": "",
"results": [],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [],
"programResults": [],
"programFiles": [],
"dialogs": []
},
{
"step": "join with an address that is none",
"address": {
"text": "192.168.0.300",
"red": true
},
"peers": [],
"search": "",
"results": [],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [],
"programResults": [],
"programFiles": [],
"dialogs": [
"Dies ist keine gültige IP-Adresse"
]
},
{
"step": "join itself",
"address": {
"text": "192.168.0.20",
"red": false
},
"peers": [],
"search": "",
"results": [],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [],
"programResults": [],
"programFiles": [],
"dialogs": []
},
{
"step": "join 192.168.0.30",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "",
"results": [],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [],
"programFiles": [],
"dialogs": []
},
{
"step": "search woche",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "woche",
"results": [
[
"10.0.0.2",
"Lied der Woche.txt",
" 3 B"
]
],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"10.0.0.2/Lied der Woche.txt: 3 B"
],
"programFiles": [],
"dialogs": []
},
{
"step": "download row 0",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "woche",
"results": [
[
"10.0.0.2",
"Lied der Woche.txt",
" 3 B"
]
],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"10.0.0.2/Lied der Woche.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "download row 0 again",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "woche",
"results": [
[
"10.0.0.2",
"Lied der Woche.txt",
" 3 B"
]
],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"10.0.0.2/Lied der Woche.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "search xyz",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "xyz",
"results": [
[
"10.0.0.2",
"Lied der Woche.txt",
" 3 B"
]
],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "empty the list",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "xyz",
"results": [],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "search notiz and abort at once",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "notiz",
"results": [],
"files": [],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "search notiz again",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "download with no row chosen",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "files tab",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "1",
"red": false
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "type a number of peers that is none",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "abc",
"red": true
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "take a number of peers that is none",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "abc",
"red": true
},
"programMaximum": 1,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": [
"Es sind nur Zahlen erlaubt!"
]
},
{
"step": "take 0 peers",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "0",
"red": false
},
"programMaximum": 0,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "take a number beyond Java's int",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "99999999999",
"red": true
},
"programMaximum": 0,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": [
"Es sind nur Zahlen erlaubt!"
]
},
{
"step": "take 12 peers",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "12",
"red": true
},
"programMaximum": 0,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": [
"Es sind nur Zahlen erlaubt!"
]
},
{
"step": "take 4 peers",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [
[
"1",
"192.168.0.30"
]
],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "4",
"red": false
},
"programMaximum": 4,
"programPeers": [
"192.168.0.30"
],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "leave the network",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "4",
"red": false
},
"programMaximum": 4,
"programPeers": [],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
]
],
"dialogs": []
},
{
"step": "a file added beside the window",
"address": {
"text": "192.168.0.30",
"red": false
},
"peers": [],
"search": "notiz",
"results": [
[
"192.168.0.31",
"notizen.txt",
" 3 B"
]
],
"files": [
[
"Lied der Woche.txt",
"txt"
]
],
"maximum": {
"text": "4",
"red": false
},
"programMaximum": 4,
"programPeers": [],
"programResults": [
"192.168.0.31/notizen.txt: 3 B"
],
"programFiles": [
[
"Lied der Woche.txt",
"txt",
"La la la"
],
[
"neu.txt",
"txt",
"neu"
]
],
"dialogs": []
}
]
}