wiki-plugin-hitchhiker 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/factory.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "Hitchhiker",
3
+ "title": "Hitchhiker Plugin",
4
+ "pages": [
5
+ "Tools",
6
+ "Changes to this Site",
7
+ "Login Tool"
8
+ ]
9
+ }
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "wiki-plugin-hitchhiker",
3
+ "version": "0.2.0",
4
+ "description": "House UX + default-pages plugin for the hitchhiker farms: ships default pages (Tools, Changes to this Site) and hosts the wiki-ux.js client override (friendlier factory chooser + page-flag tool page), loaded globally by the wiki-security-hitchhiker bootstrap.",
5
+ "type": "module",
6
+ "files": [
7
+ "factory.json",
8
+ "api",
9
+ "client",
10
+ "pages",
11
+ "server"
12
+ ],
13
+ "author": "David Bovill",
14
+ "license": "MIT",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/Hitchhikers-Guide-to-the-Galaxy/wiki-plugin-hitchhiker.git"
18
+ },
19
+ "bugs": {
20
+ "url": "https://github.com/Hitchhikers-Guide-to-the-Galaxy/wiki-plugin-hitchhiker/issues"
21
+ },
22
+ "homepage": "https://github.com/Hitchhikers-Guide-to-the-Galaxy/wiki-plugin-hitchhiker#readme",
23
+ "dependencies": {
24
+ "@extractus/oembed-extractor": "^4.1.0",
25
+ "open-graph-scraper": "^6.12.0"
26
+ },
27
+ "fedwiki": {
28
+ "api": {
29
+ "version": 1,
30
+ "spec": "api/openapi.json"
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,106 @@
1
+ {
2
+ "title": "About Hitchhiker Plugin",
3
+ "story": [
4
+ {
5
+ "type": "markdown",
6
+ "id": "6fde5798da858900",
7
+ "text": "The **Hitchhiker** plugin is the house UX layer for the hitchhiker wiki farms. It ships default pages, hosts the farm-wide `wiki-ux.js` override, and defines one authorable item type: a thumb-sized **FORK** button for page content."
8
+ },
9
+ {
10
+ "type": "markdown",
11
+ "id": "cf00235531b135e0",
12
+ "text": "# The hitchhiker item\n\nA `hitchhiker` item puts a full-width, thumb-sized fork button in the page itself \u2014 the 18px \u2691 flag in the journal strip is unusable on a phone. The button triggers the page's own native fork control, so every local/remote case and all lineup bookkeeping stay the wiki client's business. Forking needs login on the site you are reading from; the button says so plainly instead of dying silently."
13
+ },
14
+ {
15
+ "type": "markdown",
16
+ "id": "b4e8592fe2e62062",
17
+ "text": "Item text is the house DSL \u2014 UPPERCASE first word is a command:\n\n FORK\n LABEL Fork this seal to my wiki\n\n`FORK` renders the button; `LABEL` (optional) overrides its text."
18
+ },
19
+ {
20
+ "type": "hitchhiker",
21
+ "id": "80bb227c2fcafe96",
22
+ "text": "FORK\nLABEL Fork this page to my wiki"
23
+ },
24
+ {
25
+ "type": "markdown",
26
+ "id": "13058808614bd6c0",
27
+ "text": "## Repositories\n\n- github: [https://github.com/Hitchhikers-Guide-to-the-Galaxy/wiki-plugin-hitchhiker wiki-plugin-hitchhiker]\n- npm: [https://www.npmjs.com/package/wiki-plugin-hitchhiker wiki-plugin-hitchhiker]"
28
+ },
29
+ {
30
+ "type": "markdown",
31
+ "id": "9c4d1fc4b83f33bb",
32
+ "text": "# Default pages\n\nIt ships pages that appear on every site of the farm without being written into each site's data \u2014 currently [[Tools]] and [[Changes to this Site]]. Any site can override one by authoring its own page of the same slug."
33
+ },
34
+ {
35
+ "type": "markdown",
36
+ "id": "9114cc57c08d5aba",
37
+ "text": "# Client UX override\n\nIt hosts `wiki-ux.js` (served at `/plugins/hitchhiker/wiki-ux.js`). Loaded globally by the [[Wiki Security Hitchhiker]] bootstrap, it replaces the built-in Factory chooser with a friendlier, curated picker and richer drag-and-drop, and turns the page-flag click into an in-lineup [[Tools]] page. See [[Rewilding the Fedwiki Client]]."
38
+ }
39
+ ],
40
+ "journal": [
41
+ {
42
+ "type": "create",
43
+ "item": {
44
+ "title": "About Hitchhiker Plugin",
45
+ "story": [
46
+ {
47
+ "type": "markdown",
48
+ "id": "6fde5798da858900",
49
+ "text": "The **Hitchhiker** plugin is the house UX layer for the hitchhiker wiki farms. It does two things, and defines no authorable item type of its own."
50
+ }
51
+ ]
52
+ },
53
+ "date": 1783521743235,
54
+ "certificate": "from marvin"
55
+ },
56
+ {
57
+ "type": "add",
58
+ "id": "cf00235531b135e0",
59
+ "item": {
60
+ "type": "markdown",
61
+ "id": "cf00235531b135e0",
62
+ "text": "# The hitchhiker item\n\nA `hitchhiker` item puts a full-width, thumb-sized fork button in the page itself \u2014 the 18px \u2691 flag in the journal strip is unusable on a phone. The button triggers the page's own native fork control, so every local/remote case and all lineup bookkeeping stay the wiki client's business. Forking needs login on the site you are reading from; the button says so plainly instead of dying silently."
63
+ },
64
+ "after": null,
65
+ "date": 1785701206598,
66
+ "provenance": "FORK item release \u2014 fork-only seal work, 2026-08-02."
67
+ },
68
+ {
69
+ "type": "add",
70
+ "id": "b4e8592fe2e62062",
71
+ "item": {
72
+ "type": "markdown",
73
+ "id": "b4e8592fe2e62062",
74
+ "text": "Item text is the house DSL \u2014 UPPERCASE first word is a command:\n\n FORK\n LABEL Fork this seal to my wiki\n\n`FORK` renders the button; `LABEL` (optional) overrides its text."
75
+ },
76
+ "after": null,
77
+ "date": 1785701206598,
78
+ "provenance": "FORK item release \u2014 fork-only seal work, 2026-08-02."
79
+ },
80
+ {
81
+ "type": "add",
82
+ "id": "80bb227c2fcafe96",
83
+ "item": {
84
+ "type": "hitchhiker",
85
+ "id": "80bb227c2fcafe96",
86
+ "text": "FORK\nLABEL Fork this page to my wiki"
87
+ },
88
+ "after": null,
89
+ "date": 1785701206598,
90
+ "provenance": "FORK item release \u2014 fork-only seal work, 2026-08-02."
91
+ },
92
+ {
93
+ "type": "add",
94
+ "id": "13058808614bd6c0",
95
+ "item": {
96
+ "type": "markdown",
97
+ "id": "13058808614bd6c0",
98
+ "text": "## Repositories\n\n- github: [https://github.com/Hitchhikers-Guide-to-the-Galaxy/wiki-plugin-hitchhiker wiki-plugin-hitchhiker]\n- npm: [https://www.npmjs.com/package/wiki-plugin-hitchhiker wiki-plugin-hitchhiker]"
99
+ },
100
+ "after": null,
101
+ "date": 1785701206598,
102
+ "provenance": "FORK item release \u2014 fork-only seal work, 2026-08-02."
103
+ }
104
+ ],
105
+ "plugin": "hitchhiker"
106
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "title": "Changes to this Site",
3
+ "story": [
4
+ {
5
+ "type": "paragraph",
6
+ "id": "d683fbe54808323f",
7
+ "text": "Below we list recent changes to pages on [[this site]]. View [[Changes to Thought Garden]] if that is different."
8
+ },
9
+ {
10
+ "type": "activity",
11
+ "id": "e9e9f102158e1382",
12
+ "text": "NEIGHBORHOOD no\nNARRATIVE "
13
+ }
14
+ ],
15
+ "journal": [
16
+ {
17
+ "type": "create",
18
+ "item": {
19
+ "title": "Changes to this Site",
20
+ "story": [
21
+ {
22
+ "type": "paragraph",
23
+ "id": "d683fbe54808323f",
24
+ "text": "Below we list recent changes to pages on [[this site]]. View [[Changes to Thought Garden]] if that is different."
25
+ },
26
+ {
27
+ "type": "activity",
28
+ "id": "e9e9f102158e1382",
29
+ "text": "NEIGHBORHOOD no\nNARRATIVE "
30
+ }
31
+ ]
32
+ },
33
+ "date": 1783521732000,
34
+ "certificate": "from marvin"
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,188 @@
1
+ {
2
+ "title": "Login Tool",
3
+ "story": [
4
+ {
5
+ "type": "markdown",
6
+ "id": "d2022b84c955655a",
7
+ "text": "The **Login Tool** repairs the commonest login failure on this federation: you own a site, the padlock stays locked, and no amount of logging out, force-reloading or clearing site cookies wins back your edit rights.\n\n> You are not who your browser thinks you are."
8
+ },
9
+ {
10
+ "type": "markdown",
11
+ "id": "0fd99652bae5f41f",
12
+ "text": "## The Trap"
13
+ },
14
+ {
15
+ "type": "markdown",
16
+ "id": "71e8433dabd86ba4",
17
+ "text": "Every public site in this farm signs you in through one shared identity server — Keycloak at `auth.hitchhikers.earth`. The site's login button silently reuses whatever identity Keycloak already holds. There is no account picker.\n\nIf that identity is not the site owner's, the login succeeds and the edit rights never come. The wiki says nothing. The stale identity lives on the auth domain, so nothing you do on the wiki site itself can touch it. A fresh browser works only because it carries no Keycloak cookie."
18
+ },
19
+ {
20
+ "type": "markdown",
21
+ "id": "378ca5ceb7e11140",
22
+ "text": "## Check Who You Are"
23
+ },
24
+ {
25
+ "type": "markdown",
26
+ "id": "f6dfd7d18d6e2275",
27
+ "text": "Open the [https://auth.hitchhikers.earth/realms/wiki/account Keycloak account console]. It shows the username your browser is signed in as. If that name is not the account that owns the site, you have found the trap."
28
+ },
29
+ {
30
+ "type": "markdown",
31
+ "id": "e8803842fc29708d",
32
+ "text": "## The Fix"
33
+ },
34
+ {
35
+ "type": "markdown",
36
+ "id": "911dbd60578dfa82",
37
+ "text": "Press the red button and confirm the logout — this signs you out of Keycloak itself, not just one wiki. Then press the green button: Keycloak now shows a login form instead of silently reusing the stale identity. Sign in as the account that owns the site, and the padlock opens."
38
+ },
39
+ {
40
+ "type": "html",
41
+ "id": "d08664cbb9242d4a",
42
+ "text": "<p><a href=\"https://auth.hitchhikers.earth/realms/wiki/protocol/openid-connect/logout\" style=\"display:inline-block;padding:10px 18px;background:#8d3b3b;color:#fff;border-radius:6px;text-decoration:none;font-weight:bold;\">1. Sign out of Keycloak</a> <a href=\"/auth/oauth2\" style=\"display:inline-block;padding:10px 18px;background:#2c6e49;color:#fff;border-radius:6px;text-decoration:none;font-weight:bold;margin-left:8px;\">2. Log in to this site</a></p>"
43
+ },
44
+ {
45
+ "type": "markdown",
46
+ "id": "1421ed7cbd638adc",
47
+ "text": "The green button starts the login on whichever site this page is viewed on, so a fork of this page works as a login tool on any site in the farm."
48
+ },
49
+ {
50
+ "type": "markdown",
51
+ "id": "175a333b9f319e30",
52
+ "text": "## Behind the Curtain"
53
+ },
54
+ {
55
+ "type": "markdown",
56
+ "id": "2deea2e243a6026a",
57
+ "text": "The server logs the identity each login hands back. From the farm's agent seat the trap is confirmed in two commands:"
58
+ },
59
+ {
60
+ "type": "code",
61
+ "id": "5cc99a89126b62d5",
62
+ "text": "ssh david@pi5.local 'journalctl --user -u federated-wiki-public.service --since \"-5min\" | grep -a SOCIAL'\n~/bin/keycloak sessions wiki"
63
+ },
64
+ {
65
+ "type": "markdown",
66
+ "id": "a3e083dafaf1a1e8",
67
+ "text": "The first prints the identity the wiki session holds — visit `/auth/diag` on the site first to force a fresh log line. The second lists live single sign-on sessions by username. `keycloak logout-user <name> --yes` ends a session from the command line, once the agent service account gains the `manage-users` role."
68
+ },
69
+ {
70
+ "type": "markdown",
71
+ "id": "e22faeb6b6dc965d",
72
+ "text": "# See\n\n- [[Wiki Farm Security]]\n- [[Configuring Wiki-Security-Passportjs]]\n- [[Anatomy of a Server]]"
73
+ }
74
+ ],
75
+ "journal": [
76
+ {
77
+ "type": "create",
78
+ "item": {
79
+ "title": "Login Tool",
80
+ "story": [
81
+ {
82
+ "type": "markdown",
83
+ "id": "d2022b84c955655a",
84
+ "text": "This page was generated through a dialogue between [[David Bovill]] and [[Claude Code]]. The **Login Tool** repairs the commonest login failure on this federation: you own a site, the padlock stays locked, and no amount of logging out, force-reloading or clearing site cookies wins back your edit rights.\n\n> You are not who your browser thinks you are."
85
+ },
86
+ {
87
+ "type": "markdown",
88
+ "id": "0fd99652bae5f41f",
89
+ "text": "## The Trap"
90
+ },
91
+ {
92
+ "type": "markdown",
93
+ "id": "71e8433dabd86ba4",
94
+ "text": "Every public site in this farm signs you in through one shared identity server — Keycloak at `auth.hitchhikers.earth`. The site's login button silently reuses whatever identity Keycloak already holds. There is no account picker.\n\nIf that identity is not the site owner's, the login succeeds and the edit rights never come. The wiki says nothing. The stale identity lives on the auth domain, so nothing you do on the wiki site itself can touch it. A fresh browser works only because it carries no Keycloak cookie."
95
+ },
96
+ {
97
+ "type": "markdown",
98
+ "id": "378ca5ceb7e11140",
99
+ "text": "## Check Who You Are"
100
+ },
101
+ {
102
+ "type": "markdown",
103
+ "id": "f6dfd7d18d6e2275",
104
+ "text": "Open the [https://auth.hitchhikers.earth/realms/wiki/account Keycloak account console]. It shows the username your browser is signed in as. If that name is not the account that owns the site, you have found the trap."
105
+ },
106
+ {
107
+ "type": "markdown",
108
+ "id": "e8803842fc29708d",
109
+ "text": "## The Fix"
110
+ },
111
+ {
112
+ "type": "markdown",
113
+ "id": "911dbd60578dfa82",
114
+ "text": "Press the red button and confirm the logout — this signs you out of Keycloak itself, not just one wiki. Then press the green button: Keycloak now shows a login form instead of silently reusing the stale identity. Sign in as the account that owns the site, and the padlock opens."
115
+ },
116
+ {
117
+ "type": "html",
118
+ "id": "d08664cbb9242d4a",
119
+ "text": "<p><a href=\"https://auth.hitchhikers.earth/realms/wiki/protocol/openid-connect/logout\" style=\"display:inline-block;padding:10px 18px;background:#8d3b3b;color:#fff;border-radius:6px;text-decoration:none;font-weight:bold;\">1. Sign out of Keycloak</a> <a href=\"/auth/oauth2\" style=\"display:inline-block;padding:10px 18px;background:#2c6e49;color:#fff;border-radius:6px;text-decoration:none;font-weight:bold;margin-left:8px;\">2. Log in to this site</a></p>"
120
+ },
121
+ {
122
+ "type": "markdown",
123
+ "id": "1421ed7cbd638adc",
124
+ "text": "The green button starts the login on whichever site this page is viewed on, so a fork of this page works as a login tool on any site in the farm."
125
+ },
126
+ {
127
+ "type": "markdown",
128
+ "id": "175a333b9f319e30",
129
+ "text": "## Behind the Curtain"
130
+ },
131
+ {
132
+ "type": "markdown",
133
+ "id": "2deea2e243a6026a",
134
+ "text": "The server logs the identity each login hands back. From the farm's agent seat the trap is confirmed in two commands:"
135
+ },
136
+ {
137
+ "type": "code",
138
+ "id": "5cc99a89126b62d5",
139
+ "text": "ssh david@pi5.local 'journalctl --user -u federated-wiki-public.service --since \"-5min\" | grep -a SOCIAL'\n~/bin/keycloak sessions wiki"
140
+ },
141
+ {
142
+ "type": "markdown",
143
+ "id": "a3e083dafaf1a1e8",
144
+ "text": "The first prints the identity the wiki session holds — visit `/auth/diag` on the site first to force a fresh log line. The second lists live single sign-on sessions by username. `keycloak logout-user <name> --yes` ends a session from the command line, once the agent service account gains the `manage-users` role."
145
+ },
146
+ {
147
+ "type": "markdown",
148
+ "id": "e22faeb6b6dc965d",
149
+ "text": "# See\n\n- [[[[Wiki Farm Security]]]]\n- [[[[Configuring Wiki-Security-Passportjs]]]]\n- [[[[Anatomy of a Server]]]]"
150
+ }
151
+ ]
152
+ },
153
+ "date": 1785744691406,
154
+ "provenance": "Generated through a dialogue between David Bovill and Claude Code (claude-fable-5), session 2026-08-03 — born from fixing this exact trap on vision.fish."
155
+ },
156
+ {
157
+ "type": "add",
158
+ "id": "e22faeb6b6dc965d",
159
+ "item": {
160
+ "type": "markdown",
161
+ "id": "e22faeb6b6dc965d",
162
+ "text": "# See\n\n- [[[[Wiki Farm Security]]]]\n- [[[[Configuring Wiki-Security-Passportjs]]]]\n- [[[[Anatomy of a Server]]]]"
163
+ },
164
+ "after": "a3e083dafaf1a1e8",
165
+ "date": 1785744691406
166
+ },
167
+ {
168
+ "type": "edit",
169
+ "id": "e22faeb6b6dc965d",
170
+ "item": {
171
+ "type": "markdown",
172
+ "id": "e22faeb6b6dc965d",
173
+ "text": "# See\n\n- [[Wiki Farm Security]]\n- [[Configuring Wiki-Security-Passportjs]]\n- [[Anatomy of a Server]]"
174
+ },
175
+ "date": 1785745177407
176
+ },
177
+ {
178
+ "type": "edit",
179
+ "id": "d2022b84c955655a",
180
+ "item": {
181
+ "type": "markdown",
182
+ "id": "d2022b84c955655a",
183
+ "text": "The **Login Tool** repairs the commonest login failure on this federation: you own a site, the padlock stays locked, and no amount of logging out, force-reloading or clearing site cookies wins back your edit rights.\n\n> You are not who your browser thinks you are."
184
+ },
185
+ "date": 1785745191240
186
+ }
187
+ ]
188
+ }
package/pages/tools ADDED
@@ -0,0 +1,159 @@
1
+ {
2
+ "title": "Tools",
3
+ "story": [
4
+ {
5
+ "type": "markdown",
6
+ "id": "7aca67b475ad2bd1",
7
+ "text": "Tools for working with this site: sign in, change the site flag, browse assets, and follow recent changes across [[the federation]]."
8
+ },
9
+ {
10
+ "type": "markdown",
11
+ "id": "a4506db11634b389",
12
+ "text": "## Sign in"
13
+ },
14
+ {
15
+ "type": "markdown",
16
+ "id": "345c423860538ec1",
17
+ "text": "If the padlock will not open for you even though you own the site, the [[Login Tool]] explains and repairs the usual cause."
18
+ },
19
+ {
20
+ "type": "reference",
21
+ "id": "19d6bfcf42113b74",
22
+ "text": "Fixes the commonest login failure on this federation \u2014 the stale identity trap.",
23
+ "site": "fedwiki.club",
24
+ "slug": "login-tool",
25
+ "title": "Login Tool"
26
+ },
27
+ {
28
+ "type": "markdown",
29
+ "id": "1654f026bb76281f",
30
+ "text": "## Activity"
31
+ },
32
+ {
33
+ "type": "markdown",
34
+ "id": "5387aa780b053bde",
35
+ "text": "- [[Changes to this Site]]\n- [[Recent Changes]]"
36
+ },
37
+ {
38
+ "type": "markdown",
39
+ "id": "e0c1cc6333db6f43",
40
+ "text": "## Change your sites flag"
41
+ },
42
+ {
43
+ "type": "flagmatic",
44
+ "id": "4a47be33a33d91a7",
45
+ "choices": 40
46
+ },
47
+ {
48
+ "type": "markdown",
49
+ "id": "46e178da92950553",
50
+ "text": "## Assets"
51
+ },
52
+ {
53
+ "type": "assets",
54
+ "id": "94154de88b8ece00",
55
+ "text": " *"
56
+ },
57
+ {
58
+ "type": "markdown",
59
+ "id": "9bfeaa4b7328771c",
60
+ "text": "## Tool pages"
61
+ },
62
+ {
63
+ "type": "markdown",
64
+ "id": "3a01f0c384fd7ebc",
65
+ "text": "Click any page flag to open its tools panel \u2014 fork, trash, clean journal, simplify, similarity. Drop a page flag on another to see what it carries."
66
+ },
67
+ {
68
+ "type": "reference",
69
+ "id": "9d64b3371d0caab7",
70
+ "text": "How tool pages act on the page to their left.",
71
+ "site": "plugin.fedwiki.club",
72
+ "slug": "tool-page",
73
+ "title": "Tool Page"
74
+ }
75
+ ],
76
+ "journal": [
77
+ {
78
+ "type": "create",
79
+ "item": {
80
+ "title": "Tools",
81
+ "story": [
82
+ {
83
+ "type": "markdown",
84
+ "id": "7aca67b475ad2bd1",
85
+ "text": "Tools for working with this site: sign in, change the site flag, browse assets, and follow recent changes across [[the federation]]."
86
+ },
87
+ {
88
+ "type": "markdown",
89
+ "id": "a4506db11634b389",
90
+ "text": "## Sign in"
91
+ },
92
+ {
93
+ "type": "markdown",
94
+ "id": "345c423860538ec1",
95
+ "text": "If the padlock will not open for you even though you own the site, the [[Login Tool]] explains and repairs the usual cause."
96
+ },
97
+ {
98
+ "type": "reference",
99
+ "id": "19d6bfcf42113b74",
100
+ "text": "Fixes the commonest login failure on this federation \u2014 the stale identity trap.",
101
+ "site": "fedwiki.club",
102
+ "slug": "login-tool",
103
+ "title": "Login Tool"
104
+ },
105
+ {
106
+ "type": "markdown",
107
+ "id": "1654f026bb76281f",
108
+ "text": "## Activity"
109
+ },
110
+ {
111
+ "type": "markdown",
112
+ "id": "5387aa780b053bde",
113
+ "text": "- [[Changes to this Site]]\n- [[Recent Changes]]"
114
+ },
115
+ {
116
+ "type": "markdown",
117
+ "id": "e0c1cc6333db6f43",
118
+ "text": "## Change your sites flag"
119
+ },
120
+ {
121
+ "type": "flagmatic",
122
+ "id": "4a47be33a33d91a7",
123
+ "choices": 40
124
+ },
125
+ {
126
+ "type": "markdown",
127
+ "id": "46e178da92950553",
128
+ "text": "## Assets"
129
+ },
130
+ {
131
+ "type": "assets",
132
+ "id": "94154de88b8ece00",
133
+ "text": " *"
134
+ },
135
+ {
136
+ "type": "markdown",
137
+ "id": "9bfeaa4b7328771c",
138
+ "text": "## Tool pages"
139
+ },
140
+ {
141
+ "type": "markdown",
142
+ "id": "3a01f0c384fd7ebc",
143
+ "text": "Click any page flag to open its tools panel \u2014 fork, trash, clean journal, simplify, similarity. Drop a page flag on another to see what it carries."
144
+ },
145
+ {
146
+ "type": "reference",
147
+ "id": "9d64b3371d0caab7",
148
+ "text": "How tool pages act on the page to their left.",
149
+ "site": "plugin.fedwiki.club",
150
+ "slug": "tool-page",
151
+ "title": "Tool Page"
152
+ }
153
+ ]
154
+ },
155
+ "date": 1785747343194,
156
+ "provenance": "Bundled default page of the hitchhiker plugin. Redesigned through a dialogue between David Bovill and Claude Code (claude-fable-5), session 2026-08-03."
157
+ }
158
+ ]
159
+ }