11 Commits
Author SHA1 Message Date
Ningyu He 72407e821a test: confirm before stopping port conflicts 2026-08-27 17:30:10 +08:00
Ningyu He b53c41be58 improve keyless smoke environment and web validation 2026-08-27 16:59:16 +08:00
zzhzz ce33976dd7 bounded transitive discovery: recommend_peer forwards through friends with hop limits and loop protection 2026-08-19 12:34:20 +08:00
zzhzz f3aefda9f0 fall back to best-known friend when no topic matches; guard broken workspaces; fix script env passing 2026-08-19 12:13:31 +08:00
zzhzz 37ed4ca536 score recommendations against live advertisements; repair stale test profiles 2026-08-19 12:05:40 +08:00
zzhzz 130de6f747 add real-key three-agent recommendation test script 2026-08-18 17:13:06 +08:00
zzhzz ebc64ffb99 match recommendations against live session topics and fail fast on port conflicts 2026-08-18 11:51:17 +08:00
zzhzz 0ecbcc13e5 add friend recommendations (recommend_peer + add/decline bubbles) and natural invocation guidance 2026-08-17 22:40:37 +08:00
zzhzz 02aba53c93 UI-configurable local settings and signed friend cards
Move the runtime knobs that previously only lived in the dsh profile patch
(listen host/port, workspace, requireToken, timeouts, answer cap, roster
refresh, allow-execution, provider/model overrides) into the plugin settings
file, editable from the Ask Peer settings page. The profile keeps only the
bootstrap (callerName, keyDir, listen) and the settings file wins for
everything else; most knobs hot-apply, host/port after restart.

Add signed friend cards: one dsh-ask-peer-card: blob carrying name, host,
port, public sign, description and tags, signed by the issuing identity.
The settings page shows your card and 'Add friend from a card' verifies a
pasted card against the key embedded in it, then pre-fills the friend form
so adding a friend is a single copy-paste instead of copying four fields.

Signed, not encrypted: the embedded key is public, and a signature is what
proves the contact info came from the matching private key holder. New
endpoints GET /sign/card and POST /sign/verify; smoke test covers the local
settings round-trip, valid-card verify, and tampered-card rejection.
2026-08-17 21:26:31 +08:00
zzhzz 41db8c1598 advertise live working topic instead of frozen session title
Session titles are fixed at creation and never track context growth.
Derive the advertisement from the conversation itself:

- topic: latest genuine user message (skips dsh-system-prompt snapshots),
  shown as "working on: ..." in the roster and peers_list
- topics: recency-weighted keywords from the last few messages

peers_list output and schema gain per-session topic/topics, and the real
three-agent choice test now asserts on live topics and a docker-flavored
answer from ada.
2026-08-17 19:26:00 +08:00
zzhzz d8c575913c dsh-ask-peer: peer-to-peer ask plugin for DeepSeek Harness
- signed identities (Ed25519) + allowlist/token auth
- ask_peer / ask_peers / ask_peer_async / ask_result / peers_list tools
- session-level answers from copied session context (read-only)
- per-friend ask/auto/deny policy with Answer/Decline notification
- auto-generated advertisements (session titles/topics)
- plugin-owned settings page (copy sign, friends management)
- keyless smoke suite + real three-agent browser test
2026-08-17 19:06:32 +08:00