docs(publishers-guide): fix apps/agents doc drift against actual platform behavior - #41
Conversation
…havior
Corrections verified against the code:
- Tool discovery: tools are declared in agent.json, not discovered via
GET /_tools (which the sidecar proxy actively blocks). Rewrote the
section and the scope/tips references to match.
- Session key for nebo.agents.invoke() is app:{id}:api, not agent:{id}:api.
- Permissions: document the enforced forms — network:{domain} (with
network:* wildcard) and subagent:{agentId} — instead of the unenforced
network:outbound / subagent:invoke spellings; note token gating for
storage/agents/janus endpoints.
- manifest.json: the runtime parser reads "type", not "artifact_type";
updated examples and field table (legacy spelling noted).
- Env vars: NEBO_API_URL uses the running server's port (not 8420);
NEBO_DATA_DIR resolves under Nebo's appdata (plugins/{slug}), not
~/.nebo/appdata/agents/{id} — same fix for the sidecar.log path.
- Crash recovery: first restart is immediate; backoff gates are
20s/40s/80s/160s capped at 5min (was documented as starting at 10s).
- Removed dead reference to docs/sme/APPS.md (file does not exist).
- Fixed core-tool collision list to the actual domain tool names.
Also corrected the supervisor backoff comment, which described a 10s
first wait the code never performs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WrKTd3yCXjE69efvvpwUd3
…pps doc Corrections verified against the code: - Memory: the inherit_user flag no longer exists — owner identity inheritance (tacit/preferences, tacit/personality, read-only) is always on. Removed the flag from the table, example, and scoping matrix, and documented the actual resolution rules including the fail-closed behavior: context_isolated with no derivable context refuses memory writes instead of leaking into the shared scope. - Context isolation: contexts derive from the embed contextId or the session's active chat; only the agent-wide tacit/ namespace is inherited into isolated contexts. - Sidecar tools: removed the claim that GET /_tools discovery exists — agent.json is the only source of tool definitions. - Input fields: note that `name` is accepted as an alias for `key`. - apps.md: dev-workflow paths now use the platform-native user/agents/ root (matching the agents doc), replacing stale ~/.nebo examples. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WrKTd3yCXjE69efvvpwUd3
…ation Traced every runtime claim in the agent guide against the code. Delegation (most publisher-visible errors): - The tool call form was wrong. There is no `agents` tool — delegation is `agent(resource: "registry", action: "delegate", ...)`. The old form survives only in an orphaned strap prompt file that is never included. - "There is no built-in depth limit" is false: delegation chains are capped at 2 levels (MAX_SUBAGENT_DEPTH) and the third is refused. Distinguished this from the separate channel handoff cap. - Auto-activation is in-memory only (no is_enabled flip, no trigger registration), and drops the target's soul/rules — documented both. - Scoped the "returns a text result" claim to wait: true. Removed the Followup Suggestions section entirely — the feature does not exist: no generator, no frontend chips, and no such hub broadcast event. Auto-install cascade: rewrote to match deps.rs. Install order is not plugins-first on all paths, non-marketplace skill refs are silently skipped, optional deps are skipped, failures are partial with no rollback (the agent stays installed and may auto-activate), and triggers/persona are not cascade steps. Filesystem watcher: documented that manifest.json edits are not detected, that sub-1s successive saves are discarded rather than deferred, and that edits inside a symlinked directory do not reliably propagate (the same overstated symlink claim is corrected in apps.md). Validation rules: split into hard errors vs silently-skipped bindings — an invalid workflow binding is dropped with a log warning while the agent loads normally, which the doc previously described as a load failure. Also documented the memory.topics feature (implemented, validated, and entirely absent from the guide), requires.interfaces, folder-path input substitution, string-only input defaults, and loader identity behavior; marked `defaults` as parsed-but-not-yet-enforced. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WrKTd3yCXjE69efvvpwUd3
|
Reviewed with claims verified against code. Everything checks out (backoff seeding, depth cap = 2, NEBO_DATA_DIR per-slug, no /_tools, memory/isolation section, port 27895) except one factual regression: apps.md — tool-name collision list: changed FROM the correct current names ( One-line fix, then LGTM. (Hold merge — release coordination in progress.) |
agent (bot_tool.rs:2024), os (os_tool.rs:325), event, web, skill, message, loop, work — verified against each DynTool name() impl. The previous edit had reverted to pre-rename names. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015oqdbhhgyktgKu9iqKb3V2
Corrects the public publishers-guide where it had drifted from the shipped platform: delegation semantics, install cascade, watcher behavior, validation rules, agent.json memory/tools fields, and dev paths in the apps doc.
Docs-only — no runtime changes.
🤖 Generated with Claude Code
https://claude.ai/code/session_015oqdbhhgyktgKu9iqKb3V2