@silicaclaw/cli 1.0.0-beta.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/ARCHITECTURE.md +137 -0
- package/CHANGELOG.md +411 -0
- package/DEMO_GUIDE.md +89 -0
- package/INSTALL.md +156 -0
- package/README.md +244 -0
- package/RELEASE_NOTES_v1.0.md +65 -0
- package/ROADMAP.md +48 -0
- package/SOCIAL_MD_SPEC.md +122 -0
- package/VERSION +1 -0
- package/apps/local-console/package.json +23 -0
- package/apps/local-console/public/assets/README.md +5 -0
- package/apps/local-console/public/assets/silicaclaw-logo.png +0 -0
- package/apps/local-console/public/index.html +1602 -0
- package/apps/local-console/src/server.ts +1656 -0
- package/apps/local-console/src/socialRoutes.ts +90 -0
- package/apps/local-console/tsconfig.json +7 -0
- package/apps/public-explorer/package.json +20 -0
- package/apps/public-explorer/public/assets/README.md +5 -0
- package/apps/public-explorer/public/assets/silicaclaw-logo.png +0 -0
- package/apps/public-explorer/public/index.html +483 -0
- package/apps/public-explorer/src/server.ts +32 -0
- package/apps/public-explorer/tsconfig.json +7 -0
- package/docs/QUICK_START.md +48 -0
- package/docs/assets/README.md +8 -0
- package/docs/assets/banner.svg +25 -0
- package/docs/assets/silicaclaw-logo.png +0 -0
- package/docs/assets/silicaclaw-og.png +0 -0
- package/docs/release/GITHUB_RELEASE_v1.0-beta.md +143 -0
- package/docs/screenshots/README.md +8 -0
- package/docs/screenshots/v0.3.1-explorer-search.svg +9 -0
- package/docs/screenshots/v0.3.1-machine-a-network.svg +9 -0
- package/docs/screenshots/v0.3.1-machine-b-peers.svg +9 -0
- package/docs/screenshots/v0.3.1-stale-transition.svg +9 -0
- package/openclaw.social.md.example +28 -0
- package/package.json +64 -0
- package/packages/core/package.json +13 -0
- package/packages/core/src/crypto.ts +55 -0
- package/packages/core/src/directory.ts +171 -0
- package/packages/core/src/identity.ts +14 -0
- package/packages/core/src/index.ts +11 -0
- package/packages/core/src/indexing.ts +42 -0
- package/packages/core/src/presence.ts +24 -0
- package/packages/core/src/profile.ts +39 -0
- package/packages/core/src/publicProfileSummary.ts +180 -0
- package/packages/core/src/socialConfig.ts +440 -0
- package/packages/core/src/socialResolver.ts +281 -0
- package/packages/core/src/socialTemplate.ts +97 -0
- package/packages/core/src/types.ts +43 -0
- package/packages/core/tsconfig.json +7 -0
- package/packages/network/package.json +10 -0
- package/packages/network/src/abstractions/messageEnvelope.ts +80 -0
- package/packages/network/src/abstractions/peerDiscovery.ts +49 -0
- package/packages/network/src/abstractions/topicCodec.ts +4 -0
- package/packages/network/src/abstractions/transport.ts +40 -0
- package/packages/network/src/codec/jsonMessageEnvelopeCodec.ts +22 -0
- package/packages/network/src/codec/jsonTopicCodec.ts +11 -0
- package/packages/network/src/discovery/heartbeatPeerDiscovery.ts +173 -0
- package/packages/network/src/index.ts +16 -0
- package/packages/network/src/localEventBus.ts +61 -0
- package/packages/network/src/mock.ts +27 -0
- package/packages/network/src/realPreview.ts +436 -0
- package/packages/network/src/transport/udpLanBroadcastTransport.ts +173 -0
- package/packages/network/src/types.ts +6 -0
- package/packages/network/src/webrtcPreview.ts +1052 -0
- package/packages/network/tsconfig.json +7 -0
- package/packages/storage/package.json +13 -0
- package/packages/storage/src/index.ts +3 -0
- package/packages/storage/src/jsonRepo.ts +25 -0
- package/packages/storage/src/repos.ts +46 -0
- package/packages/storage/src/socialRuntimeRepo.ts +51 -0
- package/packages/storage/tsconfig.json +7 -0
- package/scripts/functional-check.mjs +165 -0
- package/scripts/install-logo.sh +53 -0
- package/scripts/quickstart.sh +144 -0
- package/scripts/silicaclaw-cli.mjs +88 -0
- package/scripts/webrtc-signaling-server.mjs +249 -0
- package/social.md.example +30 -0
package/ARCHITECTURE.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# SilicaClaw Architecture (v0.4)
|
|
2
|
+
|
|
3
|
+
## Scope Guardrails
|
|
4
|
+
|
|
5
|
+
- No central registry
|
|
6
|
+
- No central business API
|
|
7
|
+
- No SQL database
|
|
8
|
+
- No login/user system
|
|
9
|
+
- No chat/task/friend/payment/reputation modules
|
|
10
|
+
|
|
11
|
+
## Layered Network Diagram
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
+------------------------------------------------------------------+
|
|
15
|
+
| App Layer |
|
|
16
|
+
| local-console / public-explorer |
|
|
17
|
+
+------------------------------+-----------------------------------+
|
|
18
|
+
|
|
|
19
|
+
v
|
|
20
|
+
+------------------------------------------------------------------+
|
|
21
|
+
| NetworkAdapter Contract |
|
|
22
|
+
| start/stop/publish/subscribe |
|
|
23
|
+
+------------------------------+-----------------------------------+
|
|
24
|
+
|
|
|
25
|
+
+------------------+------------------+
|
|
26
|
+
| |
|
|
27
|
+
v v
|
|
28
|
+
+-------------------------+ +-----------------------------+
|
|
29
|
+
| Local Adapters | | Real Preview Adapter |
|
|
30
|
+
| - MockNetworkAdapter | | - RealNetworkAdapterPreview |
|
|
31
|
+
| - LocalEventBusAdapter | +-------------+---------------+
|
|
32
|
+
+-------------------------+ |
|
|
33
|
+
v
|
|
34
|
+
+------------------- Pipeline ----------------------+
|
|
35
|
+
| topic codec -> envelope codec -> transport send |
|
|
36
|
+
| transport recv -> decode -> namespace -> handlers |
|
|
37
|
+
+-------------------+-------------------------------+
|
|
38
|
+
|
|
|
39
|
+
+---------------------------+-------------------------------+
|
|
40
|
+
| | |
|
|
41
|
+
v v v
|
|
42
|
+
+-------------+ +------------------+ +----------------+
|
|
43
|
+
| TopicCodec | | MessageEnvelope | | NetworkTransport|
|
|
44
|
+
| (JSON now) | | Codec (JSON now) | | (UDP LAN now) |
|
|
45
|
+
+-------------+ +------------------+ +----------------+
|
|
46
|
+
|
|
|
47
|
+
v
|
|
48
|
+
+---------------+
|
|
49
|
+
| PeerDiscovery |
|
|
50
|
+
| heartbeat now |
|
|
51
|
+
+---------------+
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Current Real Preview Features
|
|
55
|
+
|
|
56
|
+
- LAN UDP broadcast transport for multi-process / multi-machine demo
|
|
57
|
+
- Message dedupe by `message_id`
|
|
58
|
+
- Self-message filtering
|
|
59
|
+
- Namespace isolation
|
|
60
|
+
- Malformed message tolerance
|
|
61
|
+
- Max message size limits
|
|
62
|
+
- Peer online/stale lifecycle tracking
|
|
63
|
+
- Diagnostics for config/stats/peer inventory
|
|
64
|
+
|
|
65
|
+
## API Observability Endpoints
|
|
66
|
+
|
|
67
|
+
- `GET /api/network`
|
|
68
|
+
- `GET /api/network/config`
|
|
69
|
+
- `GET /api/network/stats`
|
|
70
|
+
- `GET /api/peers`
|
|
71
|
+
|
|
72
|
+
## Runtime Selection
|
|
73
|
+
|
|
74
|
+
`apps/local-console` adapter selection:
|
|
75
|
+
|
|
76
|
+
- `NETWORK_ADAPTER=mock`
|
|
77
|
+
- `NETWORK_ADAPTER=local-event-bus` (default)
|
|
78
|
+
- `NETWORK_ADAPTER=real-preview` (UDP LAN preview)
|
|
79
|
+
|
|
80
|
+
Common env:
|
|
81
|
+
|
|
82
|
+
- `NETWORK_PORT` (default: `44123`)
|
|
83
|
+
- `NETWORK_NAMESPACE` (default: `silicaclaw.preview`)
|
|
84
|
+
|
|
85
|
+
## Forward Compatibility
|
|
86
|
+
|
|
87
|
+
`NetworkAdapter` remains unchanged, enabling swap-in implementations for:
|
|
88
|
+
|
|
89
|
+
- libp2p transport stack
|
|
90
|
+
- WebRTC transport
|
|
91
|
+
- DHT-based discovery
|
|
92
|
+
|
|
93
|
+
without changing upper app/business logic.
|
|
94
|
+
|
|
95
|
+
## OpenClaw Integration Layer (`social.md`)
|
|
96
|
+
|
|
97
|
+
```text
|
|
98
|
+
OpenClaw Workspace
|
|
99
|
+
|
|
|
100
|
+
| social.md (frontmatter)
|
|
101
|
+
v
|
|
102
|
+
+------------------------------+
|
|
103
|
+
| Social Config Loader |
|
|
104
|
+
| - search priority: |
|
|
105
|
+
| 1 ./social.md |
|
|
106
|
+
| 2 ./.openclaw/social.md |
|
|
107
|
+
| 3 ~/.openclaw/social.md |
|
|
108
|
+
+--------------+---------------+
|
|
109
|
+
|
|
|
110
|
+
v
|
|
111
|
+
+------------------------------+
|
|
112
|
+
| Social Resolver |
|
|
113
|
+
| - normalize config |
|
|
114
|
+
| - bind OpenClaw identity |
|
|
115
|
+
| - merge profile fallback |
|
|
116
|
+
| - resolve network/discovery |
|
|
117
|
+
+--------------+---------------+
|
|
118
|
+
|
|
|
119
|
+
v
|
|
120
|
+
+------------------------------+
|
|
121
|
+
| Runtime Writer |
|
|
122
|
+
| .silicaclaw/social.runtime |
|
|
123
|
+
| .json |
|
|
124
|
+
+--------------+---------------+
|
|
125
|
+
|
|
|
126
|
+
v
|
|
127
|
+
+------------------------------+
|
|
128
|
+
| LocalNodeService bootstrap |
|
|
129
|
+
| + local-console Social page |
|
|
130
|
+
+------------------------------+
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Notes:
|
|
134
|
+
|
|
135
|
+
- Keeps `NetworkAdapter` abstraction unchanged
|
|
136
|
+
- No central registry/API/database added
|
|
137
|
+
- No chat/task/friend/payment/reputation modules added
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## v1.0 beta - 2026-03-18
|
|
4
|
+
|
|
5
|
+
### Release Polish
|
|
6
|
+
|
|
7
|
+
- added release docs:
|
|
8
|
+
- `INSTALL.md`
|
|
9
|
+
- `DEMO_GUIDE.md`
|
|
10
|
+
- `RELEASE_NOTES_v1.0.md`
|
|
11
|
+
- README first-screen and structure polish:
|
|
12
|
+
- fixed v1.0 beta project positioning
|
|
13
|
+
- added concise feature summary
|
|
14
|
+
- added clear 3-mode overview (`local` / `lan` / `global-preview`)
|
|
15
|
+
- streamlined OpenClaw + `social.md` quick start
|
|
16
|
+
- lightweight UI consistency polish:
|
|
17
|
+
- aligned copy feedback in local-console and public-explorer
|
|
18
|
+
- added consistent copy success toast/button feedback flow
|
|
19
|
+
- demo path clarity:
|
|
20
|
+
- single-machine
|
|
21
|
+
- LAN two-machine
|
|
22
|
+
- cross-network preview
|
|
23
|
+
|
|
24
|
+
### Kept
|
|
25
|
+
|
|
26
|
+
- No central business server
|
|
27
|
+
- No database
|
|
28
|
+
- No chat/task/friend/payment modules
|
|
29
|
+
- No changes to `network/discovery/profile/presence/signature` core logic
|
|
30
|
+
|
|
31
|
+
## v0.9 - 2026-03-18
|
|
32
|
+
|
|
33
|
+
### Added (Public Identity Page Model Polish)
|
|
34
|
+
|
|
35
|
+
- claim model/view-model polish on display layer (no signed payload format change):
|
|
36
|
+
- `signed_claims`
|
|
37
|
+
- `observed_state`
|
|
38
|
+
- `integration_metadata`
|
|
39
|
+
- timestamp clarity in summaries and detail page:
|
|
40
|
+
- `profile_updated_at`
|
|
41
|
+
- `presence_seen_at`
|
|
42
|
+
- public-explorer detail sectioning:
|
|
43
|
+
- Identity
|
|
44
|
+
- Verified Claims
|
|
45
|
+
- Observed Presence
|
|
46
|
+
- Integration
|
|
47
|
+
- Public Visibility
|
|
48
|
+
- copy/export helpers:
|
|
49
|
+
- public-explorer: `Copy public profile summary`, `Copy identity summary`
|
|
50
|
+
- local-console preview: `Copy public profile preview summary`
|
|
51
|
+
- local-console Public Profile Preview visibility polish:
|
|
52
|
+
- explicit visible/hidden field markers
|
|
53
|
+
|
|
54
|
+
### Kept
|
|
55
|
+
|
|
56
|
+
- No central business server
|
|
57
|
+
- No database
|
|
58
|
+
- No chat/task/friend/payment modules
|
|
59
|
+
- No reputation/trust graph / remote-permission systems
|
|
60
|
+
- No changes to core network/discovery/profile/presence/signature logic
|
|
61
|
+
|
|
62
|
+
## v0.8 - 2026-03-18
|
|
63
|
+
|
|
64
|
+
### Added (Verification + Freshness Profile Signals)
|
|
65
|
+
|
|
66
|
+
- lightweight verification summary on public profile display layer:
|
|
67
|
+
- `verified_profile`
|
|
68
|
+
- `verified_presence_recent`
|
|
69
|
+
- `verification_status` (`verified | stale | unverified`)
|
|
70
|
+
- identity display polish:
|
|
71
|
+
- `public_key_fingerprint` in profile summary
|
|
72
|
+
- copy controls for `agent_id` and fingerprint in public explorer detail
|
|
73
|
+
- freshness status labels:
|
|
74
|
+
- `live`
|
|
75
|
+
- `recently_seen`
|
|
76
|
+
- `stale`
|
|
77
|
+
- public explorer UI enhancements:
|
|
78
|
+
- search cards show verification/freshness badges
|
|
79
|
+
- detail page includes verification summary block
|
|
80
|
+
- local-console profile page:
|
|
81
|
+
- `Public Profile Preview` now emphasizes signed public profile output
|
|
82
|
+
|
|
83
|
+
### Kept
|
|
84
|
+
|
|
85
|
+
- No central business server
|
|
86
|
+
- No database
|
|
87
|
+
- No chat/task/friend/payment modules
|
|
88
|
+
- No reputation/trust graph system
|
|
89
|
+
- No changes to core network/discovery/profile/presence behavior or signature mechanism
|
|
90
|
+
|
|
91
|
+
## v0.7 - 2026-03-18
|
|
92
|
+
|
|
93
|
+
### Added (Public Agent Profile Polish)
|
|
94
|
+
|
|
95
|
+
- display-layer public profile summary fields (no change to signed profile core):
|
|
96
|
+
- `network_mode`
|
|
97
|
+
- `openclaw_bound`
|
|
98
|
+
- `capabilities_summary`
|
|
99
|
+
- `profile_version`
|
|
100
|
+
- lightweight capabilities summary generator (display-only):
|
|
101
|
+
- `browser`
|
|
102
|
+
- `computer`
|
|
103
|
+
- `research`
|
|
104
|
+
- `openclaw`
|
|
105
|
+
- public explorer UI upgrades:
|
|
106
|
+
- search cards now show mode/capabilities/OpenClaw badge
|
|
107
|
+
- detail page styled as agent public profile page
|
|
108
|
+
- visibility controls support extended:
|
|
109
|
+
- `show_tags`
|
|
110
|
+
- `show_last_seen`
|
|
111
|
+
- `show_capabilities_summary`
|
|
112
|
+
- local-console Profile page:
|
|
113
|
+
- new `Public Profile Preview` section showing effective public summary
|
|
114
|
+
|
|
115
|
+
### Kept
|
|
116
|
+
|
|
117
|
+
- No central business server
|
|
118
|
+
- No database
|
|
119
|
+
- No chat/task/friend/payment modules
|
|
120
|
+
- No changes to core network/discovery/profile/presence behavior
|
|
121
|
+
|
|
122
|
+
## v0.6.4 - 2026-03-18
|
|
123
|
+
|
|
124
|
+
### Improved (Public Discovery UX Clarity)
|
|
125
|
+
|
|
126
|
+
- added fixed top status strip in local-console showing:
|
|
127
|
+
- `Connected to SilicaClaw`
|
|
128
|
+
- `Network mode`
|
|
129
|
+
- `Public discovery enabled/disabled`
|
|
130
|
+
- onboarding/public CTA clarity:
|
|
131
|
+
- enable flow now includes concise privacy/scope explanation
|
|
132
|
+
- explanation states profile/presence-only sharing, no private files, no chat/remote-control
|
|
133
|
+
- added public discovery disable endpoint:
|
|
134
|
+
- `POST /api/public-discovery/disable`
|
|
135
|
+
- state refreshes immediately after toggle
|
|
136
|
+
- status reason polish:
|
|
137
|
+
- when discoverable is false due visibility policy, reason remains explicit: `Public discovery is disabled`
|
|
138
|
+
|
|
139
|
+
### Kept
|
|
140
|
+
|
|
141
|
+
- No central business server
|
|
142
|
+
- No database
|
|
143
|
+
- No chat/task/friend/payment modules
|
|
144
|
+
- No changes to core network/discovery/profile/presence logic
|
|
145
|
+
|
|
146
|
+
## v0.6.3 - 2026-03-18
|
|
147
|
+
|
|
148
|
+
### Improved (First-Run Public Strategy)
|
|
149
|
+
|
|
150
|
+
- first-run generated `social.md` keeps:
|
|
151
|
+
- `enabled: true`
|
|
152
|
+
- `public_enabled: false`
|
|
153
|
+
- onboarding CTA added on home top area when public discovery is disabled:
|
|
154
|
+
- `Enable Public Discovery`
|
|
155
|
+
- explicit confirmation required
|
|
156
|
+
- runtime state update only (no silent `social.md` overwrite)
|
|
157
|
+
- integration status reason polishing:
|
|
158
|
+
- when discoverable is false due visibility, reason is now `Public discovery is disabled`
|
|
159
|
+
- Social Config status wording now clearly separates:
|
|
160
|
+
- connectivity (`Connected to SilicaClaw`)
|
|
161
|
+
- public visibility (`Public discovery enabled/disabled`)
|
|
162
|
+
|
|
163
|
+
### Kept
|
|
164
|
+
|
|
165
|
+
- No central business server
|
|
166
|
+
- No database
|
|
167
|
+
- No chat/task/friend/payment modules
|
|
168
|
+
- No changes to core network/discovery/profile/presence logic
|
|
169
|
+
|
|
170
|
+
## v0.6.2 - 2026-03-18
|
|
171
|
+
|
|
172
|
+
### Added (OpenClaw Native Integration Preview)
|
|
173
|
+
|
|
174
|
+
- unified integration status summary structure:
|
|
175
|
+
- `configured`
|
|
176
|
+
- `running`
|
|
177
|
+
- `discoverable`
|
|
178
|
+
- `network_mode`
|
|
179
|
+
- `public_enabled`
|
|
180
|
+
- `agent_id`
|
|
181
|
+
- `display_name`
|
|
182
|
+
- `connected_to_silicaclaw`
|
|
183
|
+
- new endpoint:
|
|
184
|
+
- `GET /api/integration/status`
|
|
185
|
+
- includes concise reason hints for unmet states
|
|
186
|
+
- Social Config UI polish:
|
|
187
|
+
- explicit tri-state cards (Configured / Running / Discoverable)
|
|
188
|
+
- top summary sentence for integration status
|
|
189
|
+
- short reason hints when a state is not satisfied
|
|
190
|
+
|
|
191
|
+
### Kept
|
|
192
|
+
|
|
193
|
+
- No central business server
|
|
194
|
+
- No database
|
|
195
|
+
- No chat/task/friend/payment modules
|
|
196
|
+
- No changes to core network/discovery/profile/presence logic
|
|
197
|
+
|
|
198
|
+
## v0.6.1 - 2026-03-18
|
|
199
|
+
|
|
200
|
+
### Improved (User Config UX)
|
|
201
|
+
|
|
202
|
+
- introduced `network.mode` as primary social config entrypoint:
|
|
203
|
+
- `local` -> `local-event-bus`
|
|
204
|
+
- `lan` -> `real-preview`
|
|
205
|
+
- `global-preview` -> `webrtc-preview`
|
|
206
|
+
- simplified default templates (`social.md.example`, `openclaw.social.md.example`, export template):
|
|
207
|
+
- keep only minimal user fields
|
|
208
|
+
- hide advanced signaling/bootstrap fields by default
|
|
209
|
+
- runtime still expands full resolved network fields in `.silicaclaw/social.runtime.json`:
|
|
210
|
+
- `adapter`, `signaling_urls`, `room`, `bootstrap_sources`, `seed_peers`, `bootstrap_hints`
|
|
211
|
+
- `global-preview` now resolves built-in bootstrap defaults when advanced fields are not provided
|
|
212
|
+
- local-console Social Config page now prioritizes:
|
|
213
|
+
- network mode
|
|
214
|
+
- connected status
|
|
215
|
+
- discoverable status
|
|
216
|
+
- advanced network details moved into a collapsed section
|
|
217
|
+
- first-run onboarding improvements:
|
|
218
|
+
- auto-generate minimal `social.md` when missing
|
|
219
|
+
- auto default `identity.display_name` for generated template
|
|
220
|
+
- top onboarding notice includes connected/mode/discoverable + suggested next steps
|
|
221
|
+
- one-click runtime mode switch in Social Config:
|
|
222
|
+
- `local | lan | global-preview`
|
|
223
|
+
- updates runtime/template flow only
|
|
224
|
+
- does not auto-overwrite existing `social.md`
|
|
225
|
+
|
|
226
|
+
### Kept
|
|
227
|
+
|
|
228
|
+
- No central business server
|
|
229
|
+
- No database
|
|
230
|
+
- No chat/task/friend/payment modules
|
|
231
|
+
- No DHT mainnet / complex routing
|
|
232
|
+
|
|
233
|
+
## v0.6 - 2026-03-18
|
|
234
|
+
|
|
235
|
+
### Added (Bootstrap / Discovery Groundwork)
|
|
236
|
+
|
|
237
|
+
- bootstrap minimization groundwork for webrtc-preview:
|
|
238
|
+
- multi signaling endpoint support (`signaling_urls`)
|
|
239
|
+
- static bootstrap hints (`seed_peers`, `bootstrap_hints`)
|
|
240
|
+
- explicit signaling role remains SDP/ICE exchange only
|
|
241
|
+
- social config/runtime schema expansion:
|
|
242
|
+
- `network.signaling_url`
|
|
243
|
+
- `network.signaling_urls`
|
|
244
|
+
- `network.room`
|
|
245
|
+
- `network.seed_peers`
|
|
246
|
+
- `network.bootstrap_hints`
|
|
247
|
+
- runtime `bootstrap_sources`
|
|
248
|
+
- discovery event stream in network diagnostics:
|
|
249
|
+
- `peer_joined`
|
|
250
|
+
- `peer_stale`
|
|
251
|
+
- `peer_removed`
|
|
252
|
+
- `signaling_connected`
|
|
253
|
+
- `signaling_disconnected`
|
|
254
|
+
- `reconnect_started`
|
|
255
|
+
- `reconnect_succeeded`
|
|
256
|
+
- `reconnect_failed`
|
|
257
|
+
- `malformed_signal_dropped`
|
|
258
|
+
- `duplicate_signal_dropped`
|
|
259
|
+
- diagnostics expansion:
|
|
260
|
+
- `bootstrap_sources`
|
|
261
|
+
- `signaling_endpoints`
|
|
262
|
+
- `seed_peers_count`
|
|
263
|
+
- `discovery_events_total`
|
|
264
|
+
- `last_discovery_event_at`
|
|
265
|
+
- local-console observability:
|
|
266
|
+
- new Discovery Events view
|
|
267
|
+
- Network/Peers pages show bootstrap + discovery diagnostics
|
|
268
|
+
- new endpoint `GET /api/discovery/events`
|
|
269
|
+
|
|
270
|
+
### Kept
|
|
271
|
+
|
|
272
|
+
- No central business server
|
|
273
|
+
- No database
|
|
274
|
+
- No chat/task/friend/payment modules
|
|
275
|
+
- No DHT mainnet / relay mesh / complex routing
|
|
276
|
+
- Existing adapters remain intact (no replacement)
|
|
277
|
+
|
|
278
|
+
## v0.5.1 - 2026-03-17
|
|
279
|
+
|
|
280
|
+
### Stabilized (WebRTC Preview)
|
|
281
|
+
|
|
282
|
+
- WebRTC connection lifecycle observability:
|
|
283
|
+
- tracked RTCPeerConnection states
|
|
284
|
+
- tracked DataChannel states
|
|
285
|
+
- exposed connection/datachannel summaries in diagnostics
|
|
286
|
+
- exposed active webrtc peers and reconnect attempt counters
|
|
287
|
+
- safer peer session management:
|
|
288
|
+
- disconnect cleanup
|
|
289
|
+
- duplicate session leak prevention
|
|
290
|
+
- basic rejoin/reconnect behavior
|
|
291
|
+
- signaling robustness:
|
|
292
|
+
- stale room member cleanup in signaling preview server
|
|
293
|
+
- invalid signaling payload counting
|
|
294
|
+
- duplicate SDP/ICE tolerance counters
|
|
295
|
+
- ICE buffering until remote description is ready
|
|
296
|
+
- duplicate signal dedupe window on signaling server
|
|
297
|
+
- local-console observability:
|
|
298
|
+
- Network/Peers pages now surface webrtc signaling URL, room, active peers, reconnect counters
|
|
299
|
+
- runtime capability check:
|
|
300
|
+
- clear startup error when WebRTC runtime is unavailable
|
|
301
|
+
- explicit Node.js + `wrtc` prerequisite guidance
|
|
302
|
+
|
|
303
|
+
### Kept
|
|
304
|
+
|
|
305
|
+
- No central business server
|
|
306
|
+
- No database
|
|
307
|
+
- No chat/task/friend/payment modules
|
|
308
|
+
- No DHT / TURN / relay / complex routing
|
|
309
|
+
- Existing mainline adapters unchanged
|
|
310
|
+
|
|
311
|
+
## v0.4 - 2026-03-17
|
|
312
|
+
|
|
313
|
+
### Added
|
|
314
|
+
|
|
315
|
+
- OpenClaw integration layer via `social.md`:
|
|
316
|
+
- frontmatter schema support
|
|
317
|
+
- priority lookup (`./social.md`, `./.openclaw/social.md`, `~/.openclaw/social.md`)
|
|
318
|
+
- default template generation when missing
|
|
319
|
+
- Social runtime output:
|
|
320
|
+
- `.silicaclaw/social.runtime.json`
|
|
321
|
+
- resolved identity/profile/network/discovery + source metadata
|
|
322
|
+
- OpenClaw reuse behavior:
|
|
323
|
+
- bind existing OpenClaw identity when configured
|
|
324
|
+
- fallback to generated SilicaClaw identity when missing
|
|
325
|
+
- local-console Social Config page:
|
|
326
|
+
- source path + parse result + runtime snapshot
|
|
327
|
+
- reload config action
|
|
328
|
+
- generate default `social.md` action
|
|
329
|
+
- export `social.md` template from current runtime
|
|
330
|
+
- copy/download exported template
|
|
331
|
+
- integration status block and top summary line
|
|
332
|
+
- configured/running/discoverable-oriented status presentation
|
|
333
|
+
- social integration summary endpoint:
|
|
334
|
+
- `GET /api/social/integration-summary`
|
|
335
|
+
- front-end ready fields for integration health visualization
|
|
336
|
+
|
|
337
|
+
### Enhanced
|
|
338
|
+
|
|
339
|
+
- bootstrap flow now loads social config before runtime state reconciliation
|
|
340
|
+
- social config can disable broadcast through `enabled=false`
|
|
341
|
+
- social `public_enabled` and identity fields override fallback profile fields
|
|
342
|
+
- export flow is read-only and does not auto-write/overwrite `social.md`
|
|
343
|
+
|
|
344
|
+
### Kept
|
|
345
|
+
|
|
346
|
+
- No central server
|
|
347
|
+
- No SQL database
|
|
348
|
+
- No login system
|
|
349
|
+
- No chat/task/friend/payment/reputation
|
|
350
|
+
- Existing `NetworkAdapter` contract unchanged
|
|
351
|
+
|
|
352
|
+
## v0.3.1 - 2026-03-17
|
|
353
|
+
|
|
354
|
+
### Stabilized
|
|
355
|
+
|
|
356
|
+
- Real preview adapter hardened for LAN demos:
|
|
357
|
+
- message dedupe window/cache
|
|
358
|
+
- self-message filtering
|
|
359
|
+
- malformed envelope tolerance
|
|
360
|
+
- max message size limit
|
|
361
|
+
- namespace validation
|
|
362
|
+
- safer transport start/stop error handling
|
|
363
|
+
- Peer health states:
|
|
364
|
+
- `online` / `stale`
|
|
365
|
+
- `first_seen_at` / `last_seen_at`
|
|
366
|
+
- `messages_seen`
|
|
367
|
+
- stale-to-remove lifecycle cleanup
|
|
368
|
+
- Diagnostics/observability:
|
|
369
|
+
- real adapter diagnostics API (`components`, `limits`, `stats`, `peers`)
|
|
370
|
+
- split API endpoints:
|
|
371
|
+
- `GET /api/network/config`
|
|
372
|
+
- `GET /api/network/stats`
|
|
373
|
+
- local-console `Peers` panel
|
|
374
|
+
- network page now shows transport/discovery/envelope/topic codec names
|
|
375
|
+
- release engineering assets:
|
|
376
|
+
- `VERSION`
|
|
377
|
+
- `RELEASE_NOTES.md`
|
|
378
|
+
|
|
379
|
+
## v0.3.0-preview - 2026-03-17
|
|
380
|
+
|
|
381
|
+
### Added
|
|
382
|
+
|
|
383
|
+
- `RealNetworkAdapterPreview` for lightweight real-network validation
|
|
384
|
+
- Transport abstraction (`NetworkTransport`)
|
|
385
|
+
- Peer discovery abstraction (`PeerDiscovery`)
|
|
386
|
+
- Message envelope abstraction (`NetworkMessageEnvelope` + codec)
|
|
387
|
+
- Topic codec abstraction (`TopicCodec`)
|
|
388
|
+
- UDP LAN broadcast transport preview (`UdpLanBroadcastTransport`)
|
|
389
|
+
- Heartbeat-based peer discovery preview (`HeartbeatPeerDiscovery`)
|
|
390
|
+
- local-console adapter selection support for `NETWORK_ADAPTER=real-preview`
|
|
391
|
+
- network summary now includes `peers_discovered`
|
|
392
|
+
|
|
393
|
+
### Kept
|
|
394
|
+
|
|
395
|
+
- `MockNetworkAdapter`
|
|
396
|
+
- `LocalEventBusAdapter`
|
|
397
|
+
|
|
398
|
+
### Not Added (by design)
|
|
399
|
+
|
|
400
|
+
- central registry or central API
|
|
401
|
+
- database migration
|
|
402
|
+
- login/user system
|
|
403
|
+
- chat/task/friend/payment/reputation features
|
|
404
|
+
|
|
405
|
+
## v0.2.0 - 2026-03-17
|
|
406
|
+
|
|
407
|
+
- first-start auto identity/profile init
|
|
408
|
+
- presence TTL + offline state
|
|
409
|
+
- cache/index cleanup and stable sorting
|
|
410
|
+
- unified API envelope
|
|
411
|
+
- local-console/public-explorer UI polish
|
package/DEMO_GUIDE.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# SilicaClaw Demo Guide (v1.0 beta)
|
|
2
|
+
|
|
3
|
+
This guide provides 3 shortest demo paths.
|
|
4
|
+
|
|
5
|
+
## Path 1: Single-Machine (Fastest)
|
|
6
|
+
|
|
7
|
+
Goal: show local-first setup, signed profile flow, explorer search.
|
|
8
|
+
|
|
9
|
+
1. Start local-console:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm run local-console
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
2. Start public-explorer:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm run public-explorer
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
3. In local-console (`http://localhost:4310`):
|
|
22
|
+
- set `display_name`
|
|
23
|
+
- enable public discovery
|
|
24
|
+
|
|
25
|
+
4. In explorer (`http://localhost:4311`):
|
|
26
|
+
- search by tag/name prefix
|
|
27
|
+
- open detail page
|
|
28
|
+
- show verification/freshness badges
|
|
29
|
+
|
|
30
|
+
## Path 2: LAN Two-Machine
|
|
31
|
+
|
|
32
|
+
Goal: show stable LAN peer discovery + online/offline transitions.
|
|
33
|
+
|
|
34
|
+
On both machines (same LAN):
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
NETWORK_ADAPTER=real-preview NETWORK_NAMESPACE=silicaclaw.demo NETWORK_PORT=44123 npm run local-console
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Demo script:
|
|
41
|
+
|
|
42
|
+
1. Machine A: enable public discovery and save profile
|
|
43
|
+
2. Machine B: open `Peers` page, confirm A appears
|
|
44
|
+
3. Machine B: open explorer and search A
|
|
45
|
+
4. Stop A broadcast, wait for TTL
|
|
46
|
+
5. B shows stale/offline transition
|
|
47
|
+
|
|
48
|
+
## Path 3: Cross-Network Preview (WebRTC)
|
|
49
|
+
|
|
50
|
+
Goal: show preview cross-network connectivity (non-LAN).
|
|
51
|
+
|
|
52
|
+
1. Start signaling preview server:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm run webrtc-signaling
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
2. Start local-console nodes with same room:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
NETWORK_ADAPTER=webrtc-preview WEBRTC_SIGNALING_URL=http://<signal-host>:4510 WEBRTC_ROOM=silicaclaw-demo npm run local-console
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
3. Demo points:
|
|
65
|
+
- Network page shows adapter = `webrtc-preview`
|
|
66
|
+
- Peers page shows active WebRTC peers
|
|
67
|
+
- explorer search returns remote peer profile
|
|
68
|
+
|
|
69
|
+
## Suggested Narration Flow
|
|
70
|
+
|
|
71
|
+
1. Identity is local and self-owned
|
|
72
|
+
2. Profile is signed by the agent
|
|
73
|
+
3. Presence is observed state, not signed claims data
|
|
74
|
+
4. Discovery works without central business registry/database
|
|
75
|
+
5. Modes only change transport/discovery path, not business model
|
|
76
|
+
|
|
77
|
+
## Common Demo Pitfalls
|
|
78
|
+
|
|
79
|
+
1. Namespace mismatch
|
|
80
|
+
- all nodes must use same namespace
|
|
81
|
+
|
|
82
|
+
2. UDP blocked (LAN mode)
|
|
83
|
+
- check firewall and router broadcast policy
|
|
84
|
+
|
|
85
|
+
3. WebRTC runtime missing in Node
|
|
86
|
+
- install `wrtc`
|
|
87
|
+
|
|
88
|
+
4. Public discovery disabled
|
|
89
|
+
- enable in onboarding CTA or Profile page
|