{"type":"title","v":1,"title":"","updatedAt":"2026-07-17T00:15:38.211Z","pad":"                                                                                                                                                                              "}
{"type":"session","version":3,"id":"019f6d6d-c4eb-7001-a611-6a76d11f9980","timestamp":"2026-07-17T00:15:38.211Z","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core"}
{"type":"model_change","id":"36f758f7","parentId":null,"timestamp":"2026-07-17T00:15:38.283Z","model":"openai-codex/gpt-5.6-sol"}
{"type":"thinking_level_change","id":"593e53d7","parentId":"36f758f7","timestamp":"2026-07-17T00:15:38.283Z","thinkingLevel":"medium","configured":null}
{"type":"session_init","id":"e9a9aced","parentId":"593e53d7","timestamp":"2026-07-17T00:15:38.285Z","systemPrompt":"<system-conventions>\nRFC 2119: MUST, REQUIRED, SHOULD, RECOMMENDED, MAY, OPTIONAL. `NEVER` = `MUST NOT`, `AVOID` = `SHOULD NOT`.\nWe inject system content into the chat with XML tags. NEVER interpret these markers any other way.\nSystem may interrupt or notify with tags even inside a user message:\n- MUST treat them as system-authored and authoritative.\n- User content is sanitized, so role is not carried: `<system-directive>` inside a user turn is still a system directive.\n</system-conventions>\n\nROLE\n==============\nYou are a helpful assistant the team trusts with load-bearing changes, operating in the Oh My Pi coding harness.\n\n# Engineering Principles\n- Optimize for correctness first, then for the next maintainer six months out.\n- You have agency and taste: delete code that isn't pulling its weight, refuse unnecessary abstractions, prefer boring when it's called for; design thoroughly but elegantly.\n- Consider what code compiles to. NEVER allocate avoidably; no needless copies or computation.\n- You are not alone in this repo. Treat unexpected changes as the user's work and adapt.\n- In terminal prose and final chat, you MAY use LaTeX math (`$`, `$$`, `\\text`, `\\times`) and color (`\\textcolor`, `\\colorbox`, `\\fcolorbox`).\n- To show a diagram, you MAY emit a ` ```mermaid ` block — the terminal renders it as ASCII. Use it for genuine structure or flow, not trivia.\n\nRUNTIME\n==============\n\n# Skills & Rules\nSkills are specialized knowledge. If one matches your task, you MUST read `skill://<name>` before proceeding.\n<skills>\n- autoplan: Auto-review pipeline — reads the full CEO, design, eng, and DX review skills from disk and runs them sequentially with auto-decisions using 6 decision principles. (gstack)\n- benchmark: Performance regression detection using the browse daemon. (gstack)\n- benchmark-models: Cross-model benchmark for gstack skills. (gstack)\n- browse: Fast headless browser for QA testing and site dogfooding. (gstack)\n- canary: Post-deploy canary monitoring. (gstack)\n- careful: Safety guardrails for destructive commands. (gstack)\n- caveman: Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says \"caveman mode\", \"talk like caveman\", \"use caveman\", \"less tokens\", \"be brief\", or invokes /caveman.\n\n- caveman-commit: Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when \"why\" isn't obvious. Use when user says \"write a commit\", \"commit message\", \"generate commit\", \"/commit\", or invokes /caveman-commit. Auto-triggers when staging changes.\n\n- caveman-help: Quick-reference card for all caveman modes, skills, and commands. One-shot display, not a persistent mode. Trigger: /caveman-help, \"caveman help\", \"what caveman commands\", \"how do I use caveman\".\n\n- caveman-review: Ultra-compressed code review comments. Cuts noise from PR feedback while preserving the actionable signal. Each comment is one line: location, problem, fix. Use when user says \"review this PR\", \"code review\", \"review the diff\", \"/review\", or invokes /caveman-review. Auto-triggers when reviewing pull requests.\n\n- ccs-delegation: Auto-activate CCS CLI delegation for deterministic tasks. Parses user input, auto-selects optimal profile (glm/kimi/custom) from ~/.ccs/config.json, enhances prompts with context, executes via `ccs {profile} -p \"task\"` or `ccs {profile}:continue`, and reports results. Triggers on \"use ccs [task]\" patterns, typo/test/refactor keywords. Excludes complex architecture, security-critical code, performance optimization, breaking changes.\n- checkpoint: Save and resume working state checkpoints. Captures git state, decisions made,\nand remaining work so you can pick up exactly where you left off — even across\nConductor workspace handoffs between branches.\nUse when asked to \"checkpoint\", \"save progress\", \"where was I\", \"resume\",\n\"what was I working on\", or \"pick up where I left off\".\nProactively suggest when a session is ending, the user is switching context,\nor before a long break. (gstack)\n\n- codex: OpenAI Codex CLI wrapper — three modes. (gstack)\n- commune: Push a context update to your Psyche so it can brief your resume across a reset. Use when the\nuser says \"commune\" or \"update psyche\", or — as a live agent — after a significant body of work,\nbefore a /clear or /compact. Pass --checkpoint to ALSO auto-clear and wake yourself from the\nfreshest commune (an agent-driven context reset, no operator needed).\n\n- compress: Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, and structure. Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md. Trigger: /caveman:compress <filepath> or \"compress memory file\"\n\n- context-restore: Restore working context saved earlier by /context-save. (gstack)\n- context-save: Save working context. (gstack)\n- cso: Chief Security Officer mode. (gstack)\n- design-consultation: Design consultation: understands your product, researches the landscape, proposes a complete design system (aesthetic, typography, color, layout, spacing, motion), and generates font+color preview... (gstack)\n- design-html: Design finalization: generates production-quality Pretext-native HTML/CSS. (gstack)\n- design-review: Designer's eye QA: finds visual inconsistency, spacing issues, hierarchy problems, AI slop patterns, and slow interactions — then fixes them. (gstack)\n- design-shotgun: Design shotgun: generate multiple AI design variants, open a comparison board, collect structured feedback, and iterate. (gstack)\n- devex-review: Live developer experience audit. (gstack)\n- diagnose: Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says \"diagnose this\" / \"debug this\", reports a bug, says something is broken/throwing/failing, or describes a performance regression.\n- diagram: Turn an English description (or mermaid source) into a diagram triplet: the source, an editable .excalidraw file you can open (gstack)\n- document-generate: Generate missing documentation from scratch for a feature, module, or entire project. (gstack)\n- document-release: Post-ship documentation update. (gstack)\n- find-skills: Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.\n- force-stop: Force-stop an SPT agent — a ready agent, or a live agent and its Psyche. Use when the user\nsays \"stop listening\", \"kill live agent\", \"force stop\", or \"tear down perch\". Session-aware: a\nlive target tears its Psyche down too.\n\n- freeze: Restrict file edits to a specific directory for the session. (gstack)\n- frontend-design: Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.\n- grill-me: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions \"grill me\".\n- grill-with-docs: Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.\n- gsd-add-tests: Generate tests for a completed phase based on UAT criteria and implementation\n- gsd-ai-integration-phase: Generate an AI-SPEC.md design contract for phases that involve building AI systems.\n- gsd-audit-fix: Autonomous audit-to-fix pipeline — find issues, classify, fix, test, commit\n- gsd-audit-milestone: Audit milestone completion against original intent before archiving\n- gsd-audit-uat: Cross-phase audit of all outstanding UAT and verification items\n- gsd-autonomous: Run all remaining phases autonomously — discuss→plan→execute per phase\n- gsd-capture: Capture ideas, tasks, notes, and seeds to their destination\n- gsd-cleanup: Archive accumulated phase directories from completed milestones\n- gsd-code-review: Review source files changed during a phase for bugs, security issues, and code quality problems\n- gsd-complete-milestone: Archive completed milestone and prepare for next version\n- gsd-config: Configure GSD settings — workflow toggles, advanced knobs, integrations, and model profile\n- gsd-debug: Systematic debugging with persistent state across context resets\n- gsd-discuss-phase: Gather phase context through adaptive questioning before planning.\n- gsd-docs-update: Generate or update project documentation verified against the codebase\n- gsd-eval-review: Audit an executed AI phase's evaluation coverage and produce an EVAL-REVIEW.md remediation plan.\n- gsd-execute-phase: Execute all plans in a phase with wave-based parallelization\n- gsd-explore: Socratic ideation and idea routing — think through ideas before committing to plans\n- gsd-extract-learnings: Extract decisions, lessons, patterns, and surprises from completed phase artifacts\n- gsd-fast: Execute a trivial task inline — no subagents, no planning overhead\n- gsd-forensics: Post-mortem investigation for failed GSD workflows — diagnoses what went wrong.\n- gsd-graphify: Build, query, and inspect the project knowledge graph in .planning/graphs/\n- gsd-health: Diagnose planning directory health and optionally repair issues\n- gsd-help: Show available GSD commands and usage guide\n- gsd-import: Ingest external plans with conflict detection against project decisions before writing anything.\n- gsd-inbox: Triage and review open GitHub issues and PRs against project templates and contribution guidelines.\n- gsd-ingest-docs: Bootstrap or merge a .planning/ setup from existing ADRs, PRDs, SPECs, and docs in a repo.\n- gsd-manager: Interactive command center for managing multiple phases from one terminal\n- gsd-map-codebase: Analyze codebase with parallel mapper agents to produce .planning/codebase/ documents\n- gsd-milestone-summary: Generate a comprehensive project summary from milestone artifacts for team onboarding and review\n- gsd-mvp-phase: Plan a phase as a vertical MVP slice — user story, SPIDR splitting, then plan-phase\n- gsd-new-milestone: Start a new milestone cycle — update PROJECT.md and route to requirements\n- gsd-new-project: Initialize a new project with deep context gathering and PROJECT.md\n- gsd-ns-context: codebase intelligence | map graphify docs learnings\n- gsd-ns-ideate: exploration capture | explore sketch spike spec capture\n- gsd-ns-manage: config workspace | workstreams thread update ship inbox\n- gsd-ns-project: project lifecycle | milestones audits summary\n- gsd-ns-review: quality gates | code review debug audit security eval ui\n- gsd-ns-workflow: workflow | discuss plan execute verify phase progress\n- gsd-pause-work: Create context handoff when pausing work mid-phase\n- gsd-phase: CRUD for phases in ROADMAP.md — add, insert, remove, or edit phases\n- gsd-plan-phase: Create detailed phase plan (PLAN.md) with verification loop\n- gsd-plan-review-convergence: Cross-AI plan convergence loop — replan with review feedback until no HIGH concerns remain.\n- gsd-pr-branch: Create a clean PR branch by filtering out .planning/ commits — ready for code review\n- gsd-profile-user: Generate developer behavioral profile and create Claude-discoverable artifacts\n- gsd-progress: Check progress, advance workflow, or dispatch freeform intent — the unified GSD situational command\n- gsd-quick: Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents\n- gsd-resume-work: Resume work from previous session with full context restoration\n- gsd-review: Request cross-AI peer review of phase plans from external AI CLIs\n- gsd-review-backlog: Review and promote backlog items to active milestone\n- gsd-secure-phase: Retroactively verify threat mitigations for a completed phase\n- gsd-settings: Configure GSD workflow toggles and model profile\n- gsd-ship: Create PR, run review, and prepare for merge after verification passes\n- gsd-sketch: Sketch UI/design ideas with throwaway HTML mockups, or propose what to sketch next (frontier mode)\n- gsd-spec-phase: Clarify WHAT a phase delivers with ambiguity scoring; produces a SPEC.md before discuss-phase.\n- gsd-spike: Spike an idea through experiential exploration, or propose what to spike next (frontier mode)\n- gsd-stats: Display project statistics — phases, plans, requirements, git metrics, and timeline\n- gsd-surface: Toggle which skills are surfaced — apply a profile, list, or disable a cluster without reinstall\n- gsd-thread: Manage persistent context threads for cross-session work\n- gsd-ui-phase: Generate UI design contract (UI-SPEC.md) for frontend phases\n- gsd-ui-review: Retroactive 6-pillar visual audit of implemented frontend code\n- gsd-ultraplan-phase: [BETA] Offload plan phase to Claude Code's ultraplan cloud; review in browser and import back.\n- gsd-undo: Safe git revert. Roll back phase or plan commits using the phase manifest with dependency checks.\n- gsd-update: Update GSD to latest version with changelog display\n- gsd-validate-phase: Retroactively audit and fill Nyquist validation gaps for a completed phase\n- gsd-verify-work: Validate built features through conversational UAT\n- gsd-workspace: Manage GSD workspaces — create, list, or remove isolated workspace environments\n- gsd-workstreams: Manage parallel workstreams — list, create, switch, status, progress, complete, and resume\n- gstack: Router for the gstack skill suite. (gstack)\n- gstack-upgrade: Upgrade gstack to the latest version.\n- guard: Full safety mode: destructive command warnings + directory-scoped edits. (gstack)\n- handoff: Compact the current conversation into a handoff document for another agent to pick up.\n- health: Code quality dashboard. (gstack)\n- improve-codebase-architecture: Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.\n- investigate: Systematic debugging with root cause investigation. (gstack)\n- ios-clean: Remove the DebugBridge SPM package and all #if DEBUG wiring from an iOS app. (gstack)\n- ios-design-review: Visual design audit for iOS apps on real hardware. (gstack)\n- ios-fix: Autonomous iOS bug fixer. (gstack)\n- ios-qa: Live-device iOS QA for SwiftUI apps. (gstack)\n- ios-sync: Regenerate the iOS debug bridge against the latest upstream gstack templates. (gstack)\n- land-and-deploy: Land and deploy workflow. (gstack)\n- landing-report: Read-only queue dashboard for workspace-aware ship. (gstack)\n- learn: Manage project learnings.\n- list-agents: List SPT agents and endpoints reachable from this node. Use when the user says \"list agents\",\n\"who's live\", \"who's listening\", or wants a roster of active perches.\n\n- live: Run a live agent session. For past sessions, restores a summarized context.\n\nEXPLICIT START phrases (route to /sptc:live <id>):\n- \"live as\"\n- \"start live\"\n- \"go live\"\n- \"start a live agent\"\n\nAUTO-RESUME phrases (route to /sptc:live --auto, resumes most-recently-active live agent):\n- continue live work\n- resume live work\n- continue live agent\n- resume live agent\n- live agent continue\n- live agent resume\n- live work continue\n- live work resume\n\nDoes NOT route here (too ambiguous — require BOTH \"live\" AND (\"agent\" or \"work\")):\n- \"keep going\"\n- \"resume work\"\n- \"continue\" (bare)\n\n- make-pdf: Turn any markdown file into a publication-quality PDF. (gstack)\n- mempalace: MemPalace — mine projects and conversations into a searchable memory palace. Use when asked about mempalace, memory palace, mining memories, searching memories, or palace setup.\n- mux-send: Send keystrokes to a psmux terminal session. Use when the user says \"send to\",\n\"type in\", \"send keys to\", \"mux send\", or wants to send input to another terminal\nsession by name.\n\n- office-hours: YC Office Hours — two modes. (gstack)\n- open-gstack-browser: Launch GStack Browser — AI-controlled Chromium with the sidebar extension baked in.\n- pair-agent: Pair a remote AI agent with your browser. (gstack)\n- plan-ceo-review: CEO/founder-mode plan review. (gstack)\n- plan-design-review: Designer's eye plan review — interactive, like CEO and Eng review. (gstack)\n- plan-devex-review: Interactive developer experience plan review. (gstack)\n- plan-eng-review: Eng manager-mode plan review. (gstack)\n- plan-tune: Self-tuning question sensitivity + developer psychographic for gstack (v1: observational). (gstack)\n- propose-issue: Challenge an issue statement before fixing it. Probes scope, root cause, and assumptions\nthrough interactive questioning grounded in the codebase. Use when the user says \"propose issue\",\n\"challenge this bug\", \"question this fix\", \"is this the right problem\", or wants to pressure-test\na problem statement before jumping to implementation.\n\n- qa: Systematically QA test a web application and fix bugs found. (gstack)\n- qa-only: Report-only QA testing. (gstack)\n- ready: Make this Claude Code session reachable for inter-agent messages (register a perch and\nlisten). Use when the user says \"listen as\", \"ready as\", or wants to receive messages from\nother agents.\n\n- retro: Weekly engineering retrospective. (gstack)\n- review: Pre-landing PR review. (gstack)\n- role: Show or edit this endpoint's durable role — its statement of purpose in the mind. Use when the user\nsays \"show my role\", \"edit my role\", \"update my role\", or runs /sptc:role. Pass a directive to change\nit in words (e.g. /sptc:role make it senior); a bare /sptc:role opens an in-input-box editor\nround-trip on a live session; add --include-desc to also edit the service description.\n\n- scrape: Pull data from a web page. (gstack)\n- screenshot-capture: Capture, process, and analyze screenshots of any running application on Windows 10/11. Use this skill whenever the user asks to take a screenshot, capture what's on screen, grab an app window, extract text from a visible app, annotate a screenshot, read what's on screen, OCR a running application, document a UI state, or visually inspect any running program. Also trigger when the user says things like \"show me what [app] looks like\", \"grab that window\", \"read the text in [app]\", \"mark up a screenshot\", \"capture my desktop\", or any task involving visual inspection of running software. This skill handles full-screen captures, individual window captures by app name, OCR text extraction, and image annotation (highlights, arrows, text labels). Even if the user doesn't say \"screenshot\" explicitly, use this skill if they want to see, capture, read, or annotate anything currently displayed on their screen.\n\n- search: Instantly search files and folders on Windows via voidtools Everything 1.5a HTTP JSON API. Use when the user wants to find files by name, path, size, date, or extension across the whole system — much faster than Glob/Grep for filesystem-wide queries. Triggers on \"find file\", \"where is\", \"locate\", \"search my drive\", \"find all .ext files\", \"everything search\".\n- send: Send a message to another SPT agent. Use when the user says \"send to\", \"message\",\n\"tell <agent>\", or when you need to reach or reply to another agent yourself.\n\n- setup: Install or repair spt-core AND activate the claude-spt adapter for this Claude Code session\n(mid-session installer + post-install activation).\n\n- setup-browser-cookies: Import cookies from your real Chromium browser into the headless browse session. (gstack)\n- setup-deploy: Configure deployment settings for /land-and-deploy.\n- setup-gbrain: Set up gbrain for this coding agent: install the CLI, initialize a local PGLite or Supabase brain, register MCP, capture per-remote trust policy. (gstack)\n- ship: Ship workflow: detect + merge base branch, run tests, review diff, bump VERSION, update CHANGELOG, commit, push, create PR. (gstack)\n- signoff: Gracefully shut down your live session, saving a final context summary. Use when the user says\n\"sign off\" or \"graceful stop\", or when you (a live agent) are done and want to go offline cleanly.\n\n- skillify: Codify the most recent successful /scrape flow into a permanent browser-skill on disk. (gstack)\n- spec: Turn vague intent into a precise, executable spec in five phases. (gstack)\n- spt-endpoint: Hosts an adapterless SPT endpoint perch inside Oh My Pi and reliably surfaces incoming messages through harness background-job completion. Use when asked to run, host, start, or listen as an SPT endpoint in OMP, especially when an adapter-backed endpoint or a never-ending `spt ready` listener is unsuitable.\n- subnet: Manage subnet membership — create a subnet, show a pairing code to invite a machine, or join\nan existing one. Use when the user wants to pair machines, set up a subnet, or reach agents\nacross machines. Cross-machine /sptc:send and live agents depend on it.\n\n- sync-gbrain: Keep gbrain current with this repo's code and refresh agent search guidance in CLAUDE.md. Wraps the gstack-gbrain-sync orchestrator with state (gstack)\n- to-prd: Turn the current conversation context into a PRD and publish it to the project issue tracker. Use when user wants to create a PRD from the current context.\n- trace: Find old conversations in Claude Code session history. Use when the user says\n\"find the conversation where\", \"when did we discuss\", \"trace back to\", or wants\nto locate a past session by topic, command, commit, or keyword.\n\n- traceable-reqs: Install or update the traceable-reqs CLI and apply it correctly in host repos: author manifests, place tags near evidence, audit scan roots, interpret findings, and answer coverage questions through the CLI.\n- unfreeze: Clear the freeze boundary set by /freeze, allowing edits to all directories again. (gstack)\n- version: Report the spt-core-tracked adapter version (the version-of-truth, not the marketplace plugin\nversion). Use when the user asks the spt or adapter version, or runs /sptc:version.\n\n- win-marketplace-add: Add a plugin marketplace on Windows, bypassing the EBUSY rename bug. Use when the user wants to add a marketplace, runs \"/plugin marketplace add\" and gets an EBUSY error, or needs to register a marketplace that was manually cloned. Trigger on: \"add marketplace\", \"plugin marketplace add\", \"EBUSY marketplace\", \"register marketplace\", \"marketplace not found\".\n\n- write-a-skill: Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.\n</skills>\n# Internal URLs\nSpecial URLs for internal resources; with most FS/bash tools they auto-resolve to FS paths.\n- `skill://<name>`: skill instructions; `/<path>` = file within\n- `rule://<name>`: rule details\n- `agent://<id>`: agent output artifact; `/<path>` extracts a JSON field\n- `artifact://<id>`: artifact content\n- `local://<name>.md`: plan artifacts or shared content for subagents\n- `mcp://<uri>`: MCP resource\n- `issue://<N>` (or `issue://<owner>/<repo>/<N>`): GitHub issue, disk-cached. Bare lists recent issues; `?state=open|closed|all&limit=&author=&label=`.\n- `pr://<N>` (or `pr://<owner>/<repo>/<N>`): GitHub PR, same cache; `?comments=0` drops comments. Bare lists recent PRs; `?state=open|closed|merged|all&limit=&author=&label=`.\n- `omp://`: harness docs; AVOID unless the user asks about the harness itself.\n\n# Tool Inventory\n- Read: `read`\n- Grep: `grep`\n- Glob: `glob`\n- Web Search: `web_search`\n- Submit Result: `yield`\n- IRC: `irc`\n- mempalace:mempalace/mempalace_add_drawer: `mcp__mempalace_mempalace_mempalace_add_drawer`\n- mempalace:mempalace/mempalace_check_duplicate: `mcp__mempalace_mempalace_mempalace_check_duplicate`\n- mempalace:mempalace/mempalace_delete_drawer: `mcp__mempalace_mempalace_mempalace_delete_drawer`\n- mempalace:mempalace/mempalace_diary_read: `mcp__mempalace_mempalace_mempalace_diary_read`\n- mempalace:mempalace/mempalace_diary_write: `mcp__mempalace_mempalace_mempalace_diary_write`\n- mempalace:mempalace/mempalace_find_tunnels: `mcp__mempalace_mempalace_mempalace_find_tunnels`\n- mempalace:mempalace/mempalace_get_aaak_spec: `mcp__mempalace_mempalace_mempalace_get_aaak_spec`\n- mempalace:mempalace/mempalace_get_taxonomy: `mcp__mempalace_mempalace_mempalace_get_taxonomy`\n- mempalace:mempalace/mempalace_graph_stats: `mcp__mempalace_mempalace_mempalace_graph_stats`\n- mempalace:mempalace/mempalace_kg_add: `mcp__mempalace_mempalace_mempalace_kg_add`\n- mempalace:mempalace/mempalace_kg_invalidate: `mcp__mempalace_mempalace_mempalace_kg_invalidate`\n- mempalace:mempalace/mempalace_kg_query: `mcp__mempalace_mempalace_mempalace_kg_query`\n- mempalace:mempalace/mempalace_kg_stats: `mcp__mempalace_mempalace_mempalace_kg_stats`\n- mempalace:mempalace/mempalace_kg_timeline: `mcp__mempalace_mempalace_mempalace_kg_timeline`\n- mempalace:mempalace/mempalace_list_rooms: `mcp__mempalace_mempalace_mempalace_list_rooms`\n- mempalace:mempalace/mempalace_list_wings: `mcp__mempalace_mempalace_mempalace_list_wings`\n- mempalace:mempalace/mempalace_search: `mcp__mempalace_mempalace_mempalace_search`\n- mempalace:mempalace/mempalace_status: `mcp__mempalace_mempalace_mempalace_status`\n- mempalace:mempalace/mempalace_traverse: `mcp__mempalace_mempalace_mempalace_traverse`\n- GenerateImage: `generate_image`\n\nTOOL POLICY\n==============\n\n# General\nUse tools whenever they improve correctness, completeness, or grounding.\n- You MUST complete the task using available tools.\n- SHOULD resolve prerequisites before acting.\n- NEVER stop at the first plausible answer if another call would cut uncertainty.\n- Empty, partial, or suspiciously narrow lookup? Retry with a different strategy.\n- SHOULD parallelize independent calls.\n# Tool I/O\n- Prefer relative paths for `path`-like fields.\n- Most tools take `i`: a concise intent, present participle, 2–6 words, no period, capitalized.\n# Specialized Tools\nYou MUST use the specialized tool over its shell equivalent:\n- File or directory reads → `read` (a directory path lists entries).\n- Regex search → `grep`, not `grep`, `rg`, or `awk`.\n- Globbing → `glob`, not `ls **/*.ext` or `fd`.\n# Exploration\nYou NEVER open a file hoping. Hope is not a strategy.\n- You MUST load only what's necessary; AVOID reading files or sections you don't need.\n- Use `grep` to locate targets.\n- Use `glob` to map structure.\n- Use `read` with offset/limit instead of whole-file reads.\n# Delegation\n\nEXECUTION WORKFLOW\n==============\n\n# 1. Scope\n- Read relevant skills first.\n- For multi-file work, plan before touching files; research existing code and conventions first.\n\n# 2. Research Before Editing\n- Read sections, not snippets. You MUST reuse existing patterns; a second convention beside an existing one is PROHIBITED.\n\n- Re-read before acting if a tool fails or a file changed since you read it.\n\n# 3. Decompose\n- Update todos as you go; skip them for trivial requests. Marking a todo done is a transition: start the next in the same turn.\n- NEVER abandon phases under scope pressure—delegate, don't shrink.\n\n- Plan only what makes the request work. Cleanup—changelog, tests, docs—is NOT planned up front; it belongs to the final phase below.\n\n# 4. Implement\n- Fix problems at the source. Remove obsolete code—no leftover comments, aliases, or re-exports.\n- Prefer updating existing files over creating new ones.\n- Review changes from the user's perspective.\n- Grep instead of guessing.\n- Don't run destructive git commands or delete code you didn't write.\n\n# 5. Verify\n- NEVER yield non-trivial work without proof: tests, E2E, browsing, or QA.\n- Every test MUST defend an observable contract and fail on a plausible bug.\n- Test behavior, boundaries, invariants, transitions, precedence, and real errors—not plumbing, source text, or incidental defaults.\n- Match existing conventions; keep tests deterministic, isolated, and full-suite safe.\n- Run only touched tests; small/no-test changes still REQUIRE a focused behavioral smoke test.\n\n# 6. Cleanup\nChangelog, tests, docs, and removing scaffolding are the LAST phase—NEVER skipped, but gated on the request demonstrably working.\n\n- NEVER start, pre-plan, or pre-allocate todos for cleanup before you've made the request work and smoke-tested it. Until then, every edit serves correctness; housekeeping NEVER steers the design.\n- Once your smoke test confirms “it works,” do the cleanup in full before yielding.\n\nDELIVERY CONTRACT\n==============\n\n<contract>\nInviolable.\n- NEVER yield unless the deliverable is complete. A phase boundary, todo flip, or sub-step is NEVER a yield point—continue in the same turn.\n- NEVER fabricate outputs. Claims about code, tools, tests, docs, or sources MUST be grounded.\n- NEVER substitute an easier or more familiar problem:\n  - Don't infer extra scope—retries, validation, telemetry, abstraction “while you're at it”—because it changes the contract.\n  - Don't solve the symptom—suppress a warning or exception, special-case an input—unless asked. Do the real ask.\n- NEVER ask for what tools, repo context, or files can provide.\n- NEVER punt half-solved work back.\n- Default to clean cutover: migrate every caller; leave no shims, aliases, or deprecated paths.\n</contract>\n\n<completeness>\n- “Done” means the deliverable behaves as specified end to end—not that a scaffold compiles or a narrowed test passes.\n- A named plan, phase list, checklist, or spec MUST satisfy every acceptance criterion. A plausible subset is failure, not partial success.\n- NEVER silently shrink scope. Reduce scope only with explicit user approval in this conversation; otherwise do the full work—exhaust every tool and angle.\n- NEVER ship stubs, placeholders, mocks, no-ops, fake fallbacks, or `TODO: implement` as delivered work. If real implementation needs unavailable information, state the missing prerequisite and implement everything else.\n- NEVER relabel unfinished work—“scaffold,” “MVP,” “v1,” “foundation,” “follow-up”—to imply completion. Not done? Say so.\n</completeness>\n\n<evidence-and-output>\n- Output format MUST match the ask.\n- Every claim about code, tools, tests, docs, or sources MUST be grounded.\n- Mark any claim not directly observed or established as `[INFERENCE]`.\n- Verification claims MUST match what was exercised, preferably smoke tested.\n- No required tool lookup may be skipped when it would cut uncertainty.\n- Be brief in prose, not in evidence, verification, or blocking details.\n</evidence-and-output>\n\n<yielding>\nBefore yielding, verify:\n- All requested deliverables are complete; no partial implementation is presented as complete.\n- All affected artifacts—callsites, tests, docs—are updated or intentionally left unchanged.\n- The output and evidence requirements above are satisfied.\n\nBefore declaring blocked:\n- Be sure the information is unreachable through tools, context, or anything in reach. One failing check does not mean blocked—finish all remaining work first.\n- Still stuck? State exactly what's missing and what you tried.\n</yielding>\n<critical>\n- NEVER narrate or consider session limits, token or tool budgets, effort estimates, or how much you can finish. Not your concern—start as if unbounded; execute or delegate.\n- NEVER re-audit an applied edit; NEVER run git subcommands as routine validation. Tool results are THE verification.\n</critical>\n\nROLE\n===================================\n\nInvestigate the codebase rapidly. Return structured findings another agent can use without re-reading everything.\n\n<directives>\n- You MUST use tools for broad pattern matching / code search as much as possible.\n- You SHOULD invoke tools in parallel—this is a short investigation, and you are supposed to finish in a few seconds.\n- If a search returns empty results, you MUST try at least one alternate strategy (different pattern, broader path, or AST search) before concluding the target doesn't exist.\n</directives>\n\n<thoroughness>\nYou MUST infer the thoroughness from the task; default to medium:\n- **Quick**: Targeted lookups, key files only\n- **Medium**: Follow imports, read critical sections\n- **Thorough**: Trace all dependencies, check tests/types.\n</thoroughness>\n\n<procedure>\n1. Locate relevant code using tools.\n2. Read key sections. NEVER read full files unless they're tiny.\n3. Identify types/interfaces/key functions.\n4. Note dependencies between files.\n</procedure>\n\n<critical>\nYou MUST operate as read-only. You NEVER write, edit, or modify files, nor execute any state-changing commands, via git, build system, package manager, etc.\nYou MUST keep going until complete.\n</critical>\n\nYou are specializing as: **Runtime Telemetry Investigator**. Bring exactly that expertise to the assignment — let it shape how you investigate, decide, and what you produce.\n\nCONTEXT\n===================================\n\n# Goal\nDiagnose a sporadic 20-30 second PTY stall on Windows with about five spt-hosted PTYs, first observed after v0.34.0, and produce a source-grounded report for Doyle.\n# Constraints\nRead-only investigation. Do not mutate endpoints, files, daemon, sessions, or durable state. Skip formatters, linters, and tests. Current deployed broker/brain is v0.34.0 on HFENDULEAM. Preserve live sessions. Distinguish local RC/view transport stalls from child ConPTY output stalls and broker-wide IPC stalls.\n# Contract\nReturn exact evidence, falsifiable mechanism, v0.33-to-v0.34 regression relation, source locations, and focused fix/test design. Coordinate overlaps through IRC.\nCOOP\n===================================\n\nYou are operating on a piece of work assigned to you by the main agent.\n# IRC Peers\nYou can reach other live agents via the `irc` tool. Your id is `LiveLogRca`. Currently visible peers:\n- `Main` — main (main, running)\n- `RefreshLifecycle` — Daemon Lifecycle Investigator (sub, parked)\n- `PtyControl` — PTY Transport Investigator (sub, parked)\n- `ReproHarness` — Integration Test Investigator (sub, parked)\n- `HyphenMessage` — CLI Parsing Investigator (sub, parked)\n- `ElevatedRc` — Remote Control Investigator (sub, parked)\n- `ElevatedMessaging` — Messaging Lifecycle Investigator (sub, parked)\n- `RcSplitBrain` — Registry Session Investigator (sub, parked)\n- `ElevatedHosted` — Windows Token Investigator (sub, parked)\n- `ShortformDifferential` — Delivery Differential Investigator (sub, parked)\n- `AdapterFreshSemantics` — Claude Adapter Investigator (sub, parked)\n- `PerriDurableState` — State Forensics Investigator (sub, parked)\n- `CoreFreshSemantics` — Core Lifecycle Investigator (sub, parked)\n- `RestStateRca` — Endpoint Lifecycle Investigator (sub, parked)\n- `CreateNoopRca` — CLI Semantics Investigator (sub, parked)\n- `ControlledStampRca` — Broker Control-State Investigator (sub, parked)\n- `EmphRestartRca` — Daemon Restart Investigator (sub, parked)\n- `HarnessExitRca` — Harness Lifecycle Investigator (sub, parked)\n- `V034DiffRca` — Regression Archaeologist (sub, running)\n- `V034ReleaseRca` — Release Contract Investigator (sub, running)\n- `PtyPathRca` — PTY Concurrency Investigator (sub, running)\nIdle/parked peers are not gone: messaging them wakes (or revives) them.\n\nUse `irc` only for quick coordination, never long-form content. Address peers by id or use `\"all\"` to broadcast.\n- Discovery: the roster above shows each peer's role and what it is doing now; `irc` op:\"list\" refreshes it.\n- Coordination: before you edit a file or start work a sibling may already own, message that peer first — overlapping edits collide.\n- Follow-up: answer a peer's question with a short reply (set `replyTo`); use `await` only when you genuinely cannot proceed without the answer.\n\nCOMPLETION\n===================================\n\nNo TODO tracking, no progress updates. Execute; report results with `yield`.\n\nWhile work remains, you MUST continue with another tool call — investigate, edit, run, verify. Save narrative for a terminal `yield` unless you intentionally record an incremental section.\n\nYield protocol:\n- Omit `type` for the normal single terminal structured result in `result.data`.\n- Use non-empty `type: string[]` for incremental, non-terminal sections; calls accumulate by section.\n- Use `type: string` for a terminal result; if data is omitted, your last assistant turn becomes the raw final result.\n\nThis is your only way to return a final result. For structured results, you NEVER put JSON in plain text or substitute a text summary for `result.data`.\n\nYour terminal `yield` MUST use exactly this shape — the schema fields go inside `result.data`, NEVER at the top level and NEVER as a stringified summary:\n```ts\nresult: {\n  data: {\n    summary: string;\n    files: { path: string; description: string; }[];\n    architecture: string;\n  };\n}\n```\n\nGiving up is a last resort. If truly blocked, you MUST terminal-yield `result.error` describing what you tried and the exact blocker.\nYou NEVER give up due to uncertainty, missing information obtainable via tools or repo context, or needing a design decision you can derive yourself.\n\nYou MUST keep going until this ticket is closed. This matters.\n\nPROJECT\n===================================\n\n<workstation>\n- OS: win32 10.0.26200\n- Distro: Windows_NT\n- Kernel: Windows 11 Pro\n- Arch: x64\n- GPU: Parsec Virtual Display Adapter\n- Terminal: Windows Terminal\n- Model: openai-codex/gpt-5.6-sol\n</workstation>\n\n<context>\nYou MUST follow the context files below for all tasks:\n<file path=\"C:\\Users\\decid\\.claude\\CLAUDE.md\">\n## Reference Documents\n\nThe `~/.claude/reference_docs/` directory contains reference guides available across all projects.\n\n- **[claude-code-hooks.md](reference_docs/claude-code-hooks.md)** -- Complete Claude Code hooks reference: all 27 event types, input/output JSON schemas, matcher patterns, exit code behavior, environment variables, and caveats. Consult this when building or debugging hooks.\n</file>\n</context>\nThe context files above are loaded automatically. You NEVER `grep`/`glob` for `AGENTS.md`, `CLAUDE.md`, `.cursorrules`, or similar agent/context files — the relevant ones are already in your context; any others are noise.\nToday is 2026-07-16, and the current working directory is 'C:/Users/decid/Documents/projects/spt-core'.\n\n<critical>\n- Each response MUST advance the task. There is no stopping condition other than completion.\n- You MUST default to informed action; do not ask for confirmation when tools or repo context can answer.\n- You MUST verify the effect of significant behavioral changes before yielding: run the specific test, command, or scenario that covers your change.\n</critical>","task":"Complete the assignment below, thoroughly:\n\n# Target\nCurrent v0.34 daemon/broker logs and runtime status on HFENDULEAM; relevant files under AppData/Local/spt-core/logs and non-mutating CLI status surfaces. Non-goal: attaching, sending input, restarting, or modifying sessions.\n# Change\nCorrelate 20-30 second gaps with broker/brain IPC lifecycle, dispatch failures, pump heartbeat, reconnect, subscriber replay, timeouts, resource pressure, or periodic jobs. Determine whether stalls are broker-wide or endpoint-local where evidence permits.\n# Acceptance\nReturn timestamped log evidence, gap durations, process/runtime facts, and ranked hypotheses with predictions for a live latency probe.","tools":["read","grep","glob","web_search","yield","irc","mcp__mempalace_mempalace_mempalace_add_drawer","mcp__mempalace_mempalace_mempalace_check_duplicate","mcp__mempalace_mempalace_mempalace_delete_drawer","mcp__mempalace_mempalace_mempalace_diary_read","mcp__mempalace_mempalace_mempalace_diary_write","mcp__mempalace_mempalace_mempalace_find_tunnels","mcp__mempalace_mempalace_mempalace_get_aaak_spec","mcp__mempalace_mempalace_mempalace_get_taxonomy","mcp__mempalace_mempalace_mempalace_graph_stats","mcp__mempalace_mempalace_mempalace_kg_add","mcp__mempalace_mempalace_mempalace_kg_invalidate","mcp__mempalace_mempalace_mempalace_kg_query","mcp__mempalace_mempalace_mempalace_kg_stats","mcp__mempalace_mempalace_mempalace_kg_timeline","mcp__mempalace_mempalace_mempalace_list_rooms","mcp__mempalace_mempalace_mempalace_list_wings","mcp__mempalace_mempalace_mempalace_search","mcp__mempalace_mempalace_mempalace_status","mcp__mempalace_mempalace_mempalace_traverse","generate_image"],"spawns":"","readSummarize":false,"outputSchema":{"properties":{"summary":{"metadata":{"description":"Brief summary of findings and conclusions"},"type":"string"},"files":{"metadata":{"description":"Files examined with relevant code references"},"elements":{"properties":{"path":{"metadata":{"description":"Project-relative path or paths to the most relevant code reference(s), optionally suffixed with line ranges like `:12-34` when relevant"},"type":"string"},"description":{"metadata":{"description":"Section contents"},"type":"string"}}}},"architecture":{"metadata":{"description":"Brief explanation of how pieces connect"},"type":"string"}}}}
{"type":"message","id":"a21801c4","parentId":"e9a9aced","timestamp":"2026-07-17T00:15:38.296Z","message":{"role":"user","content":[{"type":"text","text":"Complete the assignment below, thoroughly:\n\n# Target\nCurrent v0.34 daemon/broker logs and runtime status on HFENDULEAM; relevant files under AppData/Local/spt-core/logs and non-mutating CLI status surfaces. Non-goal: attaching, sending input, restarting, or modifying sessions.\n# Change\nCorrelate 20-30 second gaps with broker/brain IPC lifecycle, dispatch failures, pump heartbeat, reconnect, subscriber replay, timeouts, resource pressure, or periodic jobs. Determine whether stalls are broker-wide or endpoint-local where evidence permits.\n# Acceptance\nReturn timestamped log evidence, gap durations, process/runtime facts, and ranked hypotheses with predictions for a live latency probe."}],"attribution":"agent","timestamp":1784247338286}}
{"type":"message","id":"afe4eee0","parentId":"a21801c4","timestamp":"2026-07-17T00:15:51.188Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Mapping directories and scripts**\n\n**Inspecting skill and log directories**"},{"type":"toolCall","id":"call_tCx11G96RzSSj0oHw6CBtERv|fc_05a4d8ea8a10ef0b016a597436ecf08198ac6274605db4d189","name":"read","arguments":{"i":"Loading diagnosis workflow","path":"skill://diagnose","selector":null}},{"type":"toolCall","id":"call_rLyMhI8OEssNBjSuKmxvQejI|fc_05a4d8ea8a10ef0b016a597436ed0481988f04bfaa1087a545","name":"read","arguments":{"i":"Listing current daemon logs","path":"C:/Users/decid/AppData/Local/spt-core/logs","selector":null}},{"type":"toolCall","id":"call_bRPgYHKNiaaIQ6CZDjKq5mtc|fc_05a4d8ea8a10ef0b016a597436ed14819899c39257d8e1297a","name":"glob","arguments":{"i":"Locating runtime status code","path":"src/**/*.{ts,js};packages/**/*.{ts,js};**/*status*.{ts,js}","hidden":true,"gitignore":true,"limit":200}},{"type":"toolCall","id":"call_0Q2INWshG54CUipOqqoAMGWH|fc_05a4d8ea8a10ef0b016a597436ed20819891efcf6fffff1a5f","name":"irc","arguments":{"i":"Coordinating telemetry overlap","op":"send","to":"PtyPathRca","message":"I’m investigating live v0.34 broker/brain logs + runtime gaps on HFENDULEAM. Please send any known heartbeat/reconnect/timeouts/log markers or exact PTY stall timestamps; I’ll avoid source PTY path overlap.","replyTo":null,"await":false,"from":null,"timeoutMs":null,"peek":null}},{"type":"toolCall","id":"call_QNG7bXdVToaPzo7QAWXtg8bR|fc_05a4d8ea8a10ef0b016a597436ed3481988974920e618c8d2a","name":"irc","arguments":{"i":"Coordinating regression overlap","op":"send","to":"V034DiffRca","message":"I’m correlating live v0.34 logs/runtime only. Please send changed v0.34 lifecycle/timeout/job symbols or source locations relevant to broker/brain gaps; I’ll avoid diff archaeology.","replyTo":null,"await":false,"from":null,"timeoutMs":null,"peek":null}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":14879,"output":487,"cacheRead":0,"cacheWrite":0,"totalTokens":15366,"reasoningTokens":148,"cost":{"input":0.074395,"output":0.01461,"cacheRead":0,"cacheWrite":0,"total":0.089005}},"stopReason":"toolUse","timestamp":1784247338344,"responseId":"resp_05a4d8ea8a10ef0b016a59742ab630819899f72944665d381c","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a59742bb57881988747d3048fc8af36","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXQ2w9TOM8Fq8Vl37eoaiwY9mUNIckf7HgRyEGqHPj2XHIPYtKYtf8gIgiECfYj6GljtLW25_A-bURnGMzg3Ao0ENcSYQGPhKTovO719wE6xRlx4fq6wmMTnp1LGyB9Wr1yv8W6qTy8DHAKwTqkcIan9PbYvRRsLjsImLKOUPG-n4U05RmmOE4SECC9X0sn0f7SxC5CTetRDG1lqNKNdmCOPRkv5-pOFxDYyyfoqvamGIcvKSU26ht_JIwnutty3S1chrGIZX7LICgueV0kL9OFTZJ9yIC08hB_rX358cQBZrxRsGGo2JxG4evh28Bwlq8CJzi0X0TAFCeY4He1APR7XRI04__VsRpRaxBSXCOA_UhMPXdigQnfjk-jbKzVB8EB5CPtgklhEo6zd9WXrjKllchXyBi3ksNykr2eVji3uqJY2a46lLkdHG6cHh2vtpJxB6cDQ6zgI5KS6p2CMyqj3FbA2ICRm9w9fbBjRW-tdlMPlYxYUwVMyjBwQAHmbUfMOVodRQeIW6_ckX5xC8xz3-D22DmjCJ3E9ncNcDkKwQ_UdXRoFtbfSTXzH47B79ldIQfaCi6_gt0KZXy7YxVMW7ZD7_3UJFYLLASlrncgaIA0jIQxxUEhWr9pm5T1xwY029wwsehwZq44eW6UJd4K93mFFu1SDIM74KO_-8-LDXTUxm4TnTGlTyiQC8JV9_f0RA4e-HHz8-TnVqIvPvoAn8N12eXAoLSbk55zDCy8VmqqTJN3h6gVo2-PK2jq92dpm71wiH7uTHoRUEKKhJBunibYbnFR6Jr__kzN74B4ZNhA6A36boVqpNagWX-XKu4aFDsYqnsZGyg4Uf0OWOBWO8b9F8MdMdiUpWvvWduXGr9J8jZG7SkjP2NrC1LoF98LwnMBAWtEzAAH14NBEH74A9lNSaB8ZsTXJo_y83eUITcF-h0iTcVDw-DRYa2c3WB6wy5Ozn2XoUJEUxvviXnnibHpwp1GG4E8PHhtQ--erA-jPllVM8Q4gsVn5i13OjkoPj3KWO_f8qPtrpdOeIzR1y0dKcUFIFxy3J_kPiEDKYUlMWt40jSmzLvJnmFvkbUQxMdZ21EMY8ReNve7ZSUS6FTCkOSHr019_MOBL73dq9dJ_Cq4wVYSbJdUVDYxgCa70RgjMwqwzO-RDpz6J6UdQ7y5rdHFykW-vDgmGvLsAm8puTdYEjzUWbfxrahZNuNxBnZvM3ZAE9lBbK-ptoZGw3Q7qJ1ded2npSnElaGUlNhK_xOlCHoFB-MNCPNJEgnBe1s1eE6Rvssn6wzEMT-6ScG1rTQMKhkPiCRUi8trTjeiLveGhlYHfgUT3dX2mCXCRc3YfODCQ1IPEo9GOnoAF6bdEuuava9AX45i1awrEBIcLKnekTzO00-FLSyy5KasweZH7deTuAeeaELRODz5lfZ4GlV2DjqV5k5MVyHwkqdJ2J0noE4yd2Ik6G97gy0EK02aIxr2gkndiY4_RhWnchtMb-TFs5mlVuGCcA1J_TBnisTwW9sPfStAcav2SHKEX06VpUqTM-UzOwe-M9nT-6ziOQFqLQmJYTJLWWksa77IXtImwxop76NJTlrRJQaYrDOkonSizCvchpNy9m9WMVfsGgV4f2qM6ryEvQ2TGKF_J1i0M9RbElNrJlGs1LDI9q4xQBv8MuFYaGAfksCbzuoWwoe7w9KgiNpyV0g3XEWCV5ljXvpPdfo7dOaPPlAgaFDT-BXXpPV7RkirvZPp1dDOFXJtsuyrxXQz1xifyWv7F_juUEyucFN5jXXvzthKLnxU4ErqcHsnWnN_UkK_WZzSH-qaw_G8BmbzU_yQ8PCthcJ4AzSFQT-YMSjAeh3M9eAtVij1JSRMw1mt-WlSyYKvWkganaRyP9Ok8eIjyh8RJ5_uTi_x3IePvcWNHY5v1","summary":[{"type":"summary_text","text":"**Mapping directories and scripts**"},{"type":"summary_text","text":"**Inspecting skill and log directories**"}]},{"id":"fc_05a4d8ea8a10ef0b016a597436ecf08198ac6274605db4d189","type":"function_call","status":"completed","arguments":"{\"i\":\"Loading diagnosis workflow\",\"path\":\"skill://diagnose\",\"selector\":null}","call_id":"call_tCx11G96RzSSj0oHw6CBtERv","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a597436ed0481988f04bfaa1087a545","type":"function_call","status":"completed","arguments":"{\"i\":\"Listing current daemon logs\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs\",\"selector\":null}","call_id":"call_rLyMhI8OEssNBjSuKmxvQejI","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a597436ed14819899c39257d8e1297a","type":"function_call","status":"completed","arguments":"{\"i\":\"Locating runtime status code\",\"path\":\"src/**/*.{ts,js};packages/**/*.{ts,js};**/*status*.{ts,js}\",\"hidden\":true,\"gitignore\":true,\"limit\":200}","call_id":"call_bRPgYHKNiaaIQ6CZDjKq5mtc","name":"glob"},{"id":"fc_05a4d8ea8a10ef0b016a597436ed20819891efcf6fffff1a5f","type":"function_call","status":"completed","arguments":"{\"i\":\"Coordinating telemetry overlap\",\"op\":\"send\",\"to\":\"PtyPathRca\",\"message\":\"I’m investigating live v0.34 broker/brain logs + runtime gaps on HFENDULEAM. Please send any known heartbeat/reconnect/timeouts/log markers or exact PTY stall timestamps; I’ll avoid source PTY path overlap.\",\"replyTo\":null,\"await\":false,\"from\":null,\"timeoutMs\":null,\"peek\":null}","call_id":"call_0Q2INWshG54CUipOqqoAMGWH","name":"irc"},{"id":"fc_05a4d8ea8a10ef0b016a597436ed3481988974920e618c8d2a","type":"function_call","status":"completed","arguments":"{\"i\":\"Coordinating regression overlap\",\"op\":\"send\",\"to\":\"V034DiffRca\",\"message\":\"I’m correlating live v0.34 logs/runtime only. Please send changed v0.34 lifecycle/timeout/job symbols or source locations relevant to broker/brain gaps; I’ll avoid diff archaeology.\",\"replyTo\":null,\"await\":false,\"from\":null,\"timeoutMs\":null,\"peek\":null}","call_id":"call_QNG7bXdVToaPzo7QAWXtg8bR","name":"irc"}]},"duration":12821.270000003278,"ttft":1365.4043000042439,"contextSnapshot":{"promptTokens":14879,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_tCx11G96RzSSj0oHw6CBtERv|fc_05a4d8ea8a10ef0b016a597436ecf08198ac6274605db4d189","toolName":"read","startedAt":"2026-07-17T00:15:51.189Z","args":{"path":"skill://diagnose"},"intent":"Loading diagnosis workflow"},"id":"bddb22cc","parentId":"afe4eee0","timestamp":"2026-07-17T00:15:51.189Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_rLyMhI8OEssNBjSuKmxvQejI|fc_05a4d8ea8a10ef0b016a597436ed0481988f04bfaa1087a545","toolName":"read","startedAt":"2026-07-17T00:15:51.189Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs"},"intent":"Listing current daemon logs"},"id":"39a35af6","parentId":"bddb22cc","timestamp":"2026-07-17T00:15:51.189Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_bRPgYHKNiaaIQ6CZDjKq5mtc|fc_05a4d8ea8a10ef0b016a597436ed14819899c39257d8e1297a","toolName":"glob","startedAt":"2026-07-17T00:15:51.189Z","args":{"path":"src/**/*.{ts,js};packages/**/*.{ts,js};**/*status*.{ts,js}"},"intent":"Locating runtime status code"},"id":"1117ea97","parentId":"39a35af6","timestamp":"2026-07-17T00:15:51.189Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_0Q2INWshG54CUipOqqoAMGWH|fc_05a4d8ea8a10ef0b016a597436ed20819891efcf6fffff1a5f","toolName":"irc","startedAt":"2026-07-17T00:15:51.189Z","intent":"Coordinating telemetry overlap"},"id":"b93db026","parentId":"1117ea97","timestamp":"2026-07-17T00:15:51.189Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_QNG7bXdVToaPzo7QAWXtg8bR|fc_05a4d8ea8a10ef0b016a597436ed3481988974920e618c8d2a","toolName":"irc","startedAt":"2026-07-17T00:15:51.189Z","intent":"Coordinating regression overlap"},"id":"67f65bc8","parentId":"b93db026","timestamp":"2026-07-17T00:15:51.189Z"}
{"type":"message","id":"92dde416","parentId":"67f65bc8","timestamp":"2026-07-17T00:15:51.189Z","message":{"role":"toolResult","toolCallId":"call_0Q2INWshG54CUipOqqoAMGWH|fc_05a4d8ea8a10ef0b016a597436ed20819891efcf6fffff1a5f","toolName":"irc","content":[{"type":"text","text":"Delivered to 1 peer(s):\n- PtyPathRca: injected"}],"details":{"op":"send","from":"LiveLogRca","to":"PtyPathRca","receipts":[{"to":"PtyPathRca","outcome":"injected"}]},"isError":false,"timestamp":1784247351189}}
{"type":"message","id":"3c7e80b8","parentId":"92dde416","timestamp":"2026-07-17T00:15:51.189Z","message":{"role":"toolResult","toolCallId":"call_QNG7bXdVToaPzo7QAWXtg8bR|fc_05a4d8ea8a10ef0b016a597436ed3481988974920e618c8d2a","toolName":"irc","content":[{"type":"text","text":"Delivered to 1 peer(s):\n- V034DiffRca: injected"}],"details":{"op":"send","from":"LiveLogRca","to":"V034DiffRca","receipts":[{"to":"V034DiffRca","outcome":"injected"}]},"isError":false,"timestamp":1784247351189}}
{"type":"message","id":"77649587","parentId":"3c7e80b8","timestamp":"2026-07-17T00:15:51.193Z","message":{"role":"toolResult","toolCallId":"call_rLyMhI8OEssNBjSuKmxvQejI|fc_05a4d8ea8a10ef0b016a597436ed0481988f04bfaa1087a545","toolName":"read","content":[{"type":"text","text":".\n  - daemon.stderr.log    4.4MB     27m ago\n  - daemon.stderr.log.1  12.3MB    3h ago"}],"details":{"isDirectory":true,"resolvedPath":"C:\\Users\\decid\\AppData\\Local\\spt-core\\logs","meta":{"source":{"type":"path","value":"C:\\Users\\decid\\AppData\\Local\\spt-core\\logs"}}},"isError":false,"timestamp":1784247351193}}
{"type":"message","id":"ec33488e","parentId":"77649587","timestamp":"2026-07-17T00:15:51.194Z","message":{"role":"toolResult","toolCallId":"call_tCx11G96RzSSj0oHw6CBtERv|fc_05a4d8ea8a10ef0b016a597436ecf08198ac6274605db4d189","toolName":"read","content":[{"type":"text","text":"---\nname: diagnose\ndescription: Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says \"diagnose this\" / \"debug this\", reports a bug, says something is broken/throwing/failing, or describes a performance regression.\n---\n\n# Diagnose\n\nA discipline for hard bugs. Skip phases only when explicitly justified.\n\nWhen exploring the codebase, use the project's domain glossary to get a clear mental model of the relevant modules, and check ADRs in the area you're touching.\n\n## Phase 1 — Build a feedback loop\n\n**This is the skill.** Everything else is mechanical. If you have a fast, deterministic, agent-runnable pass/fail signal for the bug, you will find the cause — bisection, hypothesis-testing, and instrumentation all just consume that signal. If you don't have one, no amount of staring at code will save you.\n\nSpend disproportionate effort here. **Be aggressive. Be creative. Refuse to give up.**\n\n### Ways to construct one — try them in roughly this order\n\n1. **Failing test** at whatever seam reaches the bug — unit, integration, e2e.\n2. **Curl / HTTP script** against a running dev server.\n3. **CLI invocation** with a fixture input, diffing stdout against a known-good snapshot.\n4. **Headless browser script** (Playwright / Puppeteer) — drives the UI, asserts on DOM/console/network.\n5. **Replay a captured trace.** Save a real network request / payload / event log to disk; replay it through the code path in isolation.\n6. **Throwaway harness.** Spin up a minimal subset of the system (one service, mocked deps) that exercises the bug code path with a single function call.\n7. **Property / fuzz loop.** If the bug is \"sometimes wrong output\", run 1000 random inputs and look for the failure mode.\n8. **Bisection harness.** If the bug appeared between two known states (commit, dataset, version), automate \"boot at state X, check, repeat\" so you can `git bisect run` it.\n9. **Differential loop.** Run the same input through old-version vs new-version (or two configs) and diff outputs.\n10. **HITL bash script.** Last resort. If a human must click, drive _them_ with `scripts/hitl-loop.template.sh` so the loop is still structured. Captured output feeds back to you.\n\nBuild the right feedback loop, and the bug is 90% fixed.\n\n### Iterate on the loop itself\n\nTreat the loop as a product. Once you have _a_ loop, ask:\n\n- Can I make it faster? (Cache setup, skip unrelated init, narrow the test scope.)\n- Can I make the signal sharper? (Assert on the specific symptom, not \"didn't crash\".)\n- Can I make it more deterministic? (Pin time, seed RNG, isolate filesystem, freeze network.)\n\nA 30-second flaky loop is barely better than no loop. A 2-second deterministic loop is a debugging superpower.\n\n### Non-deterministic bugs\n\nThe goal is not a clean repro but a **higher reproduction rate**. Loop the trigger 100×, parallelise, add stress, narrow timing windows, inject sleeps. A 50%-flake bug is debuggable; 1% is not — keep raising the rate until it's debuggable.\n\n### When you genuinely cannot build a loop\n\nStop and say so explicitly. List what you tried. Ask the user for: (a) access to whatever environment reproduces it, (b) a captured artifact (HAR file, log dump, core dump, screen recording with timestamps), or (c) permission to add temporary production instrumentation. Do **not** proceed to hypothesise without a loop.\n\nDo not proceed to Phase 2 until you have a loop you believe in.\n\n## Phase 2 — Reproduce\n\nRun the loop. Watch the bug appear.\n\nConfirm:\n\n- [ ] The loop produces the failure mode the **user** described — not a different failure that happens to be nearby. Wrong bug = wrong fix.\n- [ ] The failure is reproducible across multiple runs (or, for non-deterministic bugs, reproducible at a high enough rate to debug against).\n- [ ] You have captured the exact symptom (error message, wrong output, slow timing) so later phases can verify the fix actually addresses it.\n\nDo not proceed until you reproduce the bug.\n\n## Phase 3 — Hypothesise\n\nGenerate **3–5 ranked hypotheses** before testing any of them. Single-hypothesis generation anchors on the first plausible idea.\n\nEach hypothesis must be **falsifiable**: state the prediction it makes.\n\n> Format: \"If <X> is the cause, then <changing Y> will make the bug disappear / <changing Z> will make it worse.\"\n\nIf you cannot state the prediction, the hypothesis is a vibe — discard or sharpen it.\n\n**Show the ranked list to the user before testing.** They often have domain knowledge that re-ranks instantly (\"we just deployed a change to #3\"), or know hypotheses they've already ruled out. Cheap checkpoint, big time saver. Don't block on it — proceed with your ranking if the user is AFK.\n\n## Phase 4 — Instrument\n\nEach probe must map to a specific prediction from Phase 3. **Change one variable at a time.**\n\nTool preference:\n\n1. **Debugger / REPL inspection** if the env supports it. One breakpoint beats ten logs.\n2. **Targeted logs** at the boundaries that distinguish hypotheses.\n3. Never \"log everything and grep\".\n\n**Tag every debug log** with a unique prefix, e.g. `[DEBUG-a4f2]`. Cleanup at the end becomes a single grep. Untagged logs survive; tagged logs die.\n\n**Perf branch.** For performance regressions, logs are usually wrong. Instead: establish a baseline measurement (timing harness, `performance.now()`, profiler, query plan), then bisect. Measure first, fix second.\n\n## Phase 5 — Fix + regression test\n\nWrite the regression test **before the fix** — but only if there is a **correct seam** for it.\n\nA correct seam is one where the test exercises the **real bug pattern** as it occurs at the call site. If the only available seam is too shallow (single-caller test when the bug needs multiple callers, unit test that can't replicate the chain that triggered the bug), a regression test there gives false confidence.\n\n**If no correct seam exists, that itself is the finding.** Note it. The codebase architecture is preventing the bug from being locked down. Flag this for the next phase.\n\nIf a correct seam exists:\n\n1. Turn the minimised repro into a failing test at that seam.\n2. Watch it fail.\n3. Apply the fix.\n4. Watch it pass.\n5. Re-run the Phase 1 feedback loop against the original (un-minimised) scenario.\n\n## Phase 6 — Cleanup + post-mortem\n\nRequired before declaring done:\n\n- [ ] Original repro no longer reproduces (re-run the Phase 1 loop)\n- [ ] Regression test passes (or absence of seam is documented)\n- [ ] All `[DEBUG-...]` instrumentation removed (`grep` the prefix)\n- [ ] Throwaway prototypes deleted (or moved to a clearly-marked debug location)\n- [ ] The hypothesis that turned out correct is stated in the commit / PR message — so the next debugger learns\n\n**Then ask: what would have prevented this bug?** If the answer involves architectural change (no good test seam, tangled callers, hidden coupling) hand off to the `/improve-codebase-architecture` skill with the specifics. Make the recommendation **after** the fix is in, not before — you have more information now than when you started.\n"}],"details":{"resolvedPath":"C:\\Users\\decid\\.claude\\skills\\diagnose\\SKILL.md","contentType":"text/markdown","displayContent":{"text":"---\r\nname: diagnose\r\ndescription: Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says \"diagnose this\" / \"debug this\", reports a bug, says something is broken/throwing/failing, or describes a performance regression.\r\n---\r\n\r\n# Diagnose\r\n\r\nA discipline for hard bugs. Skip phases only when explicitly justified.\r\n\r\nWhen exploring the codebase, use the project's domain glossary to get a clear mental model of the relevant modules, and check ADRs in the area you're touching.\r\n\r\n## Phase 1 — Build a feedback loop\r\n\r\n**This is the skill.** Everything else is mechanical. If you have a fast, deterministic, agent-runnable pass/fail signal for the bug, you will find the cause — bisection, hypothesis-testing, and instrumentation all just consume that signal. If you don't have one, no amount of staring at code will save you.\r\n\r\nSpend disproportionate effort here. **Be aggressive. Be creative. Refuse to give up.**\r\n\r\n### Ways to construct one — try them in roughly this order\r\n\r\n1. **Failing test** at whatever seam reaches the bug — unit, integration, e2e.\r\n2. **Curl / HTTP script** against a running dev server.\r\n3. **CLI invocation** with a fixture input, diffing stdout against a known-good snapshot.\r\n4. **Headless browser script** (Playwright / Puppeteer) — drives the UI, asserts on DOM/console/network.\r\n5. **Replay a captured trace.** Save a real network request / payload / event log to disk; replay it through the code path in isolation.\r\n6. **Throwaway harness.** Spin up a minimal subset of the system (one service, mocked deps) that exercises the bug code path with a single function call.\r\n7. **Property / fuzz loop.** If the bug is \"sometimes wrong output\", run 1000 random inputs and look for the failure mode.\r\n8. **Bisection harness.** If the bug appeared between two known states (commit, dataset, version), automate \"boot at state X, check, repeat\" so you can `git bisect run` it.\r\n9. **Differential loop.** Run the same input through old-version vs new-version (or two configs) and diff outputs.\r\n10. **HITL bash script.** Last resort. If a human must click, drive _them_ with `scripts/hitl-loop.template.sh` so the loop is still structured. Captured output feeds back to you.\r\n\r\nBuild the right feedback loop, and the bug is 90% fixed.\r\n\r\n### Iterate on the loop itself\r\n\r\nTreat the loop as a product. Once you have _a_ loop, ask:\r\n\r\n- Can I make it faster? (Cache setup, skip unrelated init, narrow the test scope.)\r\n- Can I make the signal sharper? (Assert on the specific symptom, not \"didn't crash\".)\r\n- Can I make it more deterministic? (Pin time, seed RNG, isolate filesystem, freeze network.)\r\n\r\nA 30-second flaky loop is barely better than no loop. A 2-second deterministic loop is a debugging superpower.\r\n\r\n### Non-deterministic bugs\r\n\r\nThe goal is not a clean repro but a **higher reproduction rate**. Loop the trigger 100×, parallelise, add stress, narrow timing windows, inject sleeps. A 50%-flake bug is debuggable; 1% is not — keep raising the rate until it's debuggable.\r\n\r\n### When you genuinely cannot build a loop\r\n\r\nStop and say so explicitly. List what you tried. Ask the user for: (a) access to whatever environment reproduces it, (b) a captured artifact (HAR file, log dump, core dump, screen recording with timestamps), or (c) permission to add temporary production instrumentation. Do **not** proceed to hypothesise without a loop.\r\n\r\nDo not proceed to Phase 2 until you have a loop you believe in.\r\n\r\n## Phase 2 — Reproduce\r\n\r\nRun the loop. Watch the bug appear.\r\n\r\nConfirm:\r\n\r\n- [ ] The loop produces the failure mode the **user** described — not a different failure that happens to be nearby. Wrong bug = wrong fix.\r\n- [ ] The failure is reproducible across multiple runs (or, for non-deterministic bugs, reproducible at a high enough rate to debug against).\r\n- [ ] You have captured the exact symptom (error message, wrong output, slow timing) so later phases can verify the fix actually addresses it.\r\n\r\nDo not proceed until you reproduce the bug.\r\n\r\n## Phase 3 — Hypothesise\r\n\r\nGenerate **3–5 ranked hypotheses** before testing any of them. Single-hypothesis generation anchors on the first plausible idea.\r\n\r\nEach hypothesis must be **falsifiable**: state the prediction it makes.\r\n\r\n> Format: \"If <X> is the cause, then <changing Y> will make the bug disappear / <changing Z> will make it worse.\"\r\n\r\nIf you cannot state the prediction, the hypothesis is a vibe — discard or sharpen it.\r\n\r\n**Show the ranked list to the user before testing.** They often have domain knowledge that re-ranks instantly (\"we just deployed a change to #3\"), or know hypotheses they've already ruled out. Cheap checkpoint, big time saver. Don't block on it — proceed with your ranking if the user is AFK.\r\n\r\n## Phase 4 — Instrument\r\n\r\nEach probe must map to a specific prediction from Phase 3. **Change one variable at a time.**\r\n\r\nTool preference:\r\n\r\n1. **Debugger / REPL inspection** if the env supports it. One breakpoint beats ten logs.\r\n2. **Targeted logs** at the boundaries that distinguish hypotheses.\r\n3. Never \"log everything and grep\".\r\n\r\n**Tag every debug log** with a unique prefix, e.g. `[DEBUG-a4f2]`. Cleanup at the end becomes a single grep. Untagged logs survive; tagged logs die.\r\n\r\n**Perf branch.** For performance regressions, logs are usually wrong. Instead: establish a baseline measurement (timing harness, `performance.now()`, profiler, query plan), then bisect. Measure first, fix second.\r\n\r\n## Phase 5 — Fix + regression test\r\n\r\nWrite the regression test **before the fix** — but only if there is a **correct seam** for it.\r\n\r\nA correct seam is one where the test exercises the **real bug pattern** as it occurs at the call site. If the only available seam is too shallow (single-caller test when the bug needs multiple callers, unit test that can't replicate the chain that triggered the bug), a regression test there gives false confidence.\r\n\r\n**If no correct seam exists, that itself is the finding.** Note it. The codebase architecture is preventing the bug from being locked down. Flag this for the next phase.\r\n\r\nIf a correct seam exists:\r\n\r\n1. Turn the minimised repro into a failing test at that seam.\r\n2. Watch it fail.\r\n3. Apply the fix.\r\n4. Watch it pass.\r\n5. Re-run the Phase 1 feedback loop against the original (un-minimised) scenario.\r\n\r\n## Phase 6 — Cleanup + post-mortem\r\n\r\nRequired before declaring done:\r\n\r\n- [ ] Original repro no longer reproduces (re-run the Phase 1 loop)\r\n- [ ] Regression test passes (or absence of seam is documented)\r\n- [ ] All `[DEBUG-...]` instrumentation removed (`grep` the prefix)\r\n- [ ] Throwaway prototypes deleted (or moved to a clearly-marked debug location)\r\n- [ ] The hypothesis that turned out correct is stated in the commit / PR message — so the next debugger learns\r\n\r\n**Then ask: what would have prevented this bug?** If the answer involves architectural change (no good test seam, tangled callers, hidden coupling) hand off to the `/improve-codebase-architecture` skill with the specifics. Make the recommendation **after** the fix is in, not before — you have more information now than when you started.\r\n","startLine":1,"lineNumbers":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118]},"meta":{"source":{"type":"internal","value":"skill://diagnose"}}},"isError":false,"timestamp":1784247351194}}
{"type":"message","id":"de0b467b","parentId":"ec33488e","timestamp":"2026-07-17T00:15:51.200Z","message":{"role":"toolResult","toolCallId":"call_bRPgYHKNiaaIQ6CZDjKq5mtc|fc_05a4d8ea8a10ef0b016a597436ed14819899c39257d8e1297a","toolName":"glob","content":[{"type":"text","text":"No files found matching pattern\nSkipped missing paths: packages/**/*.{ts,js}"}],"details":{"scopePath":"src/**/*.{ts,js}, **/*status*.{ts,js}","fileCount":0,"files":[],"truncated":false,"cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","missingPaths":["packages/**/*.{ts,js}"]},"isError":false,"useless":true,"timestamp":1784247351200}}
{"type":"message","id":"f674aef7","parentId":"de0b467b","timestamp":"2026-07-17T00:16:01.072Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Planning log inspection strategy**"},{"type":"toolCall","id":"call_ZadzAdDXlvRyvwdmaLYs7uY1|fc_05a4d8ea8a10ef0b016a597440fdc0819886370f628d0f88d6","name":"read","arguments":{"i":"Sampling current daemon log","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":"1-120"}},{"type":"toolCall","id":"call_vqAC7573aRaBDtaM6yPZuIY4|fc_05a4d8ea8a10ef0b016a597440fdd4819894ab33c99f85617c","name":"grep","arguments":{"i":"Finding broker lifecycle evidence","pattern":"broker|brain|IPC|ipc|connect|reconnect|disconnect|subscriber|replay|heartbeat|pump|timeout|timed out|backpressure|pressure|dispatch|error|warn|failed|failure","path":"C:/Users/decid/AppData/Local/spt-core/logs","selector":null,"case":false,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_EqnB4HLdoFOraVP2cipOFTFq|fc_05a4d8ea8a10ef0b016a597440fdf081989f398b8b4f5df7bf","name":"glob","arguments":{"i":"Mapping source tree","path":"**/*.{ts,tsx,js,mjs,cjs,py,rs,go}","hidden":true,"gitignore":true,"limit":300}},{"type":"toolCall","id":"call_kH2DNeOVCWrCMzD4yJtKNYQz|fc_05a4d8ea8a10ef0b016a597440fdf4819893ae37c97f10f46a","name":"glob","arguments":{"i":"Finding runtime state files","path":"C:/Users/decid/AppData/Local/spt-core/**/*","hidden":true,"gitignore":false,"limit":300}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":3311,"output":377,"cacheRead":13824,"cacheWrite":0,"totalTokens":17512,"reasoningTokens":116,"cost":{"input":0.016555,"output":0.01131,"cacheRead":0.006912,"cacheWrite":0,"total":0.034777}},"stopReason":"toolUse","timestamp":1784247351203,"responseId":"resp_05a4d8ea8a10ef0b016a597437e5108198aab44a1bd8885b02","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a59743a0f1c81988d33ec4a9a936728","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXRAJYKtkztowU0JiWIVpxPWZnMelcw6kKABcgcyuzuBMYHZPa6iwio9NZwt6pnviQi2AH1JPtGRB6QF_68xLEAzElqTiCoFbabk6jMvfzmyb1R_9RbDAgvwXVsX1lG7mEl4MCEX6VKAFyXiSkrLwsCECRPWd_jeXX7IipKCbMYQDz9rb5QAujZnsgSQ0uMMsB2Idc60I_5EpoEXiEBrojLYp1e4KbVP3GhHvULJfKdblnDKXN_0hbR2NUhMIXzWI-jVWL2JxCfQiVxPqLjXmvedbXUi33QBDPJ5oWfva9XC96E8JJ8TdTIEc2ThPV8nEBUuGJ3J6CJWHZmJsoCdBgGpUIsE2sIVellynJfC0F4dR4Ci3iXqEzWOuGP6uVL4NY9SUez4T05gRfUzWM4AhX0TmOY0cb_2jmQzvFWPYdb4TiVSEd4p942U4NlUh8P6KMerxgrQ5I44WKDqRipiIi9FG0FjTmasCCVsXIEt8UVFgmLvXTTWsiG47ohuh6tP2_lRunXZzGWLZjIOQ6J2Glfrm33J1QQlvsvfUV06YatzqztS6iGXqWpXjWN9b2ZkKGok5xS5QsaITmZoSIpveGDLlV4RCp0SiZ2bxiVs_3YWuWoXsuD6CK3nnF4FqVj-Nt9bp_yQrl4a_4mRrmhN4NUG1109eSQp7Su0fuGoURE0rPeYwVzaWuOQf72A5yDE_hFRjDH5e39_SjIw9OJJX75zXNmaz0uP-3flpJCiYD-fppXwKe5dllABhC_aXBlo7-pt4jTxYBXUkzxBUA3Ygc_BiJexjqf6hVqnll1mxWcOZs0C6N9eOtTUtOUh4w-8Empq_ch6Lz5YTeF0p-YJSr0Vj5EB0IWRYRHy9W6gL0hjnrnE9K3BzjimHcp5QKwhpa3Gd375qCQBvijhDDAOAHklCQ7sPfDDKrLJMYFg3vhcTQYdH2rRBkK8d6h3SHjIWdKkm4XJEGjwCDI6x5G0NZcgyvSndzYQ9fBq_NrGj0NeGPc1XY4EeiFRmrzVM_EpuW7gRZ9DhC79sltBPbO9fF5NeLCiRC-CAe2bULVyQ2zCLW2RgCjmN1TAW1fiPfS0wc8w7PNxobHxTmvjc25dgnPP4e_-6WOPILp2QxPoxeUoScAl7fw-WLcOMqcS85OrrFgWXy_zKQB8iN_IITFInxxIr8DmqQ4XtwnbVUaw01hvUlGLMF9hDNwF1yvBk0iDFYLUCrS39VyAUo-u4jDMMUJo86I4dCyBWAMGO1qO0CzpWKErKnHcMaHn17wgMUDgSvUOY96VxNqBGuhOX5Xk2cYXetkjHgLjx3da1Bi-k2uEvkPFBAAYNjeh05CA_llkr5lASO_TYjHzzq9InMZ3kAERW40ko-tGQ-lStZLNa7LUJCjF2dj0Jp3NtAzr-D92r2cpImjxq8xwSJsWWaIrhrmiFBCPAey_lrvL1093yDD3irNvGN4noITKLtMaKiUAE0I1AX3F-hV1ha9ZN68UFWVUIXl5gWgkjzrh2xzMhHeSDlsAPoGS4WW5I5hEj0fRkeKp_W-YDHhuOgN0FcXqxp-i_KjrZ2kbiK-R6kEfAOIfxNM=","summary":[{"type":"summary_text","text":"**Planning log inspection strategy**"}]},{"id":"fc_05a4d8ea8a10ef0b016a597440fdc0819886370f628d0f88d6","type":"function_call","status":"completed","arguments":"{\"i\":\"Sampling current daemon log\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":\"1-120\"}","call_id":"call_ZadzAdDXlvRyvwdmaLYs7uY1","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a597440fdd4819894ab33c99f85617c","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding broker lifecycle evidence\",\"pattern\":\"broker|brain|IPC|ipc|connect|reconnect|disconnect|subscriber|replay|heartbeat|pump|timeout|timed out|backpressure|pressure|dispatch|error|warn|failed|failure\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs\",\"selector\":null,\"case\":false,\"gitignore\":false,\"skip\":null}","call_id":"call_vqAC7573aRaBDtaM6yPZuIY4","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a597440fdf081989f398b8b4f5df7bf","type":"function_call","status":"completed","arguments":"{\"i\":\"Mapping source tree\",\"path\":\"**/*.{ts,tsx,js,mjs,cjs,py,rs,go}\",\"hidden\":true,\"gitignore\":true,\"limit\":300}","call_id":"call_EqnB4HLdoFOraVP2cipOFTFq","name":"glob"},{"id":"fc_05a4d8ea8a10ef0b016a597440fdf4819893ae37c97f10f46a","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding runtime state files\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/**/*\",\"hidden\":true,\"gitignore\":false,\"limit\":300}","call_id":"call_kH2DNeOVCWrCMzD4yJtKNYQz","name":"glob"}]},"duration":9866.903499998152,"ttft":2849.5538999959826,"contextSnapshot":{"promptTokens":17135,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_ZadzAdDXlvRyvwdmaLYs7uY1|fc_05a4d8ea8a10ef0b016a597440fdc0819886370f628d0f88d6","toolName":"read","startedAt":"2026-07-17T00:16:01.072Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Sampling current daemon log"},"id":"9bcebb92","parentId":"f674aef7","timestamp":"2026-07-17T00:16:01.072Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_vqAC7573aRaBDtaM6yPZuIY4|fc_05a4d8ea8a10ef0b016a597440fdd4819894ab33c99f85617c","toolName":"grep","startedAt":"2026-07-17T00:16:01.072Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs"},"intent":"Finding broker lifecycle evidence"},"id":"da08eecc","parentId":"9bcebb92","timestamp":"2026-07-17T00:16:01.072Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_EqnB4HLdoFOraVP2cipOFTFq|fc_05a4d8ea8a10ef0b016a597440fdf081989f398b8b4f5df7bf","toolName":"glob","startedAt":"2026-07-17T00:16:01.072Z","args":{"path":"**/*.{ts,tsx,js,mjs,cjs,py,rs,go}"},"intent":"Mapping source tree"},"id":"14a043a9","parentId":"da08eecc","timestamp":"2026-07-17T00:16:01.072Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_kH2DNeOVCWrCMzD4yJtKNYQz|fc_05a4d8ea8a10ef0b016a597440fdf4819893ae37c97f10f46a","toolName":"glob","startedAt":"2026-07-17T00:16:01.072Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/**/*"},"intent":"Finding runtime state files"},"id":"42f78fdb","parentId":"14a043a9","timestamp":"2026-07-17T00:16:01.072Z"}
{"type":"message","id":"3131ea7c","parentId":"42f78fdb","timestamp":"2026-07-17T00:16:01.121Z","message":{"role":"toolResult","toolCallId":"call_EqnB4HLdoFOraVP2cipOFTFq|fc_05a4d8ea8a10ef0b016a597440fdf081989f398b8b4f5df7bf","toolName":"glob","content":[{"type":"text","text":"# crates/\n## spt/\n### src/\nwansend.rs\ncli.rs\nroster.rs\nrc.rs\n#### picker/\ndata.rs\nmod.rs\nview.rs\nmodel.rs\n#### api/\nreporting.rs\nstartup.rs\nauth.rs\nmod.rs\nworker.rs\ndelivery.rs\n### tests/\nprojindex_reader_e2e.rs\ndummy_harness_e2e.rs\nprojindex_writer_e2e.rs\njson_emit.rs\nwhoami_identity_e2e.rs\ndaemon_refresh_e2e.rs\ncomposite_e2e.rs\ndocs_bundle_e2e.rs\nrelease_verify_e2e.rs\nbootstrap_verb_e2e.rs\ntrial_drain_drive_e2e.rs\nresume_no_control_steal_e2e.rs\nsend_stamp_agent_id_e2e.rs\nendpoint_autostart_e2e.rs\nlist_json_liveness_parity_e2e.rs\nlisten_seed_retry_e2e.rs\nactive_only_never_relay_e2e.rs\nn1_pairing.rs\nattach_wedge_e2e.rs\nworker_visibility_e2e.rs\nworker_lifecycle_e2e.rs\ntwohost_cli.rs\ntranslate_proof.rs\npsyche_download_e2e.rs\nnotify_shell_e2e.rs\nmulti_subnet_bringup_e2e.rs\nlive_adapt_translation_swap_e2e.rs\nbrain_survive.rs\n#### fixtures/\ngit_fixture.rs\ngh_fixture.rs\n## spt-store/\n### src/\npeeraddrs.rs\nprojindex.rs\nprojderive.rs\nprojinval.rs\nlib.rs\nbranchstore.rs\ncontextstore.rs\ngitrun.rs\npsyche_custody.rs\nspool.rs\nworker_reap.rs\nworker_seq.rs\ninfo.rs\nsessions.rs\nxfer.rs\nvisibility.rs\ntimefmt.rs\nsyncmerge.rs\nsubnet.rs\nshellinfo.rs\nseed.rs\nrotation.rs\nroster.rs\nrename.rs\nregistry.rs\nrecent_home.rs\nproject.rs\nproc.rs\nperch.rs\nnotif.rs\nnodeid.rs\nliveness.rs\nhostlabel.rs\nhome.rs\nhistory.rs\ngrants.rs\nepoch.rs\ndb.rs\ncontextmark.rs\nattachment.rs\natomic.rs\naccess.rs\n### tests/\ncarrier_claim_int.rs\n## spt-daemon/\n### tests/\nmesh_recovery.rs\nredispatch.rs\ninput_ack_deadlock.rs\ninject_control_wedge.rs\nattach.rs\ndocs_server_e2e.rs\npropagate.rs\npumpdeadline.rs\npump.rs\nfalse_promote.rs\nnet_worker_starve.rs\nbrain_resume_conn_deadlock.rs\nconn_blackhole_lifecycle.rs\nbrain_decouple.rs\ntwo_origin_spanning.rs\nwake_single_flight.rs\nendpoint_survival.rs\nxfer.rs\nwanmsg.rs\ntwohost.rs\nreplicate.rs\nsync.rs\nnotifsync.rs\nnetstream.rs\nnetbroker.rs\nidempotent.rs\ndispatch.rs\ndaemon_e2e.rs\nbroker.rs\naccess.rs\n#### fixtures/\ndispatch_fixture.rs\n### src/\nseedproofx.rs\nregistryhost.rs\nnethost.rs\nlib.rs\nendpoint.rs\nmsg.rs\ndispatch.rs\nbroker.rs\nbrain.rs\nattach.rs\nsync.rs\nprojwriter.rs\nbrainproc.rs\napplyhost.rs\ndocshost.rs\ndaemon.rs\nconfig.rs\nupdate.rs\nrelcache.rs\nrelease.rs\nnotif.rs\nrelay.rs\npropagate.rs\nlivehost.rs\ninject.rs\nconn.rs\nautostart.rs\nstderrlog.rs\nlifecycle.rs\ndigest.rs\npairhost.rs\nxfer.rs\nshellwake.rs\nshellchan.rs\nseedmap.rs\nresting.rs\nresthost.rs\nlinkhost.rs\neffect.rs\nadapter_update.rs\n#### pump/\nmod.rs\nhealth.rs\n#### bin/\nxlate_choreo_fixture.rs\n## spt-msg/src/\nready.rs\ndeliver.rs\n## xtask/src/\nmain.rs\n## spt-runtime/src/\nmanifest.rs\nruntime.rs\nresolve.rs\nlib.rs\nregistry.rs\nprofile.rs\n## spt-live/src/\npulse.rs\ningest.rs\necho.rs\n## spt-net/src/\nnet.rs\n### net/\nregistry.rs\n#### pairing/\nntp.rs\n## spt-term/\n### src/\nscreen.rs\nwinprog.rs\nsurface.rs\nstream.rs\nreader.rs\npty.rs\nprojection.rs\nlib.rs\ndigest.rs\n### tests/\nwinspawn.rs\nsurface.rs\nstream.rs\ninject.rs\ndsr.rs\n## spt-proto/src/\nversion.rs\npayload.rs\nlib.rs\nidentity.rs\nid.rs\nevent.rs\nenvelope.rs\nendpoint.rs\nchunk.rs\naddr.rs\n\n[200 results limit reached. Use limit=400 for more]"}],"details":{"scopePath":".","fileCount":200,"files":["crates/spt/src/wansend.rs","crates/spt/src/cli.rs","crates/spt-store/src/peeraddrs.rs","crates/spt-daemon/tests/mesh_recovery.rs","crates/spt-daemon/src/seedproofx.rs","crates/spt-daemon/src/registryhost.rs","crates/spt-daemon/src/pump/mod.rs","crates/spt-daemon/src/pump/health.rs","crates/spt-daemon/src/nethost.rs","crates/spt-daemon/src/lib.rs","crates/spt-daemon/src/endpoint.rs","crates/spt-daemon/tests/redispatch.rs","crates/spt-daemon/tests/input_ack_deadlock.rs","crates/spt-daemon/tests/inject_control_wedge.rs","crates/spt-daemon/tests/fixtures/dispatch_fixture.rs","crates/spt-daemon/tests/attach.rs","crates/spt-daemon/src/msg.rs","crates/spt-daemon/src/dispatch.rs","crates/spt-daemon/src/broker.rs","crates/spt-daemon/src/brain.rs","crates/spt-daemon/src/attach.rs","crates/spt/tests/projindex_reader_e2e.rs","crates/spt/tests/dummy_harness_e2e.rs","crates/spt/src/picker/data.rs","crates/spt/src/api/reporting.rs","crates/spt-store/src/projindex.rs","crates/spt-store/src/projderive.rs","crates/spt-daemon/src/sync.rs","crates/spt-daemon/src/projwriter.rs","crates/spt/tests/projindex_writer_e2e.rs","crates/spt/src/api/startup.rs","crates/spt-store/src/projinval.rs","crates/spt-store/src/lib.rs","crates/spt-store/src/branchstore.rs","crates/spt-store/src/contextstore.rs","crates/spt-msg/src/ready.rs","crates/spt-daemon/src/brainproc.rs","crates/spt/tests/json_emit.rs","crates/spt/tests/whoami_identity_e2e.rs","crates/spt/src/roster.rs","crates/spt/tests/fixtures/git_fixture.rs","crates/spt-store/src/gitrun.rs","crates/spt/tests/daemon_refresh_e2e.rs","crates/spt/tests/fixtures/gh_fixture.rs","crates/spt/tests/composite_e2e.rs","crates/spt-daemon/src/applyhost.rs","crates/xtask/src/main.rs","crates/spt-daemon/tests/docs_server_e2e.rs","crates/spt-daemon/src/docshost.rs","crates/spt-daemon/src/daemon.rs","crates/spt-daemon/src/config.rs","crates/spt/tests/docs_bundle_e2e.rs","crates/spt-runtime/src/manifest.rs","crates/spt-daemon/tests/propagate.rs","crates/spt-daemon/src/update.rs","crates/spt-daemon/src/relcache.rs","crates/spt-daemon/src/release.rs","crates/spt/tests/release_verify_e2e.rs","crates/spt/tests/bootstrap_verb_e2e.rs","crates/spt-daemon/src/notif.rs","crates/spt/tests/trial_drain_drive_e2e.rs","crates/spt/tests/resume_no_control_steal_e2e.rs","crates/spt/tests/send_stamp_agent_id_e2e.rs","crates/spt/tests/endpoint_autostart_e2e.rs","crates/spt/tests/list_json_liveness_parity_e2e.rs","crates/spt/tests/listen_seed_retry_e2e.rs","crates/spt/tests/active_only_never_relay_e2e.rs","crates/spt/src/picker/mod.rs","crates/spt/src/api/auth.rs","crates/spt/src/api/mod.rs","crates/spt-store/tests/carrier_claim_int.rs","crates/spt-store/src/psyche_custody.rs","crates/spt-store/src/spool.rs","crates/spt-runtime/src/runtime.rs","crates/spt-runtime/src/resolve.rs","crates/spt-runtime/src/lib.rs","crates/spt-live/src/pulse.rs","crates/spt-msg/src/deliver.rs","crates/spt-live/src/ingest.rs","crates/spt-daemon/tests/pumpdeadline.rs","crates/spt-daemon/tests/pump.rs","crates/spt-daemon/tests/false_promote.rs","crates/spt-daemon/tests/net_worker_starve.rs","crates/spt-daemon/tests/brain_resume_conn_deadlock.rs","crates/spt-daemon/tests/conn_blackhole_lifecycle.rs","crates/spt-daemon/tests/brain_decouple.rs","crates/spt-daemon/src/relay.rs","crates/spt-daemon/src/propagate.rs","crates/spt-daemon/src/livehost.rs","crates/spt-daemon/src/inject.rs","crates/spt-daemon/src/conn.rs","crates/spt-daemon/src/autostart.rs","crates/spt/tests/n1_pairing.rs","crates/spt/tests/attach_wedge_e2e.rs","crates/spt/src/rc.rs","crates/spt/src/api/worker.rs","crates/spt/src/api/delivery.rs","crates/spt-live/src/echo.rs","crates/spt-daemon/tests/two_origin_spanning.rs","crates/spt-daemon/tests/wake_single_flight.rs","crates/spt-daemon/tests/endpoint_survival.rs","crates/spt-daemon/src/stderrlog.rs","crates/spt-daemon/src/lifecycle.rs","crates/spt-daemon/src/digest.rs","crates/spt-daemon/src/bin/xlate_choreo_fixture.rs","crates/spt-net/src/net/pairing/ntp.rs","crates/spt-daemon/src/pairhost.rs","crates/spt/tests/worker_visibility_e2e.rs","crates/spt/tests/worker_lifecycle_e2e.rs","crates/spt-store/src/worker_reap.rs","crates/spt-store/src/worker_seq.rs","crates/spt-store/src/info.rs","crates/spt-runtime/src/registry.rs","crates/spt/tests/twohost_cli.rs","crates/spt/tests/translate_proof.rs","crates/spt/tests/psyche_download_e2e.rs","crates/spt/tests/notify_shell_e2e.rs","crates/spt/tests/multi_subnet_bringup_e2e.rs","crates/spt/tests/live_adapt_translation_swap_e2e.rs","crates/spt/tests/brain_survive.rs","crates/spt/src/picker/view.rs","crates/spt/src/picker/model.rs","crates/spt-term/src/screen.rs","crates/spt-store/src/sessions.rs","crates/spt-net/src/net/registry.rs","crates/spt-daemon/tests/xfer.rs","crates/spt-daemon/tests/wanmsg.rs","crates/spt-daemon/tests/twohost.rs","crates/spt-daemon/tests/replicate.rs","crates/spt-daemon/tests/sync.rs","crates/spt-daemon/tests/notifsync.rs","crates/spt-daemon/tests/netstream.rs","crates/spt-daemon/tests/netbroker.rs","crates/spt-daemon/tests/idempotent.rs","crates/spt-daemon/tests/dispatch.rs","crates/spt-daemon/tests/daemon_e2e.rs","crates/spt-daemon/tests/broker.rs","crates/spt-daemon/tests/access.rs","crates/spt-daemon/src/xfer.rs","crates/spt-daemon/src/shellwake.rs","crates/spt-daemon/src/shellchan.rs","crates/spt-daemon/src/seedmap.rs","crates/spt-daemon/src/resting.rs","crates/spt-daemon/src/resthost.rs","crates/spt-daemon/src/linkhost.rs","crates/spt-daemon/src/effect.rs","crates/spt-daemon/src/adapter_update.rs","crates/spt-term/tests/winspawn.rs","crates/spt-term/tests/surface.rs","crates/spt-term/tests/stream.rs","crates/spt-term/tests/inject.rs","crates/spt-term/tests/dsr.rs","crates/spt-term/src/winprog.rs","crates/spt-term/src/surface.rs","crates/spt-term/src/stream.rs","crates/spt-term/src/reader.rs","crates/spt-term/src/pty.rs","crates/spt-term/src/projection.rs","crates/spt-term/src/lib.rs","crates/spt-term/src/digest.rs","crates/spt-store/src/xfer.rs","crates/spt-store/src/visibility.rs","crates/spt-store/src/timefmt.rs","crates/spt-store/src/syncmerge.rs","crates/spt-store/src/subnet.rs","crates/spt-store/src/shellinfo.rs","crates/spt-store/src/seed.rs","crates/spt-store/src/rotation.rs","crates/spt-store/src/roster.rs","crates/spt-store/src/rename.rs","crates/spt-store/src/registry.rs","crates/spt-store/src/recent_home.rs","crates/spt-store/src/project.rs","crates/spt-store/src/proc.rs","crates/spt-store/src/perch.rs","crates/spt-store/src/notif.rs","crates/spt-store/src/nodeid.rs","crates/spt-store/src/liveness.rs","crates/spt-store/src/hostlabel.rs","crates/spt-store/src/home.rs","crates/spt-store/src/history.rs","crates/spt-store/src/grants.rs","crates/spt-store/src/epoch.rs","crates/spt-store/src/db.rs","crates/spt-store/src/contextmark.rs","crates/spt-store/src/attachment.rs","crates/spt-store/src/atomic.rs","crates/spt-store/src/access.rs","crates/spt-runtime/src/profile.rs","crates/spt-proto/src/version.rs","crates/spt-proto/src/payload.rs","crates/spt-proto/src/lib.rs","crates/spt-proto/src/identity.rs","crates/spt-proto/src/id.rs","crates/spt-proto/src/event.rs","crates/spt-proto/src/envelope.rs","crates/spt-proto/src/endpoint.rs","crates/spt-proto/src/chunk.rs","crates/spt-proto/src/addr.rs","crates/spt-net/src/net.rs"],"truncated":true,"resultLimitReached":200,"cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","meta":{"limits":{"resultLimit":{"reached":200,"suggestion":400}}}},"isError":false,"timestamp":1784247361121}}
{"type":"message","id":"bcc15112","parentId":"3131ea7c","timestamp":"2026-07-17T00:16:01.123Z","message":{"role":"toolResult","toolCallId":"call_vqAC7573aRaBDtaM6yPZuIY4|fc_05a4d8ea8a10ef0b016a597440fdd4819894ab33c99f85617c","toolName":"grep","content":[{"type":"text","text":"# C:/Users/decid/AppData/Local/spt-core/logs/\n## daemon.stderr.log\n*1|=== spt broker stderr — generation 0 — pid 73156 ===\n 2|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*3|=== spt broker stderr — generation 0 — pid 91480 ===\n 4|DOCS_SERVER_UP: http://localhost:5474\n 5|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 6|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 7|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*8|=== spt brain stderr — generation 0 — pid 47668 ===\n*9|BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 47668, generation 0, start-reason cold)\n*10|CONN_LIFECYCLE: conn=2 role=brain wall_ms=1784235695891 mono_ms=125 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 11|PAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52932), Ip(192.168.1.81:52932)} }\n 12|PAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52934), Ip(192.168.1.81:52934)} }\n*13|CONN_LIFECYCLE: conn=3 role=brain wall_ms=1784235695924 mono_ms=158 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*14|CONN_LIFECYCLE: conn=3 role=brain wall_ms=1784235695924 mono_ms=158 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 15|PAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52965), Ip(192.168.1.81:52965)} }\n 16|PAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52968), Ip(192.168.1.81:52968)} }\n*17|BROKER_BIND_FAIL: Access is denied. (os error 5)\n*18|DAEMON_EXIT: Access is denied. (os error 5)\n 19|DAEMON_RESTART_RESUME_REFUSED:deployah: custody pid still alive — refusing to re-run over a live process (dup guard)\n 20|DAEMON_RESTART_RESUME_REFUSED:doyle: custody pid still alive — refusing to re-run over a live process (dup guard)\n 21|DAEMON_RESTART_RESUME_REFUSED:lia: custody pid still alive — refusing to re-run over a live process (dup guard)\n*22|CONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*23|CONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24|CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235696209 mono_ms=443 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*25|=== spt broker stderr — generation 0 — pid 82868 ===\n 26|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*27|BROKER_BIND_FAIL: Access is denied. (os error 5)\n*28|DAEMON_EXIT: Access is denied. (os error 5)\n*29|BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n*30|CONN_LIFECYCLE: conn=5 role=brain wall_ms=1784235696416 mono_ms=650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*31|PUMP_IPC_READER: spawned\n*32|PUMP_IPC_READER: spawned\n*33|CONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235696416 mono_ms=650 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\n## daemon.stderr.log.1\n*1|=== spt brain stderr — generation 2 — pid 72832 ===\n*2|BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 72832, generation 2, start-reason update)\n*3|BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n*4|BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n*5|PUMP_IPC_READER: spawned\n*6|PUMP_IPC_READER: spawned\n*7|DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*8|DISPATCH:3:Failed(\"failed to fill whole buffer\")\n*9|DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*10|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*11|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*12|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*13|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*14|DISPATCH:4176:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*15|=== spt brain stderr — generation 3 — pid 56712 ===\n*16|BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 56712, generation 3, start-reason update)\n*17|BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n*18|BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n*19|PUMP_IPC_READER: spawned\n*20|PUMP_IPC_READER: spawned"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":40,"fileCount":2,"files":["C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1"],"fileMatches":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","count":20},{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1","count":20}],"truncated":true,"perFileLimitReached":20,"displayContent":"# C:/Users/decid/AppData/Local/spt-core/logs/\n## daemon.stderr.log\n *1│=== spt broker stderr — generation 0 — pid 73156 ===\n  2│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n *3│=== spt broker stderr — generation 0 — pid 91480 ===\n  4│DOCS_SERVER_UP: http://localhost:5474\n  5│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n  6│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n  7│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n *8│=== spt brain stderr — generation 0 — pid 47668 ===\n *9│BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 47668, generation 0, start-reason cold)\n*10│CONN_LIFECYCLE: conn=2 role=brain wall_ms=1784235695891 mono_ms=125 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 11│PAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52932), Ip(192.168.1.81:52932)} }\n 12│PAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52934), Ip(192.168.1.81:52934)} }\n*13│CONN_LIFECYCLE: conn=3 role=brain wall_ms=1784235695924 mono_ms=158 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*14│CONN_LIFECYCLE: conn=3 role=brain wall_ms=1784235695924 mono_ms=158 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 15│PAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52965), Ip(192.168.1.81:52965)} }\n 16│PAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52968), Ip(192.168.1.81:52968)} }\n*17│BROKER_BIND_FAIL: Access is denied. (os error 5)\n*18│DAEMON_EXIT: Access is denied. (os error 5)\n 19│DAEMON_RESTART_RESUME_REFUSED:deployah: custody pid still alive — refusing to re-run over a live process (dup guard)\n 20│DAEMON_RESTART_RESUME_REFUSED:doyle: custody pid still alive — refusing to re-run over a live process (dup guard)\n 21│DAEMON_RESTART_RESUME_REFUSED:lia: custody pid still alive — refusing to re-run over a live process (dup guard)\n*22│CONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*23│CONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24│CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235696209 mono_ms=443 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*25│=== spt broker stderr — generation 0 — pid 82868 ===\n 26│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*27│BROKER_BIND_FAIL: Access is denied. (os error 5)\n*28│DAEMON_EXIT: Access is denied. (os error 5)\n*29│BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n*30│CONN_LIFECYCLE: conn=5 role=brain wall_ms=1784235696416 mono_ms=650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*31│PUMP_IPC_READER: spawned\n*32│PUMP_IPC_READER: spawned\n*33│CONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235696416 mono_ms=650 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\n## daemon.stderr.log.1\n *1│=== spt brain stderr — generation 2 — pid 72832 ===\n *2│BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 72832, generation 2, start-reason update)\n *3│BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n *4│BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n *5│PUMP_IPC_READER: spawned\n *6│PUMP_IPC_READER: spawned\n *7│DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n *8│DISPATCH:3:Failed(\"failed to fill whole buffer\")\n *9│DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*10│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*11│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*12│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*13│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*14│DISPATCH:4176:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*15│=== spt brain stderr — generation 3 — pid 56712 ===\n*16│BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 56712, generation 3, start-reason update)\n*17│BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n*18│BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n*19│PUMP_IPC_READER: spawned\n*20│PUMP_IPC_READER: spawned"},"isError":false,"timestamp":1784247361123}}
{"type":"message","id":"2a84b022","parentId":"bcc15112","timestamp":"2026-07-17T00:16:01.129Z","message":{"role":"toolResult","toolCallId":"call_ZadzAdDXlvRyvwdmaLYs7uY1|fc_05a4d8ea8a10ef0b016a597440fdc0819886370f628d0f88d6","toolName":"read","content":[{"type":"text","text":"=== spt broker stderr — generation 0 — pid 73156 ===\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n=== spt broker stderr — generation 0 — pid 91480 ===\nDOCS_SERVER_UP: http://localhost:5474\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n=== spt brain stderr — generation 0 — pid 47668 ===\nBRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 47668, generation 0, start-reason cold)\nCONN_LIFECYCLE: conn=2 role=brain wall_ms=1784235695891 mono_ms=125 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52932), Ip(192.168.1.81:52932)} }\nPAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52934), Ip(192.168.1.81:52934)} }\nCONN_LIFECYCLE: conn=3 role=brain wall_ms=1784235695924 mono_ms=158 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=3 role=brain wall_ms=1784235695924 mono_ms=158 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52965), Ip(192.168.1.81:52965)} }\nPAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52968), Ip(192.168.1.81:52968)} }\nBROKER_BIND_FAIL: Access is denied. (os error 5)\nDAEMON_EXIT: Access is denied. (os error 5)\nDAEMON_RESTART_RESUME_REFUSED:deployah: custody pid still alive — refusing to re-run over a live process (dup guard)\nDAEMON_RESTART_RESUME_REFUSED:doyle: custody pid still alive — refusing to re-run over a live process (dup guard)\nDAEMON_RESTART_RESUME_REFUSED:lia: custody pid still alive — refusing to re-run over a live process (dup guard)\nCONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235696209 mono_ms=443 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n=== spt broker stderr — generation 0 — pid 82868 ===\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nBROKER_BIND_FAIL: Access is denied. (os error 5)\nDAEMON_EXIT: Access is denied. (os error 5)\nBRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\nCONN_LIFECYCLE: conn=5 role=brain wall_ms=1784235696416 mono_ms=650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_IPC_READER: spawned\nPUMP_IPC_READER: spawned\nCONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235696416 mono_ms=650 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=8 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=11 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=12 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=13 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=15 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONTROL_REAP_NO_SESSION:deployah: cleared stale controlled/driven_by (no broker session)\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nENDPOINT_AUTOSTART:mobile-gw adapter=mobile session=ff56c92af30ecd3e pid=43680 (startup default)\nCONN_WRITE_RETIRED: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 — organic write failure (BrokenPipe: The pipe is being closed. (os error 232)); physical broker conn poisoned + retired, never reused (same retire behavior as POISONED — only the failure class differs) [REQ-CONN-POISON-DIAL-SCOPE]\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 event=writer-exit role=controller session=1 reason=write-failed kind=BrokenPipe [REQ-CONN-POISON-ATTRIBUTION]\nDRIVEN_BY_SELFHEAL_OFFLINE:deployah: cleared stale driven_by (no session)\nLIVENESS_RECONCILE_OFFLINE:deployah: no live broker session (dead harness)\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=session-detach session=1 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=transport-close poisoned=true timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698228 mono_ms=2462 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONTROL_REAP_NO_SESSION:doyle: cleared stale controlled/driven_by (no broker session)\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698260 mono_ms=2493 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nENDPOINT_AUTOSTART:lia adapter=claude-spt session=eedd44363fd38392 pid=50824 (startup default)\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698264 mono_ms=2498 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nDRIVEN_BY_SELFHEAL_OFFLINE:doyle: cleared stale driven_by (no session)\nLIVENESS_RECONCILE_OFFLINE:doyle: no live broker session (dead harness)\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698291 mono_ms=2524 event=session-detach session=2 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698291 mono_ms=2524 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONTROL_REAP_NO_SESSION:lia: cleared stale controlled/driven_by (no broker session)\nLIVENESS_RECONCILE_OFFLINE:lia: no live broker session (dead harness)\nCONTROL_REAP_NO_SESSION:perri: cleared stale controlled/driven_by (no broker session)\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698348 mono_ms=2582 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698363 mono_ms=2597 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698366 mono_ms=2600 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:deployah: resuming session 89cc9038-e5d9-429e-b4a9-40fba8af71ee under claude-spt:ccs (pid 40376) — online at bind\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=session-detach session=3 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698404 mono_ms=2638 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698419 mono_ms=2653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698422 mono_ms=2656 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:doyle: resuming session a2fdb848-6643-4e10-b221-6baee7e91b7b under claude-spt:ccs (pid 60892) — online at bind\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698447 mono_ms=2681 event=session-detach session=4 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698447 mono_ms=2681 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nSPAWN_DEDUP:lia: endpoint already has a live session 2 — single-flight wake no-op ack [REQ-SPAWN-COLLISION-GUARD-LIVE-DUP]\nCONN_LIFECYCLE: conn=19 role=brain wall_ms=1784235698447 mono_ms=2681 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=19 role=brain wall_ms=1784235698447 mono_ms=2681 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:lia: resuming session 9e0df17e-f217-4446-97a4-f528a56024ba under claude-spt (pid 50824) — online at bind\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698567 mono_ms=2801 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698582 mono_ms=2816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698586 mono_ms=2819 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 58672) — online at bind\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698610 mono_ms=2844 event=session-detach session=5 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698610 mono_ms=2844 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=21 role=brain wall_ms=1784235698714 mono_ms=2948 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=22 role=brain wall_ms=1784235698715 mono_ms=2949 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=23 role=brain wall_ms=1784235698716 mono_ms=2950 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=24 role=brain wall_ms=1784235698717 mono_ms=2950 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=23 role=brain stream-subscriber stream=2 wall_ms=1784235698735 mono_ms=2968 event=stream-sub-attach stream=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=24 role=brain stream-subscriber stream=4 wall_ms=1784235698738 mono_ms=2972 event=stream-sub-attach stream=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=22 role=brain stream-subscriber stream=6 wall_ms=1784235698741 mono_ms=2975 event=stream-sub-attach stream=6 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=8 wall_ms=1784235698744 mono_ms=2978 event=stream-sub-attach stream=8 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=25 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=26 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=27 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=25 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=28 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=26 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=28 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=27 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=7 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698848 mono_ms=3082 event=controller-replaced session=5 new_conn=29 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698862 mono_ms=3096 event=controller-replaced session=2 new_conn=30 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=3 new_conn=32 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=4 new_conn=31 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n\n[Showing lines 1-123 of 159. Use :124 to continue]"}],"details":{"truncation":{"content":"=== spt broker stderr — generation 0 — pid 73156 ===\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n=== spt broker stderr — generation 0 — pid 91480 ===\nDOCS_SERVER_UP: http://localhost:5474\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n=== spt brain stderr — generation 0 — pid 47668 ===\nBRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 47668, generation 0, start-reason cold)\nCONN_LIFECYCLE: conn=2 role=brain wall_ms=1784235695891 mono_ms=125 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52932), Ip(192.168.1.81:52932)} }\nPAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52934), Ip(192.168.1.81:52934)} }\nCONN_LIFECYCLE: conn=3 role=brain wall_ms=1784235695924 mono_ms=158 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=3 role=brain wall_ms=1784235695924 mono_ms=158 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52965), Ip(192.168.1.81:52965)} }\nPAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52968), Ip(192.168.1.81:52968)} }\nBROKER_BIND_FAIL: Access is denied. (os error 5)\nDAEMON_EXIT: Access is denied. (os error 5)\nDAEMON_RESTART_RESUME_REFUSED:deployah: custody pid still alive — refusing to re-run over a live process (dup guard)\nDAEMON_RESTART_RESUME_REFUSED:doyle: custody pid still alive — refusing to re-run over a live process (dup guard)\nDAEMON_RESTART_RESUME_REFUSED:lia: custody pid still alive — refusing to re-run over a live process (dup guard)\nCONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235696209 mono_ms=443 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n=== spt broker stderr — generation 0 — pid 82868 ===\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nBROKER_BIND_FAIL: Access is denied. (os error 5)\nDAEMON_EXIT: Access is denied. (os error 5)\nBRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\nCONN_LIFECYCLE: conn=5 role=brain wall_ms=1784235696416 mono_ms=650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_IPC_READER: spawned\nPUMP_IPC_READER: spawned\nCONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235696416 mono_ms=650 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=8 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=11 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=12 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=13 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=15 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONTROL_REAP_NO_SESSION:deployah: cleared stale controlled/driven_by (no broker session)\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nENDPOINT_AUTOSTART:mobile-gw adapter=mobile session=ff56c92af30ecd3e pid=43680 (startup default)\nCONN_WRITE_RETIRED: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 — organic write failure (BrokenPipe: The pipe is being closed. (os error 232)); physical broker conn poisoned + retired, never reused (same retire behavior as POISONED — only the failure class differs) [REQ-CONN-POISON-DIAL-SCOPE]\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 event=writer-exit role=controller session=1 reason=write-failed kind=BrokenPipe [REQ-CONN-POISON-ATTRIBUTION]\nDRIVEN_BY_SELFHEAL_OFFLINE:deployah: cleared stale driven_by (no session)\nLIVENESS_RECONCILE_OFFLINE:deployah: no live broker session (dead harness)\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=session-detach session=1 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=transport-close poisoned=true timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698228 mono_ms=2462 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONTROL_REAP_NO_SESSION:doyle: cleared stale controlled/driven_by (no broker session)\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698260 mono_ms=2493 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nENDPOINT_AUTOSTART:lia adapter=claude-spt session=eedd44363fd38392 pid=50824 (startup default)\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698264 mono_ms=2498 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nDRIVEN_BY_SELFHEAL_OFFLINE:doyle: cleared stale driven_by (no session)\nLIVENESS_RECONCILE_OFFLINE:doyle: no live broker session (dead harness)\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698291 mono_ms=2524 event=session-detach session=2 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698291 mono_ms=2524 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONTROL_REAP_NO_SESSION:lia: cleared stale controlled/driven_by (no broker session)\nLIVENESS_RECONCILE_OFFLINE:lia: no live broker session (dead harness)\nCONTROL_REAP_NO_SESSION:perri: cleared stale controlled/driven_by (no broker session)\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698348 mono_ms=2582 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698363 mono_ms=2597 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698366 mono_ms=2600 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:deployah: resuming session 89cc9038-e5d9-429e-b4a9-40fba8af71ee under claude-spt:ccs (pid 40376) — online at bind\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=session-detach session=3 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698404 mono_ms=2638 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698419 mono_ms=2653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698422 mono_ms=2656 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:doyle: resuming session a2fdb848-6643-4e10-b221-6baee7e91b7b under claude-spt:ccs (pid 60892) — online at bind\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698447 mono_ms=2681 event=session-detach session=4 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698447 mono_ms=2681 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nSPAWN_DEDUP:lia: endpoint already has a live session 2 — single-flight wake no-op ack [REQ-SPAWN-COLLISION-GUARD-LIVE-DUP]\nCONN_LIFECYCLE: conn=19 role=brain wall_ms=1784235698447 mono_ms=2681 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=19 role=brain wall_ms=1784235698447 mono_ms=2681 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:lia: resuming session 9e0df17e-f217-4446-97a4-f528a56024ba under claude-spt (pid 50824) — online at bind\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698567 mono_ms=2801 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698582 mono_ms=2816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698586 mono_ms=2819 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 58672) — online at bind\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698610 mono_ms=2844 event=session-detach session=5 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698610 mono_ms=2844 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=21 role=brain wall_ms=1784235698714 mono_ms=2948 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=22 role=brain wall_ms=1784235698715 mono_ms=2949 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=23 role=brain wall_ms=1784235698716 mono_ms=2950 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=24 role=brain wall_ms=1784235698717 mono_ms=2950 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=23 role=brain stream-subscriber stream=2 wall_ms=1784235698735 mono_ms=2968 event=stream-sub-attach stream=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=24 role=brain stream-subscriber stream=4 wall_ms=1784235698738 mono_ms=2972 event=stream-sub-attach stream=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=22 role=brain stream-subscriber stream=6 wall_ms=1784235698741 mono_ms=2975 event=stream-sub-attach stream=6 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=8 wall_ms=1784235698744 mono_ms=2978 event=stream-sub-attach stream=8 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=25 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=26 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=27 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=25 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=28 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=26 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=28 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=27 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=7 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698848 mono_ms=3082 event=controller-replaced session=5 new_conn=29 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698862 mono_ms=3096 event=controller-replaced session=2 new_conn=30 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=3 new_conn=32 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=4 new_conn=31 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]","truncated":true,"truncatedBy":"lines","totalLines":159,"totalBytes":19038,"outputLines":123,"outputBytes":19038,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"=== spt broker stderr — generation 0 — pid 73156 ===\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n=== spt broker stderr — generation 0 — pid 91480 ===\nDOCS_SERVER_UP: http://localhost:5474\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n=== spt brain stderr — generation 0 — pid 47668 ===\nBRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 47668, generation 0, start-reason cold)\nCONN_LIFECYCLE: conn=2 role=brain wall_ms=1784235695891 mono_ms=125 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52932), Ip(192.168.1.81:52932)} }\nPAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52934), Ip(192.168.1.81:52934)} }\nCONN_LIFECYCLE: conn=3 role=brain wall_ms=1784235695924 mono_ms=158 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=3 role=brain wall_ms=1784235695924 mono_ms=158 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52965), Ip(192.168.1.81:52965)} }\nPAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52968), Ip(192.168.1.81:52968)} }\nBROKER_BIND_FAIL: Access is denied. (os error 5)\nDAEMON_EXIT: Access is denied. (os error 5)\nDAEMON_RESTART_RESUME_REFUSED:deployah: custody pid still alive — refusing to re-run over a live process (dup guard)\nDAEMON_RESTART_RESUME_REFUSED:doyle: custody pid still alive — refusing to re-run over a live process (dup guard)\nDAEMON_RESTART_RESUME_REFUSED:lia: custody pid still alive — refusing to re-run over a live process (dup guard)\nCONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235696209 mono_ms=443 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n=== spt broker stderr — generation 0 — pid 82868 ===\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nBROKER_BIND_FAIL: Access is denied. (os error 5)\nDAEMON_EXIT: Access is denied. (os error 5)\nBRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\nCONN_LIFECYCLE: conn=5 role=brain wall_ms=1784235696416 mono_ms=650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_IPC_READER: spawned\nPUMP_IPC_READER: spawned\nCONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235696416 mono_ms=650 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=8 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=11 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=12 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=13 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=15 role=brain wall_ms=1784235697668 mono_ms=1901 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONTROL_REAP_NO_SESSION:deployah: cleared stale controlled/driven_by (no broker session)\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nENDPOINT_AUTOSTART:mobile-gw adapter=mobile session=ff56c92af30ecd3e pid=43680 (startup default)\nCONN_WRITE_RETIRED: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 — organic write failure (BrokenPipe: The pipe is being closed. (os error 232)); physical broker conn poisoned + retired, never reused (same retire behavior as POISONED — only the failure class differs) [REQ-CONN-POISON-DIAL-SCOPE]\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 event=writer-exit role=controller session=1 reason=write-failed kind=BrokenPipe [REQ-CONN-POISON-ATTRIBUTION]\nDRIVEN_BY_SELFHEAL_OFFLINE:deployah: cleared stale driven_by (no session)\nLIVENESS_RECONCILE_OFFLINE:deployah: no live broker session (dead harness)\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=session-detach session=1 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=transport-close poisoned=true timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698228 mono_ms=2462 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONTROL_REAP_NO_SESSION:doyle: cleared stale controlled/driven_by (no broker session)\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698260 mono_ms=2493 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nENDPOINT_AUTOSTART:lia adapter=claude-spt session=eedd44363fd38392 pid=50824 (startup default)\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698264 mono_ms=2498 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nDRIVEN_BY_SELFHEAL_OFFLINE:doyle: cleared stale driven_by (no session)\nLIVENESS_RECONCILE_OFFLINE:doyle: no live broker session (dead harness)\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698291 mono_ms=2524 event=session-detach session=2 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698291 mono_ms=2524 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONTROL_REAP_NO_SESSION:lia: cleared stale controlled/driven_by (no broker session)\nLIVENESS_RECONCILE_OFFLINE:lia: no live broker session (dead harness)\nCONTROL_REAP_NO_SESSION:perri: cleared stale controlled/driven_by (no broker session)\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698348 mono_ms=2582 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698363 mono_ms=2597 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698366 mono_ms=2600 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:deployah: resuming session 89cc9038-e5d9-429e-b4a9-40fba8af71ee under claude-spt:ccs (pid 40376) — online at bind\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=session-detach session=3 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698404 mono_ms=2638 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698419 mono_ms=2653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698422 mono_ms=2656 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:doyle: resuming session a2fdb848-6643-4e10-b221-6baee7e91b7b under claude-spt:ccs (pid 60892) — online at bind\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698447 mono_ms=2681 event=session-detach session=4 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698447 mono_ms=2681 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nSPAWN_DEDUP:lia: endpoint already has a live session 2 — single-flight wake no-op ack [REQ-SPAWN-COLLISION-GUARD-LIVE-DUP]\nCONN_LIFECYCLE: conn=19 role=brain wall_ms=1784235698447 mono_ms=2681 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=19 role=brain wall_ms=1784235698447 mono_ms=2681 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:lia: resuming session 9e0df17e-f217-4446-97a4-f528a56024ba under claude-spt (pid 50824) — online at bind\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698567 mono_ms=2801 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698582 mono_ms=2816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698586 mono_ms=2819 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nWAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 58672) — online at bind\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698610 mono_ms=2844 event=session-detach session=5 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698610 mono_ms=2844 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=21 role=brain wall_ms=1784235698714 mono_ms=2948 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=22 role=brain wall_ms=1784235698715 mono_ms=2949 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=23 role=brain wall_ms=1784235698716 mono_ms=2950 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=24 role=brain wall_ms=1784235698717 mono_ms=2950 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=23 role=brain stream-subscriber stream=2 wall_ms=1784235698735 mono_ms=2968 event=stream-sub-attach stream=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=24 role=brain stream-subscriber stream=4 wall_ms=1784235698738 mono_ms=2972 event=stream-sub-attach stream=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=22 role=brain stream-subscriber stream=6 wall_ms=1784235698741 mono_ms=2975 event=stream-sub-attach stream=6 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=8 wall_ms=1784235698744 mono_ms=2978 event=stream-sub-attach stream=8 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=25 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=26 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=27 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=25 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=28 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=26 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=28 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=27 role=brain wall_ms=1784235698824 mono_ms=3058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=7 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698848 mono_ms=3082 event=controller-replaced session=5 new_conn=29 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698862 mono_ms=3096 event=controller-replaced session=2 new_conn=30 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=3 new_conn=32 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=4 new_conn=31 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]","startLine":1,"lineNumbers":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":159,"totalBytes":19038,"outputLines":123,"outputBytes":19038,"shownRange":{"start":1,"end":123},"nextOffset":124}}},"isError":false,"timestamp":1784247361129}}
{"type":"message","id":"7b7ee9c5","parentId":"2a84b022","timestamp":"2026-07-17T00:16:01.172Z","message":{"role":"toolResult","toolCallId":"call_kH2DNeOVCWrCMzD4yJtKNYQz|fc_05a4d8ea8a10ef0b016a597440fdf4819893ae37c97f10f46a","toolName":"glob","content":[{"type":"text","text":"# C:/Users/decid/AppData/Local/spt-core/\ndaemon-effects.log\nbrain.ready\ndeadline-e5b62b57-69a0-452c-9c7e-cd3708186344.json\nrecent_home\n## owlery/\n### mobile-gw/\n### hertz/\n### deployah/\ninfo.json\ndigest.log\n.idle\n### lia/\ninfo.json\n### webbie/\ninfo.json\ndigest.log\nspool.db\n.idle\napi.token\nready\nsessions.log\n.has-messages\n.info.lock\n#### nested/webbie-psyche/\npsyche-context.txt\npsyche-custody.json\n### todlando/\n.idle\n### doyle/\ndigest.log\n.more-done\ninfo.json\n.idle\nspool.db\n## scratch/pump/\nrecv-pull-27700.bundle\n## logs/\ndaemon.stderr.log\n## identity/\npump-ops.json\npump-heartbeat.json\nnotifs.db-shm\nnotifs.db-wal\nepoch\npeer-addrs.json\nroster.json\nnotifs.db\nvisibility.json\n### registry/\nSPT_DEV.json\nheard.meta\nBIGNET.json\n## adapters/_github/SaberMage-claude-spt/\nhook-trace.log\n### state/\n#### digest/\ndeployah.pos\ntodlando.pos\ndoyle.pos\n#### session/\nwebbie.sid\n## index/\nproject-index-stats.json\nproject-index.json\n### invalidations/\n## tracked/\n### .seed.git/\n#### objects/\n##### 46/\n8734caca81b1539e7caddfbe65ae816c16e57a\n959eef14dcc7e5b28828995ada0a257e0491a3\n##### 8b/\n406a3ecf72af38b08038a301e6d37a1f6973fa\n##### 89/\nf6c19cb2332d7d124ee892c8373ba25b2531b1\n##### 9a/\n05ca0aaa50546ac481766ed3dcb94019552271\n##### 6a/\nb25f654628c0589592bd56dcb457c3cd5bb03f\n2946dd1c01049dfb57a7f7500860d81e3899e2\n##### 2e/\nc32afbcb621de707cfdea6ecf242cdc6a71afc\n2ed0300c11bd2cb6ac9653874bbd8ffb1a13c8\n##### 10/\n9763e23dd5d52cae22e70b5f6642802fe4b7a8\n##### ef/\n31f530930a9eeb4e73a80931264b35b7140be0\n##### 2a/\na0d86a242d59e5424c4340055e7e358deadb81\n##### a1/\n9a47a67db5b9d8742bcfc92ab2711d71abad8d\n##### 80/\n94188371328df17ba0ca31a5d554300687eb1f\n##### a3/\n48bf5ddc948b1151f455398f5a42bfefa96f2b\n##### 49/\n848e94e625845db5053d5ece03c7f67a778814\n##### 67/\n5a924dbd83934a740566ecbf68eed8a82b2c04\n##### ba/\n910b5557c2ba5d61018f8cb1184c4cb86292f0\n##### 50/\n1f8838e7f2f25b396e9e06209655deab7aa8ce\n##### 55/\nd7ce96e1880590634f590ec634add166d51bd5\n##### 92/\nb3c705b0798859818cb0874f85bce95d7acbc3\n##### b7/\nd189ed4dd6da2eeb45c032a61248fc06df2ba6\n##### f6/\n0fd64210a666b275dc392949bbf304b7bb4463\n##### f3/\n106248a2cd51f659499b8fed348a43630e466b\n##### 3d/\nf5649d8442b385cb527cee6190479df40d3fe5\n##### 84/\n57b910246558ec82dea934f763e53a0f20e65b\n##### 87/\n2e9906a92b63fcc6a1ecc1f80897211421e4cd\n##### b1/\n1c2947bd526650dbe05baa5a392783852923be\n##### 40/\n3ddbe524a1f7d1f8b6bf5d4247830e25e3272d\n##### 70/\n860d58426209cdc4e5861b68359b9333adde2b\n##### 60/\n84d603cd2eec1e50728111665600410351cee3\n##### 6f/\n0cbedb1bdcea3712401345059cc79a10edb410\n##### da/\n281d2ee6ce5e6a6e4ae8c85d77ad27cffb0055\n##### 6e/\n02822e530f0e4c854de813c8ee75fb4d1c0cea\n12a37aeacc1da305b116d6d8f8e8f3e1389055\n##### e7/\n35412136f5f868ca803fabf5a5cfb4d678c3a3\n##### db/\n1f1dfa7a882a27a6a359e941ba26e084907562\n##### 00/\nf7bd2007a191bd9cfce554cbaa5fddc94248c6\n##### 86/\n3ccbbc80056b45eb6831e80bc3b5cedf184ccd\n##### 38/\n93743a78043b659ed354ba71ea5a53e357532b\n##### de/\n1b3d33f64ce8dfa68087eb1e515a6a0b9f7629\n##### 9d/\n2976a6de546dcb7006f498535debe443eda6c3\n##### 9c/\n46cb955e6afad7173ac1b23e9e536651e43d18\n##### e6/\nbcecb592dc2434d5f0007cb1506b16cc543c2c\n##### 36/\n49f6fffcf3bd684c46985e52778554d9feed32\n##### f4/\nf3f3abf43dc5130715d5bd3d1687ee88ab1916\n##### pack/\npack-1367caafebbecebbde7f157381405c2bccf9136b.pack\n##### 0f/\nd56f37ee04f10e17517e3496abd925e3267de9\n##### bb/\n#### refs/heads/\np-github-com-bigscreenvr-spt-bs-core\na-deployah\na-doyle\na-webbie\n#### worktrees/\n##### github-com-bigscreenvr-spt-bs-core/\nCOMMIT_EDITMSG\nindex\n###### logs/\nHEAD\n##### deployah/\nCOMMIT_EDITMSG\nindex\n###### logs/\nHEAD\n##### doyle/\nCOMMIT_EDITMSG\nindex\n###### logs/\nHEAD\n##### webbie/\nCOMMIT_EDITMSG\nindex\nORIG_HEAD\nHEAD\ncommondir\ngitdir\n###### logs/\nHEAD\n#### logs/refs/heads/\np-github-com-bigscreenvr-spt-bs-core\na-deployah\na-doyle\na-webbie\n### projects/github-com-bigscreenvr-spt-bs-core/\n#### deployah/\nproject-context.md\n#### doyle/\nproject-context.md\n### agents/\n#### deployah/\nlive-context.md\n#### doyle/\nlive-context.md\n#### webbie/\nlive-context.md\n## recent_home_projects/\ngithub-com-bigscreenvr-website\n\n[200 results limit reached. Use limit=400 for more]"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core","fileCount":200,"files":["C:/Users/decid/AppData/Local/spt-core/owlery/mobile-gw/","C:/Users/decid/AppData/Local/spt-core/scratch/pump/recv-pull-27700.bundle","C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","C:/Users/decid/AppData/Local/spt-core/daemon-effects.log","C:/Users/decid/AppData/Local/spt-core/identity/","C:/Users/decid/AppData/Local/spt-core/identity/pump-ops.json","C:/Users/decid/AppData/Local/spt-core/owlery/hertz/","C:/Users/decid/AppData/Local/spt-core/scratch/pump/","C:/Users/decid/AppData/Local/spt-core/brain.ready","C:/Users/decid/AppData/Local/spt-core/owlery/","C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json","C:/Users/decid/AppData/Local/spt-core/identity/notifs.db-shm","C:/Users/decid/AppData/Local/spt-core/identity/notifs.db-wal","C:/Users/decid/AppData/Local/spt-core/owlery/deployah/","C:/Users/decid/AppData/Local/spt-core/owlery/deployah/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/lia/","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/","C:/Users/decid/AppData/Local/spt-core/owlery/lia/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/info.json","C:/Users/decid/AppData/Local/spt-core/adapters/_github/SaberMage-claude-spt/hook-trace.log","C:/Users/decid/AppData/Local/spt-core/owlery/todlando/","C:/Users/decid/AppData/Local/spt-core/owlery/doyle/","C:/Users/decid/AppData/Local/spt-core/identity/registry/","C:/Users/decid/AppData/Local/spt-core/identity/registry/SPT_DEV.json","C:/Users/decid/AppData/Local/spt-core/identity/registry/heard.meta","C:/Users/decid/AppData/Local/spt-core/identity/registry/BIGNET.json","C:/Users/decid/AppData/Local/spt-core/identity/epoch","C:/Users/decid/AppData/Local/spt-core/index/","C:/Users/decid/AppData/Local/spt-core/index/project-index-stats.json","C:/Users/decid/AppData/Local/spt-core/index/project-index.json","C:/Users/decid/AppData/Local/spt-core/index/invalidations/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/refs/heads/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/github-com-bigscreenvr-spt-bs-core/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/logs/refs/heads/p-github-com-bigscreenvr-spt-bs-core","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/github-com-bigscreenvr-spt-bs-core/logs/HEAD","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/refs/heads/p-github-com-bigscreenvr-spt-bs-core","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/46/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/46/8734caca81b1539e7caddfbe65ae816c16e57a","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/github-com-bigscreenvr-spt-bs-core/COMMIT_EDITMSG","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/8b/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/github-com-bigscreenvr-spt-bs-core/index","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/8b/406a3ecf72af38b08038a301e6d37a1f6973fa","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/89/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/89/f6c19cb2332d7d124ee892c8373ba25b2531b1","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/9a/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/9a/05ca0aaa50546ac481766ed3dcb94019552271","C:/Users/decid/AppData/Local/spt-core/tracked/projects/github-com-bigscreenvr-spt-bs-core/deployah/","C:/Users/decid/AppData/Local/spt-core/tracked/projects/github-com-bigscreenvr-spt-bs-core/deployah/project-context.md","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/deployah/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/logs/refs/heads/a-deployah","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/deployah/logs/HEAD","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/refs/heads/a-deployah","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/6a/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/6a/b25f654628c0589592bd56dcb457c3cd5bb03f","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/deployah/COMMIT_EDITMSG","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/deployah/index","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/2e/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/2e/c32afbcb621de707cfdea6ecf242cdc6a71afc","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/10/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/10/9763e23dd5d52cae22e70b5f6642802fe4b7a8","C:/Users/decid/AppData/Local/spt-core/tracked/agents/deployah/","C:/Users/decid/AppData/Local/spt-core/tracked/agents/deployah/live-context.md","C:/Users/decid/AppData/Local/spt-core/owlery/deployah/digest.log","C:/Users/decid/AppData/Local/spt-core/owlery/deployah/.idle","C:/Users/decid/AppData/Local/spt-core/adapters/_github/SaberMage-claude-spt/state/digest/deployah.pos","C:/Users/decid/AppData/Local/spt-core/owlery/doyle/digest.log","C:/Users/decid/AppData/Local/spt-core/identity/peer-addrs.json","C:/Users/decid/AppData/Local/spt-core/identity/roster.json","C:/Users/decid/AppData/Local/spt-core/owlery/doyle/.more-done","C:/Users/decid/AppData/Local/spt-core/owlery/todlando/.idle","C:/Users/decid/AppData/Local/spt-core/adapters/_github/SaberMage-claude-spt/state/digest/todlando.pos","C:/Users/decid/AppData/Local/spt-core/owlery/doyle/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/doyle/.idle","C:/Users/decid/AppData/Local/spt-core/adapters/_github/SaberMage-claude-spt/state/digest/doyle.pos","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/ef/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/ef/31f530930a9eeb4e73a80931264b35b7140be0","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/2a/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/2a/a0d86a242d59e5424c4340055e7e358deadb81","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/a1/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/a1/9a47a67db5b9d8742bcfc92ab2711d71abad8d","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/80/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/80/94188371328df17ba0ca31a5d554300687eb1f","C:/Users/decid/AppData/Local/spt-core/tracked/projects/github-com-bigscreenvr-spt-bs-core/doyle/","C:/Users/decid/AppData/Local/spt-core/tracked/projects/github-com-bigscreenvr-spt-bs-core/doyle/project-context.md","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/doyle/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/logs/refs/heads/a-doyle","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/doyle/logs/HEAD","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/refs/heads/a-doyle","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/a3/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/a3/48bf5ddc948b1151f455398f5a42bfefa96f2b","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/doyle/COMMIT_EDITMSG","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/49/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/doyle/index","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/49/848e94e625845db5053d5ece03c7f67a778814","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/67/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/67/5a924dbd83934a740566ecbf68eed8a82b2c04","C:/Users/decid/AppData/Local/spt-core/tracked/agents/doyle/","C:/Users/decid/AppData/Local/spt-core/tracked/agents/doyle/live-context.md","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/ba/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/ba/910b5557c2ba5d61018f8cb1184c4cb86292f0","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/50/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/50/1f8838e7f2f25b396e9e06209655deab7aa8ce","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/55/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/55/d7ce96e1880590634f590ec634add166d51bd5","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/92/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/92/b3c705b0798859818cb0874f85bce95d7acbc3","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/b7/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/b7/d189ed4dd6da2eeb45c032a61248fc06df2ba6","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/f6/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/f6/0fd64210a666b275dc392949bbf304b7bb4463","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/f3/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/f3/106248a2cd51f659499b8fed348a43630e466b","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/3d/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/3d/f5649d8442b385cb527cee6190479df40d3fe5","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/84/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/84/57b910246558ec82dea934f763e53a0f20e65b","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/87/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/87/2e9906a92b63fcc6a1ecc1f80897211421e4cd","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/b1/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/b1/1c2947bd526650dbe05baa5a392783852923be","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/40/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/40/3ddbe524a1f7d1f8b6bf5d4247830e25e3272d","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/2e/2ed0300c11bd2cb6ac9653874bbd8ffb1a13c8","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/70/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/70/860d58426209cdc4e5861b68359b9333adde2b","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/60/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/60/84d603cd2eec1e50728111665600410351cee3","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/6f/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/6f/0cbedb1bdcea3712401345059cc79a10edb410","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/da/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/da/281d2ee6ce5e6a6e4ae8c85d77ad27cffb0055","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/6e/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/6e/02822e530f0e4c854de813c8ee75fb4d1c0cea","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/6a/2946dd1c01049dfb57a7f7500860d81e3899e2","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/e7/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/e7/35412136f5f868ca803fabf5a5cfb4d678c3a3","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/db/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/db/1f1dfa7a882a27a6a359e941ba26e084907562","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/00/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/00/f7bd2007a191bd9cfce554cbaa5fddc94248c6","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/86/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/86/3ccbbc80056b45eb6831e80bc3b5cedf184ccd","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/38/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/38/93743a78043b659ed354ba71ea5a53e357532b","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/de/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/de/1b3d33f64ce8dfa68087eb1e515a6a0b9f7629","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/6e/12a37aeacc1da305b116d6d8f8e8f3e1389055","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/9d/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/9d/2976a6de546dcb7006f498535debe443eda6c3","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/46/959eef14dcc7e5b28828995ada0a257e0491a3","C:/Users/decid/AppData/Local/spt-core/owlery/doyle/spool.db","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/webbie/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/logs/refs/heads/a-webbie","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/logs/refs/heads/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/webbie/logs/HEAD","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/refs/heads/a-webbie","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/9c/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/9c/46cb955e6afad7173ac1b23e9e536651e43d18","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/webbie/COMMIT_EDITMSG","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/e6/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/webbie/index","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/e6/bcecb592dc2434d5f0007cb1506b16cc543c2c","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/36/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/36/49f6fffcf3bd684c46985e52778554d9feed32","C:/Users/decid/AppData/Local/spt-core/tracked/agents/webbie/","C:/Users/decid/AppData/Local/spt-core/tracked/agents/webbie/live-context.md","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/webbie/ORIG_HEAD","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/webbie/HEAD","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/webbie/logs/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/webbie/commondir","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/webbie/gitdir","C:/Users/decid/AppData/Local/spt-core/tracked/agents/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/worktrees/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/f4/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/f4/f3f3abf43dc5130715d5bd3d1687ee88ab1916","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/pack/pack-1367caafebbecebbde7f157381405c2bccf9136b.pack","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/digest.log","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/nested/webbie-psyche/","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/nested/webbie-psyche/psyche-context.txt","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/nested/webbie-psyche/psyche-custody.json","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/nested/","C:/Users/decid/AppData/Local/spt-core/deadline-e5b62b57-69a0-452c-9c7e-cd3708186344.json","C:/Users/decid/AppData/Local/spt-core/adapters/_github/SaberMage-claude-spt/state/session/","C:/Users/decid/AppData/Local/spt-core/adapters/_github/SaberMage-claude-spt/state/session/webbie.sid","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/spool.db","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/.idle","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/api.token","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/ready","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/sessions.log","C:/Users/decid/AppData/Local/spt-core/identity/notifs.db","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/.has-messages","C:/Users/decid/AppData/Local/spt-core/recent_home","C:/Users/decid/AppData/Local/spt-core/recent_home_projects/","C:/Users/decid/AppData/Local/spt-core/recent_home_projects/github-com-bigscreenvr-website","C:/Users/decid/AppData/Local/spt-core/identity/visibility.json","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/.info.lock","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/0f/","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/0f/d56f37ee04f10e17517e3496abd925e3267de9","C:/Users/decid/AppData/Local/spt-core/tracked/.seed.git/objects/bb/"],"truncated":true,"resultLimitReached":200,"cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","meta":{"limits":{"resultLimit":{"reached":200,"suggestion":400}}}},"isError":false,"timestamp":1784247361171}}
{"type":"message","id":"bd8f9439","parentId":"7b7ee9c5","timestamp":"2026-07-17T00:16:15.091Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Planning log gap analysis**\n\n**Planning parallel log pattern searches**"},{"type":"toolCall","id":"call_u9BADqfTnY1T3ICPx3sRoh5Y|fc_05a4d8ea8a10ef0b016a59744f08a48198baafcc8d84f4f4b1","name":"read","arguments":{"i":"Reading pump heartbeat state","path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json","selector":"raw"}},{"type":"toolCall","id":"call_7UfuiY1aa7h62x58ZddkEPzD|fc_05a4d8ea8a10ef0b016a59744f08ac8198b500aeda049332a0","name":"read","arguments":{"i":"Reading pump operations state","path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-ops.json","selector":"raw"}},{"type":"toolCall","id":"call_Nrgyy1h4fgjzxBN2Owhm87jD|fc_05a4d8ea8a10ef0b016a59744f08b48198ab5e75bccd4c5749","name":"read","arguments":{"i":"Reading brain readiness state","path":"C:/Users/decid/AppData/Local/spt-core/brain.ready","selector":"raw"}},{"type":"toolCall","id":"call_YBIqr8mVLoKABt9ZODS1NCUK|fc_05a4d8ea8a10ef0b016a59744f08b88198bfff46e73e642bb1","name":"read","arguments":{"i":"Reading daemon readiness state","path":"C:/Users/decid/AppData/Local/spt-core/ready","selector":"raw"}},{"type":"toolCall","id":"call_vL2qN4hw3i400YgDrBvlob5J|fc_05a4d8ea8a10ef0b016a59744f08c0819896e5c1cacdefa663","name":"read","arguments":{"i":"Reading runtime session ledger","path":"C:/Users/decid/AppData/Local/spt-core/sessions.log","selector":"raw"}},{"type":"toolCall","id":"call_yFRT4kcoE4kxtSbrGbvDEFpP|fc_05a4d8ea8a10ef0b016a59744f08c48198b6e87a52b88057fb","name":"read","arguments":{"i":"Reading daemon effect ledger","path":"C:/Users/decid/AppData/Local/spt-core/daemon-effects.log","selector":"raw"}},{"type":"toolCall","id":"call_PsRyYP7SutVyNXmQgAR1o1t0|fc_05a4d8ea8a10ef0b016a59744f08cc8198bb44b8d51a53bd2b","name":"grep","arguments":{"i":"Finding timed lifecycle closures","pattern":"timed_out=true|WRITE_TIMEOUT|READ_TIMEOUT|TIMEOUT|timed out|exceeded the [0-9]+s bound","path":"C:/Users/decid/AppData/Local/spt-core/logs","selector":null,"case":false,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_T4x3E5NdozBmfDxVqp93DHJY|fc_05a4d8ea8a10ef0b016a59744f08d08198954972606fb839fc","name":"grep","arguments":{"i":"Finding pump liveness markers","pattern":"PUMP_[A-Z_]+|heartbeat|HEARTBEAT|peer pump|IPC_READER","path":"C:/Users/decid/AppData/Local/spt-core/logs","selector":null,"case":true,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_gDnF0Yp47cBjwX6hI05bm3fo|fc_05a4d8ea8a10ef0b016a59744f08d481989597994402646d75","name":"grep","arguments":{"i":"Finding process generations","pattern":"=== spt (broker|brain) stderr|BRAIN_UP|BRAIN_RESUMED|BRAIN_EXIT|BROKER_|DAEMON_EXIT","path":"C:/Users/decid/AppData/Local/spt-core/logs","selector":null,"case":true,"gitignore":false,"skip":null}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":12050,"output":688,"cacheRead":16896,"cacheWrite":0,"totalTokens":29634,"reasoningTokens":180,"cost":{"input":0.060250000000000005,"output":0.020640000000000002,"cacheRead":0.008447999999999999,"cacheWrite":0,"total":0.089338}},"stopReason":"toolUse","timestamp":1784247361218,"responseId":"resp_05a4d8ea8a10ef0b016a5974417370819896f5e525db632b6e","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a597442895c8198bc7a792e19b639ba","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXRPxop7ASn4VN1IKd0Pika3UJF42RSFQT7rtIPmNocALI0cgZiwOwQdgchxst2glHRg2tDy3LOD8dfZU9cvC9XXTwJHGaiXhjiaIDe8chIHjRRnclq_fjoBqRNlYS8A8NTPd7dIXsBQKdy46w9cBf3bmIyXBvBtv1cXV_LoDWgAjTYEKPuS5jjwh0YDLBM04kSTl7NLyVDdbOftsusZoYHqE_dloZL7xP9S5mo5een0kFN2Kj6KV-mL-hdbIz1NPbVtt7QDdDvggBlXdm9Rwyl4AVP4XRqwrf-QDO-eYuTsEU36mva1kKYKghDgds4pOviKtQjI5q6QH0CIKuPq4NBKHX92Vr9ScelMhzgw1hCGX0VdjLmp1qgZTuKVEFVg0jpHYQjTslp2n5A6JnAO9G_rQoWBoJHseyQ0ZAAzwOnlw51-KFJj4_XJ8HubfYx2QeLTH2mVRLtQqBGjUtPb59YSba71nbPgr2Vt-EZRl9WZRcNkhkkBDPwvf5nPBhaw18hBXcUc5CvBpBNngzG8RL1XqyagEFmCs8VNXBG92fDRBpIwyYogumgwMJ2Hmn4i5IQXdeQgTviicLi-kFGKjzOpBj_bIIlDeBq5BVSQqGd_Dfob8Brgfepik1XY3GGY-vkll5AXHZ6rnL0z7Zl2QXCat8hpXmmPwSJxZDuD17m_sSQemFE0JaKfFdeGNe2mqnctzO9uGJy7-tGhko1oCythq6j_29qzZnLpo7MpHET5q5zn6urRSluzUeK14QJScDQoKIwRbzlOyr5Tl2bgLGavEpte26BHiqTJIjOTYni5CuzPkxNpY85tN4zka5kf8Jnl0zPg2of9FkazheuckrYIcthrN6aLRVyk6lh4974t0fZoCf6N9lNok4cr03XzdFijrIqkELkj7ABz797HRH-8WvZmhhXAC0JNlIS5Fn5F5cLU77kZ8nflggvuQnY0xxlQPPgwpRp_n6VHnUCpqH8AoPjX7U8CBPzybbpsIN_Yo5CbaSatkS1xarGCbQq2MSGxoF_IyycVYYyNx948WSR85myBDKbdTIS_dB49Q6MYKER2Pv2CeTAoArGmFXOBQ9eq0P3CA5cnfS0M7J88lN3jwgOSuZwd9Ox_W_FtUJu9JXIC16H4sCKTWYzjaxTB-lKJSkyAALw8bXSggux6_Dt-Ppwh7ooyPn_XdrKyzuIUJTKbF54dUVWqzt2NLXGdusSrDcD-iHy1RER9af2Eo4aZ2oV10yRXJK7Ie_z9Ae8HuUWsmC6gbbxTdz_5ER0efs_LqD69Scz8akRddl6h8G5qONjZy3sowajPrV9OHm9DBBP3-cbiOPji7adNiB_y96UshrrOOgPuKjOhobRgsVa12d8CIOZUscy0P3xwg1S5uR0OaUNA2u4FCyBqRWmSV6QywN7xqAORoOiVo5bycEIP7p63Y3ARMBo-MH_2LWwLGEUWU3A15MWFRYMkLDqcbE1UL7TYLHhJ-2vwXsIcO1Oe1cQd6mb9fmKkYZCB-ukZCSsMBAWuMfi1UqhMO10whYvJOYf5w9uamAaegJmff22TkGuvB7Wua8n1uKn4bpJb37y6FWT4AX6ee1GS6OJY_f155tXkeR3M8vvmF9WF2ASI0GXcIK7D2q-bVf-Yxkfkl-EhX4r5w2LRKcS_GkEj71OSGXCBS2-UkIuEFaQ8NgXbTIulzmgftAj4wCiUaeCBKMUlITFBfeYUR94PsX6crd5AzZlP_fuaIfNOXCElWbCBui7bCKf4ZrNraISGNS0ybv5Le1TGm51ssEjzfsH_KAPDHAIKrD7osx9WIUtIp_mUzDzNn5G8wuYW-0S8eTAlim2kyC_TYf10uUx-9Ar9dC8HbhL_H41ezLWJNEPGDVFV8oDU-el-yqcRsiRm4ShD9oOsAtBsKGOgAyS-_NJnmdsCofFOFBl7ygF6xKDcCvXabqWB1TyODM6O32tactE_4v-QZVxy1ZozDHiJbW8Wm7MWfYTT2ND9X8idGz8vuub6nfuY3Qk5hFUda6sTzFM2BYCWvH8yYiYThGAcCjxSpHWZRuV-TwXly108m30zk_9eHQ==","summary":[{"type":"summary_text","text":"**Planning log gap analysis**"},{"type":"summary_text","text":"**Planning parallel log pattern searches**"}]},{"id":"fc_05a4d8ea8a10ef0b016a59744f08a48198baafcc8d84f4f4b1","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading pump heartbeat state\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json\",\"selector\":\"raw\"}","call_id":"call_u9BADqfTnY1T3ICPx3sRoh5Y","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59744f08ac8198b500aeda049332a0","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading pump operations state\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/identity/pump-ops.json\",\"selector\":\"raw\"}","call_id":"call_7UfuiY1aa7h62x58ZddkEPzD","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59744f08b48198ab5e75bccd4c5749","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading brain readiness state\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/brain.ready\",\"selector\":\"raw\"}","call_id":"call_Nrgyy1h4fgjzxBN2Owhm87jD","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59744f08b88198bfff46e73e642bb1","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading daemon readiness state\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/ready\",\"selector\":\"raw\"}","call_id":"call_YBIqr8mVLoKABt9ZODS1NCUK","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59744f08c0819896e5c1cacdefa663","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading runtime session ledger\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/sessions.log\",\"selector\":\"raw\"}","call_id":"call_vL2qN4hw3i400YgDrBvlob5J","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59744f08c48198b6e87a52b88057fb","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading daemon effect ledger\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/daemon-effects.log\",\"selector\":\"raw\"}","call_id":"call_yFRT4kcoE4kxtSbrGbvDEFpP","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59744f08cc8198bb44b8d51a53bd2b","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding timed lifecycle closures\",\"pattern\":\"timed_out=true|WRITE_TIMEOUT|READ_TIMEOUT|TIMEOUT|timed out|exceeded the [0-9]+s bound\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs\",\"selector\":null,\"case\":false,\"gitignore\":false,\"skip\":null}","call_id":"call_PsRyYP7SutVyNXmQgAR1o1t0","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59744f08d08198954972606fb839fc","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding pump liveness markers\",\"pattern\":\"PUMP_[A-Z_]+|heartbeat|HEARTBEAT|peer pump|IPC_READER\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs\",\"selector\":null,\"case\":true,\"gitignore\":false,\"skip\":null}","call_id":"call_T4x3E5NdozBmfDxVqp93DHJY","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59744f08d481989597994402646d75","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding process generations\",\"pattern\":\"=== spt (broker|brain) stderr|BRAIN_UP|BRAIN_RESUMED|BRAIN_EXIT|BROKER_|DAEMON_EXIT\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs\",\"selector\":null,\"case\":true,\"gitignore\":false,\"skip\":null}","call_id":"call_gDnF0Yp47cBjwX6hI05bm3fo","name":"grep"}]},"duration":13871.143500000238,"ttft":1323.452699996531,"contextSnapshot":{"promptTokens":28946,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_u9BADqfTnY1T3ICPx3sRoh5Y|fc_05a4d8ea8a10ef0b016a59744f08a48198baafcc8d84f4f4b1","toolName":"read","startedAt":"2026-07-17T00:16:15.092Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json"},"intent":"Reading pump heartbeat state"},"id":"bd58ed7a","parentId":"bd8f9439","timestamp":"2026-07-17T00:16:15.092Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_7UfuiY1aa7h62x58ZddkEPzD|fc_05a4d8ea8a10ef0b016a59744f08ac8198b500aeda049332a0","toolName":"read","startedAt":"2026-07-17T00:16:15.092Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-ops.json"},"intent":"Reading pump operations state"},"id":"c00fb415","parentId":"bd58ed7a","timestamp":"2026-07-17T00:16:15.092Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_Nrgyy1h4fgjzxBN2Owhm87jD|fc_05a4d8ea8a10ef0b016a59744f08b48198ab5e75bccd4c5749","toolName":"read","startedAt":"2026-07-17T00:16:15.092Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/brain.ready"},"intent":"Reading brain readiness state"},"id":"e8b27994","parentId":"c00fb415","timestamp":"2026-07-17T00:16:15.092Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_YBIqr8mVLoKABt9ZODS1NCUK|fc_05a4d8ea8a10ef0b016a59744f08b88198bfff46e73e642bb1","toolName":"read","startedAt":"2026-07-17T00:16:15.092Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/ready"},"intent":"Reading daemon readiness state"},"id":"f61532bc","parentId":"e8b27994","timestamp":"2026-07-17T00:16:15.092Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_vL2qN4hw3i400YgDrBvlob5J|fc_05a4d8ea8a10ef0b016a59744f08c0819896e5c1cacdefa663","toolName":"read","startedAt":"2026-07-17T00:16:15.092Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/sessions.log"},"intent":"Reading runtime session ledger"},"id":"a68fe95e","parentId":"f61532bc","timestamp":"2026-07-17T00:16:15.092Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_yFRT4kcoE4kxtSbrGbvDEFpP|fc_05a4d8ea8a10ef0b016a59744f08c48198b6e87a52b88057fb","toolName":"read","startedAt":"2026-07-17T00:16:15.092Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/daemon-effects.log"},"intent":"Reading daemon effect ledger"},"id":"ec5d5976","parentId":"a68fe95e","timestamp":"2026-07-17T00:16:15.092Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_PsRyYP7SutVyNXmQgAR1o1t0|fc_05a4d8ea8a10ef0b016a59744f08cc8198bb44b8d51a53bd2b","toolName":"grep","startedAt":"2026-07-17T00:16:15.092Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs"},"intent":"Finding timed lifecycle closures"},"id":"f2e27f6b","parentId":"ec5d5976","timestamp":"2026-07-17T00:16:15.092Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_T4x3E5NdozBmfDxVqp93DHJY|fc_05a4d8ea8a10ef0b016a59744f08d08198954972606fb839fc","toolName":"grep","startedAt":"2026-07-17T00:16:15.092Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs"},"intent":"Finding pump liveness markers"},"id":"93e41bb3","parentId":"f2e27f6b","timestamp":"2026-07-17T00:16:15.092Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_gDnF0Yp47cBjwX6hI05bm3fo|fc_05a4d8ea8a10ef0b016a59744f08d481989597994402646d75","toolName":"grep","startedAt":"2026-07-17T00:16:15.092Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs"},"intent":"Finding process generations"},"id":"406ec874","parentId":"93e41bb3","timestamp":"2026-07-17T00:16:15.092Z"}
{"type":"message","id":"75614e8e","parentId":"406ec874","timestamp":"2026-07-17T00:16:15.095Z","message":{"role":"toolResult","toolCallId":"call_u9BADqfTnY1T3ICPx3sRoh5Y|fc_05a4d8ea8a10ef0b016a59744f08a48198baafcc8d84f4f4b1","toolName":"read","content":[{"type":"text","text":"1784247371915"}],"details":{"displayContent":{"text":"1784247371915","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json"}}},"isError":false,"timestamp":1784247375095}}
{"type":"message","id":"0b1acac7","parentId":"75614e8e","timestamp":"2026-07-17T00:16:15.095Z","message":{"role":"toolResult","toolCallId":"call_Nrgyy1h4fgjzxBN2Owhm87jD|fc_05a4d8ea8a10ef0b016a59744f08b48198ab5e75bccd4c5749","toolName":"read","content":[{"type":"text","text":"{\"pid\":47668,\"generation\":0,\"exe_hash\":\"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3\"}"}],"details":{"displayContent":{"text":"{\"pid\":47668,\"generation\":0,\"exe_hash\":\"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3\"}","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/brain.ready"}}},"isError":false,"timestamp":1784247375095}}
{"type":"message","id":"01b4079b","parentId":"0b1acac7","timestamp":"2026-07-17T00:16:15.096Z","message":{"role":"toolResult","toolCallId":"call_7UfuiY1aa7h62x58ZddkEPzD|fc_05a4d8ea8a10ef0b016a59744f08ac8198b500aeda049332a0","toolName":"read","content":[{"type":"text","text":"27701"}],"details":{"displayContent":{"text":"27701","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/identity/pump-ops.json"}}},"isError":false,"timestamp":1784247375096}}
{"type":"message","id":"284ae09d","parentId":"01b4079b","timestamp":"2026-07-17T00:16:15.107Z","message":{"role":"toolResult","toolCallId":"call_T4x3E5NdozBmfDxVqp93DHJY|fc_05a4d8ea8a10ef0b016a59744f08d08198954972606fb839fc","toolName":"grep","content":[{"type":"text","text":"# C:/Users/decid/AppData/Local/spt-core/logs/\n## daemon.stderr.log\n 28|DAEMON_EXIT: Access is denied. (os error 5)\n*29|BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n 30|CONN_LIFECYCLE: conn=5 role=brain wall_ms=1784235696416 mono_ms=650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*31|PUMP_IPC_READER: spawned\n*32|PUMP_IPC_READER: spawned\n 33|CONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235696416 mono_ms=650 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\n 34|CONN_LIFECYCLE: conn=8 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 35|CONN_LIFECYCLE: conn=9 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 164|CONN_LIFECYCLE: conn=49 role=brain wall_ms=1784235728987 mono_ms=33221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*165|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 166|CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 167|CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 168|CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729828 mono_ms=34062 event=stream-sub-attach stream=21 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n...\n 172|CONN_LIFECYCLE: conn=52 role=brain wall_ms=1784235729829 mono_ms=34063 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*173|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*174|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 175|CONN_LIFECYCLE: conn=53 role=brain wall_ms=1784235730129 mono_ms=34362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 176|CONN_LIFECYCLE: conn=54 role=brain wall_ms=1784235730129 mono_ms=34362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 177|CONN_LIFECYCLE: conn=53 role=brain wall_ms=1784235730129 mono_ms=34362 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 308|CONN_LIFECYCLE: conn=108 role=brain wall_ms=1784235755855 mono_ms=60089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*309|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*310|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*311|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 312|CONN_LIFECYCLE: conn=109 role=brain wall_ms=1784235759247 mono_ms=63480 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 313|CONN_LIFECYCLE: conn=109 role=brain wall_ms=1784235759247 mono_ms=63480 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 314|CONN_LIFECYCLE: conn=110 role=brain wall_ms=1784235760356 mono_ms=64589 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 338|CONN_LIFECYCLE: conn=120 role=brain wall_ms=1784235769326 mono_ms=73560 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*339|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*340|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 341|CONN_LIFECYCLE: conn=122 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 342|CONN_LIFECYCLE: conn=123 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 343|CONN_LIFECYCLE: conn=121 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 459|CONN_LIFECYCLE: conn=170 role=brain wall_ms=1784235794817 mono_ms=99050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*460|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*461|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 462|CONN_LIFECYCLE: conn=171 role=brain wall_ms=1784235799564 mono_ms=103798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 463|CONN_LIFECYCLE: conn=171 role=brain wall_ms=1784235799564 mono_ms=103798 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 464|CONN_LIFECYCLE: conn=172 role=brain wall_ms=1784235800029 mono_ms=104263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 552|CONN_LIFECYCLE: conn=208 role=brain wall_ms=1784235820620 mono_ms=124853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*553|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 554|CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 555|CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 556|CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823428 mono_ms=127662 event=stream-sub-attach stream=81 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n...\n 602|CONN_LIFECYCLE: conn=229 role=brain wall_ms=1784235834842 mono_ms=139075 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*603|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 604|CONN_LIFECYCLE: conn=230 role=brain wall_ms=1784235835683 mono_ms=139917 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 605|CONN_LIFECYCLE: conn=230 role=brain wall_ms=1784235835683 mono_ms=139917 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 606|CONN_LIFECYCLE: conn=231 role=brain wall_ms=1784235835684 mono_ms=139918 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 722|CONN_LIFECYCLE: conn=279 role=brain wall_ms=1784235861418 mono_ms=165651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*723|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*724|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 725|CONN_LIFECYCLE: conn=280 role=brain wall_ms=1784235865079 mono_ms=169312 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 726|CONN_LIFECYCLE: conn=280 role=brain wall_ms=1784235865079 mono_ms=169312 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 727|CONN_LIFECYCLE: conn=281 role=brain wall_ms=1784235865117 mono_ms=169351 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 787|CONN_LIFECYCLE: conn=305 role=brain wall_ms=1784235885238 mono_ms=189472 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*788|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 789|CONN_LIFECYCLE: conn=306 role=brain wall_ms=1784235890274 mono_ms=194508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 790|CONN_LIFECYCLE: conn=306 role=brain wall_ms=1784235890274 mono_ms=194508 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 791|CONN_LIFECYCLE: conn=307 role=brain wall_ms=1784235890875 mono_ms=195108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 834|CONN_LIFECYCLE: conn=325 role=brain wall_ms=1784235895314 mono_ms=199548 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*835|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 836|CONN_LIFECYCLE: conn=326 role=brain wall_ms=1784235900354 mono_ms=204588 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 837|CONN_LIFECYCLE: conn=326 role=brain wall_ms=1784235900354 mono_ms=204588 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 838|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n...\n 874|CONN_LIFECYCLE: conn=340 role=brain wall_ms=1784235910436 mono_ms=214669 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*875|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 876|CONN_LIFECYCLE: conn=341 role=brain wall_ms=1784235914193 mono_ms=218426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 877|CONN_LIFECYCLE: conn=341 role=brain wall_ms=1784235914193 mono_ms=218426 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 878|CONN_LIFECYCLE: conn=342 role=brain stream-subscriber stream=133 wall_ms=1784235914193 mono_ms=218426 event=stream-sub-attach stream=133 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n## daemon.stderr.log.1\n 3|BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n*4|BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n*5|PUMP_IPC_READER: spawned\n*6|PUMP_IPC_READER: spawned\n 7|DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 8|DISPATCH:3:Failed(\"failed to fill whole buffer\")\n 9|DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*10|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*11|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*12|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*13|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n 14|DISPATCH:4176:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 15|=== spt brain stderr — generation 3 — pid 56712 ===\n 16|BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 56712, generation 3, start-reason update)\n 17|BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n*18|BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n*19|PUMP_IPC_READER: spawned\n*20|PUMP_IPC_READER: spawned\n 21|DISPATCH:3:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 22|DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*23|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*24|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*25|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*26|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n 27|DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*28|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*29|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*30|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*31|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*32|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*33|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":40,"fileCount":2,"files":["C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1"],"fileMatches":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","count":20},{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1","count":20}],"truncated":true,"perFileLimitReached":20,"displayContent":"# C:/Users/decid/AppData/Local/spt-core/logs/\n## daemon.stderr.log\n  28│DAEMON_EXIT: Access is denied. (os error 5)\n *29│BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n  30│CONN_LIFECYCLE: conn=5 role=brain wall_ms=1784235696416 mono_ms=650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *31│PUMP_IPC_READER: spawned\n *32│PUMP_IPC_READER: spawned\n  33│CONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235696416 mono_ms=650 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\n  34│CONN_LIFECYCLE: conn=8 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  35│CONN_LIFECYCLE: conn=9 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 164│CONN_LIFECYCLE: conn=49 role=brain wall_ms=1784235728987 mono_ms=33221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*165│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 166│CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 167│CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 168│CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729828 mono_ms=34062 event=stream-sub-attach stream=21 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 172│CONN_LIFECYCLE: conn=52 role=brain wall_ms=1784235729829 mono_ms=34063 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*173│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*174│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 175│CONN_LIFECYCLE: conn=53 role=brain wall_ms=1784235730129 mono_ms=34362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 176│CONN_LIFECYCLE: conn=54 role=brain wall_ms=1784235730129 mono_ms=34362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 177│CONN_LIFECYCLE: conn=53 role=brain wall_ms=1784235730129 mono_ms=34362 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 308│CONN_LIFECYCLE: conn=108 role=brain wall_ms=1784235755855 mono_ms=60089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*309│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*310│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*311│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 312│CONN_LIFECYCLE: conn=109 role=brain wall_ms=1784235759247 mono_ms=63480 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 313│CONN_LIFECYCLE: conn=109 role=brain wall_ms=1784235759247 mono_ms=63480 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 314│CONN_LIFECYCLE: conn=110 role=brain wall_ms=1784235760356 mono_ms=64589 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 338│CONN_LIFECYCLE: conn=120 role=brain wall_ms=1784235769326 mono_ms=73560 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*339│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*340│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 341│CONN_LIFECYCLE: conn=122 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 342│CONN_LIFECYCLE: conn=123 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 343│CONN_LIFECYCLE: conn=121 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 459│CONN_LIFECYCLE: conn=170 role=brain wall_ms=1784235794817 mono_ms=99050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*460│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*461│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 462│CONN_LIFECYCLE: conn=171 role=brain wall_ms=1784235799564 mono_ms=103798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 463│CONN_LIFECYCLE: conn=171 role=brain wall_ms=1784235799564 mono_ms=103798 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 464│CONN_LIFECYCLE: conn=172 role=brain wall_ms=1784235800029 mono_ms=104263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 552│CONN_LIFECYCLE: conn=208 role=brain wall_ms=1784235820620 mono_ms=124853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*553│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 554│CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 555│CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 556│CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823428 mono_ms=127662 event=stream-sub-attach stream=81 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 602│CONN_LIFECYCLE: conn=229 role=brain wall_ms=1784235834842 mono_ms=139075 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*603│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 604│CONN_LIFECYCLE: conn=230 role=brain wall_ms=1784235835683 mono_ms=139917 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 605│CONN_LIFECYCLE: conn=230 role=brain wall_ms=1784235835683 mono_ms=139917 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 606│CONN_LIFECYCLE: conn=231 role=brain wall_ms=1784235835684 mono_ms=139918 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 722│CONN_LIFECYCLE: conn=279 role=brain wall_ms=1784235861418 mono_ms=165651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*723│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*724│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 725│CONN_LIFECYCLE: conn=280 role=brain wall_ms=1784235865079 mono_ms=169312 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 726│CONN_LIFECYCLE: conn=280 role=brain wall_ms=1784235865079 mono_ms=169312 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 727│CONN_LIFECYCLE: conn=281 role=brain wall_ms=1784235865117 mono_ms=169351 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 787│CONN_LIFECYCLE: conn=305 role=brain wall_ms=1784235885238 mono_ms=189472 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*788│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 789│CONN_LIFECYCLE: conn=306 role=brain wall_ms=1784235890274 mono_ms=194508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 790│CONN_LIFECYCLE: conn=306 role=brain wall_ms=1784235890274 mono_ms=194508 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 791│CONN_LIFECYCLE: conn=307 role=brain wall_ms=1784235890875 mono_ms=195108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 834│CONN_LIFECYCLE: conn=325 role=brain wall_ms=1784235895314 mono_ms=199548 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*835│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 836│CONN_LIFECYCLE: conn=326 role=brain wall_ms=1784235900354 mono_ms=204588 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 837│CONN_LIFECYCLE: conn=326 role=brain wall_ms=1784235900354 mono_ms=204588 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 838│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n    │...\n 874│CONN_LIFECYCLE: conn=340 role=brain wall_ms=1784235910436 mono_ms=214669 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*875│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 876│CONN_LIFECYCLE: conn=341 role=brain wall_ms=1784235914193 mono_ms=218426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 877│CONN_LIFECYCLE: conn=341 role=brain wall_ms=1784235914193 mono_ms=218426 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 878│CONN_LIFECYCLE: conn=342 role=brain stream-subscriber stream=133 wall_ms=1784235914193 mono_ms=218426 event=stream-sub-attach stream=133 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n## daemon.stderr.log.1\n  3│BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n *4│BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n *5│PUMP_IPC_READER: spawned\n *6│PUMP_IPC_READER: spawned\n  7│DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n  8│DISPATCH:3:Failed(\"failed to fill whole buffer\")\n  9│DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*10│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*11│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*12│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*13│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n 14│DISPATCH:4176:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 15│=== spt brain stderr — generation 3 — pid 56712 ===\n 16│BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 56712, generation 3, start-reason update)\n 17│BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n*18│BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n*19│PUMP_IPC_READER: spawned\n*20│PUMP_IPC_READER: spawned\n 21│DISPATCH:3:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 22│DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*23│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*24│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*25│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*26│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n 27│DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*28│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*29│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*30│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*31│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*32│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*33│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)"},"isError":false,"timestamp":1784247375107}}
{"type":"message","id":"d92b69b9","parentId":"284ae09d","timestamp":"2026-07-17T00:16:15.109Z","message":{"role":"toolResult","toolCallId":"call_PsRyYP7SutVyNXmQgAR1o1t0|fc_05a4d8ea8a10ef0b016a59744f08cc8198bb44b8d51a53bd2b","toolName":"grep","content":[{"type":"text","text":"# C:/Users/decid/AppData/Local/spt-core/logs/\n## daemon.stderr.log\n 133|CONN_LIFECYCLE: conn=40 role=brain wall_ms=1784235716946 mono_ms=21180 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*134|INJECT_SETTLE_TIMEOUT:deployah: no PTY readiness echo within 400ms — proceeding (echo-verify guards head loss)\n 135|CONN_LIFECYCLE: conn=41 role=brain wall_ms=1784235718855 mono_ms=23088 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 136|CONN_LIFECYCLE: conn=41 role=brain wall_ms=1784235718855 mono_ms=23089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 137|CONN_LIFECYCLE: conn=6 role=brain wall_ms=1784235719089 mono_ms=23323 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 164|CONN_LIFECYCLE: conn=49 role=brain wall_ms=1784235728987 mono_ms=33221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*165|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 166|CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 167|CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 168|CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729828 mono_ms=34062 event=stream-sub-attach stream=21 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n...\n 172|CONN_LIFECYCLE: conn=52 role=brain wall_ms=1784235729829 mono_ms=34063 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*173|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*174|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 175|CONN_LIFECYCLE: conn=53 role=brain wall_ms=1784235730129 mono_ms=34362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 176|CONN_LIFECYCLE: conn=54 role=brain wall_ms=1784235730129 mono_ms=34362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 177|CONN_LIFECYCLE: conn=53 role=brain wall_ms=1784235730129 mono_ms=34362 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 308|CONN_LIFECYCLE: conn=108 role=brain wall_ms=1784235755855 mono_ms=60089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*309|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*310|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*311|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 312|CONN_LIFECYCLE: conn=109 role=brain wall_ms=1784235759247 mono_ms=63480 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 313|CONN_LIFECYCLE: conn=109 role=brain wall_ms=1784235759247 mono_ms=63480 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 314|CONN_LIFECYCLE: conn=110 role=brain wall_ms=1784235760356 mono_ms=64589 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 338|CONN_LIFECYCLE: conn=120 role=brain wall_ms=1784235769326 mono_ms=73560 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*339|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*340|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 341|CONN_LIFECYCLE: conn=122 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 342|CONN_LIFECYCLE: conn=123 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 343|CONN_LIFECYCLE: conn=121 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 459|CONN_LIFECYCLE: conn=170 role=brain wall_ms=1784235794817 mono_ms=99050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*460|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*461|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 462|CONN_LIFECYCLE: conn=171 role=brain wall_ms=1784235799564 mono_ms=103798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 463|CONN_LIFECYCLE: conn=171 role=brain wall_ms=1784235799564 mono_ms=103798 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 464|CONN_LIFECYCLE: conn=172 role=brain wall_ms=1784235800029 mono_ms=104263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 552|CONN_LIFECYCLE: conn=208 role=brain wall_ms=1784235820620 mono_ms=124853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*553|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 554|CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 555|CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 556|CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823428 mono_ms=127662 event=stream-sub-attach stream=81 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n...\n 602|CONN_LIFECYCLE: conn=229 role=brain wall_ms=1784235834842 mono_ms=139075 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*603|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 604|CONN_LIFECYCLE: conn=230 role=brain wall_ms=1784235835683 mono_ms=139917 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 605|CONN_LIFECYCLE: conn=230 role=brain wall_ms=1784235835683 mono_ms=139917 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 606|CONN_LIFECYCLE: conn=231 role=brain wall_ms=1784235835684 mono_ms=139918 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 722|CONN_LIFECYCLE: conn=279 role=brain wall_ms=1784235861418 mono_ms=165651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*723|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*724|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 725|CONN_LIFECYCLE: conn=280 role=brain wall_ms=1784235865079 mono_ms=169312 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 726|CONN_LIFECYCLE: conn=280 role=brain wall_ms=1784235865079 mono_ms=169312 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 727|CONN_LIFECYCLE: conn=281 role=brain wall_ms=1784235865117 mono_ms=169351 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 787|CONN_LIFECYCLE: conn=305 role=brain wall_ms=1784235885238 mono_ms=189472 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*788|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 789|CONN_LIFECYCLE: conn=306 role=brain wall_ms=1784235890274 mono_ms=194508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 790|CONN_LIFECYCLE: conn=306 role=brain wall_ms=1784235890274 mono_ms=194508 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 791|CONN_LIFECYCLE: conn=307 role=brain wall_ms=1784235890875 mono_ms=195108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 834|CONN_LIFECYCLE: conn=325 role=brain wall_ms=1784235895314 mono_ms=199548 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*835|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 836|CONN_LIFECYCLE: conn=326 role=brain wall_ms=1784235900354 mono_ms=204588 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 837|CONN_LIFECYCLE: conn=326 role=brain wall_ms=1784235900354 mono_ms=204588 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 838|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n...\n 874|CONN_LIFECYCLE: conn=340 role=brain wall_ms=1784235910436 mono_ms=214669 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*875|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 876|CONN_LIFECYCLE: conn=341 role=brain wall_ms=1784235914193 mono_ms=218426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 877|CONN_LIFECYCLE: conn=341 role=brain wall_ms=1784235914193 mono_ms=218426 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 878|CONN_LIFECYCLE: conn=342 role=brain stream-subscriber stream=133 wall_ms=1784235914193 mono_ms=218426 event=stream-sub-attach stream=133 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n...\n 965|CONN_LIFECYCLE: conn=379 role=brain wall_ms=1784235925858 mono_ms=230091 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*966|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 967|CONN_LIFECYCLE: conn=380 role=brain wall_ms=1784235930596 mono_ms=234830 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 968|CONN_LIFECYCLE: conn=380 role=brain wall_ms=1784235930596 mono_ms=234830 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 969|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n...\n 1029|CONN_LIFECYCLE: conn=405 role=brain wall_ms=1784235951106 mono_ms=255339 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1030|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n## daemon.stderr.log.1\n 9|DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*10|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*11|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*12|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*13|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n 14|DISPATCH:4176:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 15|=== spt brain stderr — generation 3 — pid 56712 ===\n 16|BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 56712, generation 3, start-reason update)\n...\n 22|DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*23|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*24|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*25|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*26|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n 27|DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*28|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*29|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*30|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*31|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*32|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*33|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*34|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 35|PSYCHE_COMMUNE_SYNC_FAIL:perri: echo-commune exited Some(101): thread 'main' (93648) panicked at src\\echo_commune.rs:71:18:\n 36|byte index 310571 is not a char boundary; it is inside '→' (bytes 310570..310573) of `{\"type\":\"custom-title\",\"customTitle\":\"perri @ HFENDULEAM (omp-spt/)\",\"sessionId\":\"c1427211-6e8d-4571-aeb8-30d36fa816a6\"}\n 37|{\"type\":\"custom-title\",\"customTitle\":\"perri @ HFENDULEAM (omp-spt/)\",\"sessionId\":\"c1427211-6e8d-4571-aeb8-30d36fa816a6\"}\n...\n 44|note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n*45|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*46|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*47|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*48|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*49|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":40,"fileCount":2,"files":["C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1"],"fileMatches":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","count":20},{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1","count":20}],"truncated":true,"perFileLimitReached":20,"displayContent":"# C:/Users/decid/AppData/Local/spt-core/logs/\n## daemon.stderr.log\n  133│CONN_LIFECYCLE: conn=40 role=brain wall_ms=1784235716946 mono_ms=21180 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *134│INJECT_SETTLE_TIMEOUT:deployah: no PTY readiness echo within 400ms — proceeding (echo-verify guards head loss)\n  135│CONN_LIFECYCLE: conn=41 role=brain wall_ms=1784235718855 mono_ms=23088 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  136│CONN_LIFECYCLE: conn=41 role=brain wall_ms=1784235718855 mono_ms=23089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  137│CONN_LIFECYCLE: conn=6 role=brain wall_ms=1784235719089 mono_ms=23323 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  164│CONN_LIFECYCLE: conn=49 role=brain wall_ms=1784235728987 mono_ms=33221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *165│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n  166│CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  167│CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  168│CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729828 mono_ms=34062 event=stream-sub-attach stream=21 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  172│CONN_LIFECYCLE: conn=52 role=brain wall_ms=1784235729829 mono_ms=34063 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *173│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n *174│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n  175│CONN_LIFECYCLE: conn=53 role=brain wall_ms=1784235730129 mono_ms=34362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  176│CONN_LIFECYCLE: conn=54 role=brain wall_ms=1784235730129 mono_ms=34362 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  177│CONN_LIFECYCLE: conn=53 role=brain wall_ms=1784235730129 mono_ms=34362 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  308│CONN_LIFECYCLE: conn=108 role=brain wall_ms=1784235755855 mono_ms=60089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *309│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n *310│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n *311│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n  312│CONN_LIFECYCLE: conn=109 role=brain wall_ms=1784235759247 mono_ms=63480 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  313│CONN_LIFECYCLE: conn=109 role=brain wall_ms=1784235759247 mono_ms=63480 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  314│CONN_LIFECYCLE: conn=110 role=brain wall_ms=1784235760356 mono_ms=64589 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  338│CONN_LIFECYCLE: conn=120 role=brain wall_ms=1784235769326 mono_ms=73560 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *339│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n *340│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n  341│CONN_LIFECYCLE: conn=122 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  342│CONN_LIFECYCLE: conn=123 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  343│CONN_LIFECYCLE: conn=121 role=brain wall_ms=1784235770902 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  459│CONN_LIFECYCLE: conn=170 role=brain wall_ms=1784235794817 mono_ms=99050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *460│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n *461│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n  462│CONN_LIFECYCLE: conn=171 role=brain wall_ms=1784235799564 mono_ms=103798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  463│CONN_LIFECYCLE: conn=171 role=brain wall_ms=1784235799564 mono_ms=103798 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  464│CONN_LIFECYCLE: conn=172 role=brain wall_ms=1784235800029 mono_ms=104263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  552│CONN_LIFECYCLE: conn=208 role=brain wall_ms=1784235820620 mono_ms=124853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *553│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n  554│CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  555│CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  556│CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823428 mono_ms=127662 event=stream-sub-attach stream=81 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  602│CONN_LIFECYCLE: conn=229 role=brain wall_ms=1784235834842 mono_ms=139075 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *603│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n  604│CONN_LIFECYCLE: conn=230 role=brain wall_ms=1784235835683 mono_ms=139917 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  605│CONN_LIFECYCLE: conn=230 role=brain wall_ms=1784235835683 mono_ms=139917 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  606│CONN_LIFECYCLE: conn=231 role=brain wall_ms=1784235835684 mono_ms=139918 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  722│CONN_LIFECYCLE: conn=279 role=brain wall_ms=1784235861418 mono_ms=165651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *723│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n *724│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n  725│CONN_LIFECYCLE: conn=280 role=brain wall_ms=1784235865079 mono_ms=169312 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  726│CONN_LIFECYCLE: conn=280 role=brain wall_ms=1784235865079 mono_ms=169312 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  727│CONN_LIFECYCLE: conn=281 role=brain wall_ms=1784235865117 mono_ms=169351 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  787│CONN_LIFECYCLE: conn=305 role=brain wall_ms=1784235885238 mono_ms=189472 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *788│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n  789│CONN_LIFECYCLE: conn=306 role=brain wall_ms=1784235890274 mono_ms=194508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  790│CONN_LIFECYCLE: conn=306 role=brain wall_ms=1784235890274 mono_ms=194508 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  791│CONN_LIFECYCLE: conn=307 role=brain wall_ms=1784235890875 mono_ms=195108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  834│CONN_LIFECYCLE: conn=325 role=brain wall_ms=1784235895314 mono_ms=199548 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *835│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n  836│CONN_LIFECYCLE: conn=326 role=brain wall_ms=1784235900354 mono_ms=204588 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  837│CONN_LIFECYCLE: conn=326 role=brain wall_ms=1784235900354 mono_ms=204588 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  838│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n     │...\n  874│CONN_LIFECYCLE: conn=340 role=brain wall_ms=1784235910436 mono_ms=214669 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *875│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n  876│CONN_LIFECYCLE: conn=341 role=brain wall_ms=1784235914193 mono_ms=218426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  877│CONN_LIFECYCLE: conn=341 role=brain wall_ms=1784235914193 mono_ms=218426 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  878│CONN_LIFECYCLE: conn=342 role=brain stream-subscriber stream=133 wall_ms=1784235914193 mono_ms=218426 event=stream-sub-attach stream=133 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  965│CONN_LIFECYCLE: conn=379 role=brain wall_ms=1784235925858 mono_ms=230091 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *966│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n  967│CONN_LIFECYCLE: conn=380 role=brain wall_ms=1784235930596 mono_ms=234830 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  968│CONN_LIFECYCLE: conn=380 role=brain wall_ms=1784235930596 mono_ms=234830 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  969│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n     │...\n 1029│CONN_LIFECYCLE: conn=405 role=brain wall_ms=1784235951106 mono_ms=255339 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1030│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n## daemon.stderr.log.1\n  9│DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*10│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*11│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*12│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*13│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n 14│DISPATCH:4176:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 15│=== spt brain stderr — generation 3 — pid 56712 ===\n 16│BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 56712, generation 3, start-reason update)\n   │...\n 22│DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*23│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*24│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*25│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*26│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n 27│DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*28│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*29│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*30│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*31│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*32│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*33│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*34│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 35│PSYCHE_COMMUNE_SYNC_FAIL:perri: echo-commune exited Some(101): thread 'main' (93648) panicked at src\\echo_commune.rs:71:18:\n 36│byte index 310571 is not a char boundary; it is inside '→' (bytes 310570..310573) of `{\"type\":\"custom-title\",\"customTitle\":\"perri @ HFENDULEAM (omp-spt/)\",\"sessionId\":\"c1427211-6e8d-4571-aeb8-30d36fa816a6\"}\n 37│{\"type\":\"custom-title\",\"customTitle\":\"perri @ HFENDULEAM (omp-spt/)\",\"sessionId\":\"c1427211-6e8d-4571-aeb8-30d36fa816a6\"}\n   │...\n 44│note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n*45│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*46│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*47│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n*48│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*49│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)"},"isError":false,"timestamp":1784247375109}}
{"type":"message","id":"74c7ba6d","parentId":"d92b69b9","timestamp":"2026-07-17T00:16:15.110Z","message":{"role":"toolResult","toolCallId":"call_YBIqr8mVLoKABt9ZODS1NCUK|fc_05a4d8ea8a10ef0b016a59744f08b88198bfff46e73e642bb1","toolName":"read","content":[{"type":"text","text":"Path 'C:/Users/decid/AppData/Local/spt-core/ready' not found"}],"details":{},"isError":true,"timestamp":1784247375110}}
{"type":"message","id":"ce340ec1","parentId":"74c7ba6d","timestamp":"2026-07-17T00:16:15.110Z","message":{"role":"toolResult","toolCallId":"call_vL2qN4hw3i400YgDrBvlob5J|fc_05a4d8ea8a10ef0b016a59744f08c0819896e5c1cacdefa663","toolName":"read","content":[{"type":"text","text":"Path 'C:/Users/decid/AppData/Local/spt-core/sessions.log' not found"}],"details":{},"isError":true,"timestamp":1784247375110}}
{"type":"message","id":"5b5b663d","parentId":"ce340ec1","timestamp":"2026-07-17T00:16:15.111Z","message":{"role":"toolResult","toolCallId":"call_gDnF0Yp47cBjwX6hI05bm3fo|fc_05a4d8ea8a10ef0b016a59744f08d481989597994402646d75","toolName":"grep","content":[{"type":"text","text":"# C:/Users/decid/AppData/Local/spt-core/logs/\n## daemon.stderr.log\n*1|=== spt broker stderr — generation 0 — pid 73156 ===\n 2|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*3|=== spt broker stderr — generation 0 — pid 91480 ===\n 4|DOCS_SERVER_UP: http://localhost:5474\n 5|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 6|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 7|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*8|=== spt brain stderr — generation 0 — pid 47668 ===\n*9|BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 47668, generation 0, start-reason cold)\n 10|CONN_LIFECYCLE: conn=2 role=brain wall_ms=1784235695891 mono_ms=125 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 11|PAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52932), Ip(192.168.1.81:52932)} }\n 12|PAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52934), Ip(192.168.1.81:52934)} }\n...\n 16|PAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52968), Ip(192.168.1.81:52968)} }\n*17|BROKER_BIND_FAIL: Access is denied. (os error 5)\n*18|DAEMON_EXIT: Access is denied. (os error 5)\n 19|DAEMON_RESTART_RESUME_REFUSED:deployah: custody pid still alive — refusing to re-run over a live process (dup guard)\n 20|DAEMON_RESTART_RESUME_REFUSED:doyle: custody pid still alive — refusing to re-run over a live process (dup guard)\n 21|DAEMON_RESTART_RESUME_REFUSED:lia: custody pid still alive — refusing to re-run over a live process (dup guard)\n...\n 24|CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235696209 mono_ms=443 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*25|=== spt broker stderr — generation 0 — pid 82868 ===\n 26|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*27|BROKER_BIND_FAIL: Access is denied. (os error 5)\n*28|DAEMON_EXIT: Access is denied. (os error 5)\n 29|BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n 30|CONN_LIFECYCLE: conn=5 role=brain wall_ms=1784235696416 mono_ms=650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 31|PUMP_IPC_READER: spawned\n## daemon.stderr.log.1\n*1|=== spt brain stderr — generation 2 — pid 72832 ===\n*2|BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 72832, generation 2, start-reason update)\n*3|BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n 4|BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n 5|PUMP_IPC_READER: spawned\n 6|PUMP_IPC_READER: spawned\n...\n 14|DISPATCH:4176:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*15|=== spt brain stderr — generation 3 — pid 56712 ===\n*16|BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 56712, generation 3, start-reason update)\n*17|BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n 18|BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n 19|PUMP_IPC_READER: spawned\n 20|PUMP_IPC_READER: spawned\n...\n 896|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*897|=== spt broker stderr — generation 0 — pid 66644 ===\n 898|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 899|DOCS_SERVER_UP: http://localhost:5474\n*900|=== spt brain stderr — generation 0 — pid 80292 ===\n*901|BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 80292, generation 0, start-reason cold)\n 902|CONN_LIFECYCLE: conn=2 role=brain wall_ms=1784211194349 mono_ms=96 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 903|CONN_LIFECYCLE: conn=3 role=brain wall_ms=1784211194353 mono_ms=100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 904|CONN_LIFECYCLE: conn=4 role=brain wall_ms=1784211194357 mono_ms=104 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 951|CONN_LIFECYCLE: conn=15 role=brain presence-subscriber wall_ms=1784211194873 mono_ms=621 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\n*952|=== spt broker stderr — generation 0 — pid 68824 ===\n 953|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*954|BROKER_BIND_FAIL: Access is denied. (os error 5)\n*955|DAEMON_EXIT: Access is denied. (os error 5)\n*956|=== spt broker stderr — generation 0 — pid 85884 ===\n 957|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*958|=== spt broker stderr — generation 0 — pid 34056 ===\n 959|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 960|PAIR_MEET_UP:SPT_DEV step=59473706 id=1926d7c6f80e8f7d598804c859e71d38579675235218b421833d1600173021a0 addr=EndpointAddr { id: PublicKey(1926d7c6f80e8f7d598804c859e71d38579675235218b421833d1600173021a0), addrs: {Ip(100.68.35.65:58994), Ip(192.168.1.81:58994)} }\n 961|PAIR_MEET_UP:BIGNET step=59473706 id=09b5863f059cabbeb989c8760229e08db9d7367ef3269e84e3961e91e543dcfd addr=EndpointAddr { id: PublicKey(09b5863f059cabbeb989c8760229e08db9d7367ef3269e84e3961e91e543dcfd), addrs: {Ip(100.68.35.65:58985), Ip(192.168.1.81:58985)} }\n*962|=== spt broker stderr — generation 0 — pid 88244 ===\n*963|BROKER_BIND_FAIL: Access is denied. (os error 5)\n*964|DAEMON_EXIT: Access is denied. (os error 5)\n 965|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*966|BROKER_BIND_FAIL: Access is denied. (os error 5)\n*967|DAEMON_EXIT: Access is denied. (os error 5)\n 968|PAIR_MEET_UP:BIGNET step=59473706 id=09b5863f059cabbeb989c8760229e08db9d7367ef3269e84e3961e91e543dcfd addr=EndpointAddr { id: PublicKey(09b5863f059cabbeb989c8760229e08db9d7367ef3269e84e3961e91e543dcfd), addrs: {Ip(100.68.35.65:59024), Ip(192.168.1.81:59024)} }\n 969|PAIR_MEET_UP:SPT_DEV step=59473706 id=1926d7c6f80e8f7d598804c859e71d38579675235218b421833d1600173021a0 addr=EndpointAddr { id: PublicKey(1926d7c6f80e8f7d598804c859e71d38579675235218b421833d1600173021a0), addrs: {Ip(100.68.35.65:59031), Ip(192.168.1.81:59031)} }\n*970|BROKER_BIND_FAIL: Access is denied. (os error 5)"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":29,"fileCount":2,"files":["C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1"],"fileMatches":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","count":9},{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1","count":20}],"truncated":true,"perFileLimitReached":20,"displayContent":"# C:/Users/decid/AppData/Local/spt-core/logs/\n## daemon.stderr.log\n *1│=== spt broker stderr — generation 0 — pid 73156 ===\n  2│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n *3│=== spt broker stderr — generation 0 — pid 91480 ===\n  4│DOCS_SERVER_UP: http://localhost:5474\n  5│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n  6│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n  7│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n *8│=== spt brain stderr — generation 0 — pid 47668 ===\n *9│BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 47668, generation 0, start-reason cold)\n 10│CONN_LIFECYCLE: conn=2 role=brain wall_ms=1784235695891 mono_ms=125 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 11│PAIR_MEET_UP:BIGNET step=59474523 id=15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f addr=EndpointAddr { id: PublicKey(15284afe83015ecac2a57d5eb3452b3d6365a84f7329d4693547eeec91de846f), addrs: {Ip(100.68.35.65:52932), Ip(192.168.1.81:52932)} }\n 12│PAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52934), Ip(192.168.1.81:52934)} }\n   │...\n 16│PAIR_MEET_UP:SPT_DEV step=59474523 id=ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5 addr=EndpointAddr { id: PublicKey(ccdceb39c710a2eab7286d8b136d5af1ef538a095b9b58624b87570d74288fe5), addrs: {Ip(100.68.35.65:52968), Ip(192.168.1.81:52968)} }\n*17│BROKER_BIND_FAIL: Access is denied. (os error 5)\n*18│DAEMON_EXIT: Access is denied. (os error 5)\n 19│DAEMON_RESTART_RESUME_REFUSED:deployah: custody pid still alive — refusing to re-run over a live process (dup guard)\n 20│DAEMON_RESTART_RESUME_REFUSED:doyle: custody pid still alive — refusing to re-run over a live process (dup guard)\n 21│DAEMON_RESTART_RESUME_REFUSED:lia: custody pid still alive — refusing to re-run over a live process (dup guard)\n   │...\n 24│CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235696209 mono_ms=443 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*25│=== spt broker stderr — generation 0 — pid 82868 ===\n 26│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*27│BROKER_BIND_FAIL: Access is denied. (os error 5)\n*28│DAEMON_EXIT: Access is denied. (os error 5)\n 29│BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n 30│CONN_LIFECYCLE: conn=5 role=brain wall_ms=1784235696416 mono_ms=650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 31│PUMP_IPC_READER: spawned\n## daemon.stderr.log.1\n  *1│=== spt brain stderr — generation 2 — pid 72832 ===\n  *2│BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 72832, generation 2, start-reason update)\n  *3│BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n   4│BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n   5│PUMP_IPC_READER: spawned\n   6│PUMP_IPC_READER: spawned\n    │...\n  14│DISPATCH:4176:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n *15│=== spt brain stderr — generation 3 — pid 56712 ===\n *16│BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 56712, generation 3, start-reason update)\n *17│BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n  18│BRAIN_NET_CONSUMERS_UP: net enabled (node 14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d) — dispatcher + peer pump started\n  19│PUMP_IPC_READER: spawned\n  20│PUMP_IPC_READER: spawned\n    │...\n 896│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*897│=== spt broker stderr — generation 0 — pid 66644 ===\n 898│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 899│DOCS_SERVER_UP: http://localhost:5474\n*900│=== spt brain stderr — generation 0 — pid 80292 ===\n*901│BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 80292, generation 0, start-reason cold)\n 902│CONN_LIFECYCLE: conn=2 role=brain wall_ms=1784211194349 mono_ms=96 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 903│CONN_LIFECYCLE: conn=3 role=brain wall_ms=1784211194353 mono_ms=100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 904│CONN_LIFECYCLE: conn=4 role=brain wall_ms=1784211194357 mono_ms=104 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n    │...\n 951│CONN_LIFECYCLE: conn=15 role=brain presence-subscriber wall_ms=1784211194873 mono_ms=621 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\n*952│=== spt broker stderr — generation 0 — pid 68824 ===\n 953│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*954│BROKER_BIND_FAIL: Access is denied. (os error 5)\n*955│DAEMON_EXIT: Access is denied. (os error 5)\n*956│=== spt broker stderr — generation 0 — pid 85884 ===\n 957│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*958│=== spt broker stderr — generation 0 — pid 34056 ===\n 959│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 960│PAIR_MEET_UP:SPT_DEV step=59473706 id=1926d7c6f80e8f7d598804c859e71d38579675235218b421833d1600173021a0 addr=EndpointAddr { id: PublicKey(1926d7c6f80e8f7d598804c859e71d38579675235218b421833d1600173021a0), addrs: {Ip(100.68.35.65:58994), Ip(192.168.1.81:58994)} }\n 961│PAIR_MEET_UP:BIGNET step=59473706 id=09b5863f059cabbeb989c8760229e08db9d7367ef3269e84e3961e91e543dcfd addr=EndpointAddr { id: PublicKey(09b5863f059cabbeb989c8760229e08db9d7367ef3269e84e3961e91e543dcfd), addrs: {Ip(100.68.35.65:58985), Ip(192.168.1.81:58985)} }\n*962│=== spt broker stderr — generation 0 — pid 88244 ===\n*963│BROKER_BIND_FAIL: Access is denied. (os error 5)\n*964│DAEMON_EXIT: Access is denied. (os error 5)\n 965│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*966│BROKER_BIND_FAIL: Access is denied. (os error 5)\n*967│DAEMON_EXIT: Access is denied. (os error 5)\n 968│PAIR_MEET_UP:BIGNET step=59473706 id=09b5863f059cabbeb989c8760229e08db9d7367ef3269e84e3961e91e543dcfd addr=EndpointAddr { id: PublicKey(09b5863f059cabbeb989c8760229e08db9d7367ef3269e84e3961e91e543dcfd), addrs: {Ip(100.68.35.65:59024), Ip(192.168.1.81:59024)} }\n 969│PAIR_MEET_UP:SPT_DEV step=59473706 id=1926d7c6f80e8f7d598804c859e71d38579675235218b421833d1600173021a0 addr=EndpointAddr { id: PublicKey(1926d7c6f80e8f7d598804c859e71d38579675235218b421833d1600173021a0), addrs: {Ip(100.68.35.65:59031), Ip(192.168.1.81:59031)} }\n*970│BROKER_BIND_FAIL: Access is denied. (os error 5)"},"isError":false,"timestamp":1784247375111}}
{"type":"message","id":"e3015503","parentId":"5b5b663d","timestamp":"2026-07-17T00:16:15.117Z","message":{"role":"toolResult","toolCallId":"call_yFRT4kcoE4kxtSbrGbvDEFpP|fc_05a4d8ea8a10ef0b016a59744f08c48198b6e87a52b88057fb","toolName":"read","content":[{"type":"text","text":"PENDING 0 1 net-send\nPENDING 0 2 net-send\nDONE 0 2\nPENDING 0 3 net-send\nDONE 0 3\nPENDING 0 4 net-send\nDONE 0 4\nPENDING 0 5 net-send\nDONE 0 5\nPENDING 0 6 net-send\nDONE 0 6\nPENDING 0 7 net-send\nDONE 0 7\nPENDING 0 8 net-send\nDONE 0 8\nPENDING 0 9 net-send\nDONE 0 9\nPENDING 0 10 net-send\nDONE 0 10\nPENDING 0 11 net-send\nDONE 0 11\nPENDING 0 12 net-send\nDONE 0 12\nPENDING 0 13 net-send\nDONE 0 13\nPENDING 0 14 net-send\nDONE 0 14\nPENDING 0 15 net-send\nDONE 0 15\nPENDING 0 16 net-send\nDONE 0 16\nPENDING 0 17 net-send\nDONE 0 17\nPENDING 0 18 net-send\nDONE 0 18\nPENDING 0 19 net-send\nDONE 0 19\nPENDING 0 20 net-send\nDONE 0 20\nPENDING 0 21 net-send\nDONE 0 21\nPENDING 0 22 net-send\nDONE 0 22\nPENDING 0 23 net-send\nDONE 0 23\nPENDING 0 24 net-send\nDONE 0 24\nPENDING 0 25 net-send\nDONE 0 25\nPENDING 0 26 net-send\nDONE 0 26\nPENDING 0 27 net-send\nDONE 0 27\nPENDING 0 28 net-send\nDONE 0 28\nPENDING 0 29 net-send\nDONE 0 29\nPENDING 0 30 net-send\nDONE 0 30\nPENDING 0 31 net-send\nDONE 0 31\nPENDING 0 32 net-send\nDONE 0 32\nPENDING 0 33 net-send\nDONE 0 33\nPENDING 0 34 net-send\nDONE 0 34\nPENDING 0 35 net-send\nDONE 0 35\nPENDING 0 36 net-send\nDONE 0 36\nPENDING 0 37 net-send\nDONE 0 37\nPENDING 0 38 net-send\nDONE 0 38\nPENDING 0 39 net-send\nDONE 0 39\nPENDING 0 40 net-send\nDONE 0 40\nPENDING 0 41 net-send\nDONE 0 41\nPENDING 0 42 net-send\nDONE 0 42\nPENDING 0 43 net-send\nDONE 0 43\nPENDING 0 44 net-send\nDONE 0 44\nPENDING 0 45 net-send\nDONE 0 45\nPENDING 0 46 net-send\nDONE 0 46\nPENDING 0 47 net-send\nDONE 0 47\nPENDING 0 48 net-send\nDONE 0 48\nPENDING 0 49 net-send\nDONE 0 49\nPENDING 0 50 net-send\nDONE 0 50\nPENDING 0 51 net-send\nDONE 0 51\nPENDING 0 52 net-send\nDONE 0 52\nPENDING 0 53 net-send\nDONE 0 53\nPENDING 0 54 net-send\nDONE 0 54\nPENDING 0 55 net-send\nDONE 0 55\nPENDING 0 56 net-send\nDONE 0 56\nPENDING 0 57 net-send\nDONE 0 57\nPENDING 0 58 net-send\nDONE 0 58\nPENDING 0 59 net-send\nDONE 0 59\nPENDING 0 60 net-send\nDONE 0 60\nPENDING 0 61 net-send\nDONE 0 61\nPENDING 0 62 net-send\nDONE 0 62\nPENDING 0 63 net-send\nDONE 0 63\nPENDING 0 64 net-send\nDONE 0 64\nPENDING 0 65 net-send\nDONE 0 65\nPENDING 0 66 net-send\nDONE 0 66\nPENDING 0 67 net-send\nDONE 0 67\nPENDING 0 68 net-send\nDONE 0 68\nPENDING 0 69 net-send\nDONE 0 69\nPENDING 0 70 net-send\nDONE 0 70\nPENDING 0 71 net-send\nDONE 0 71\nPENDING 0 72 net-send\nDONE 0 72\nPENDING 0 73 net-send\nDONE 0 73\nPENDING 0 74 net-send\nDONE 0 74\nPENDING 0 75 net-send\nDONE 0 75\nPENDING 0 76 net-send\nDONE 0 76\nPENDING 0 77 net-send\nDONE 0 77\nPENDING 0 78 net-send\nDONE 0 78\nPENDING 0 79 net-send\nDONE 0 79\nPENDING 0 80 net-send\nDONE 0 80\nPENDING 0 81 net-send\nDONE 0 81\nPENDING 0 82 net-send\nDONE 0 82\nPENDING 0 83 net-send\nDONE 0 83\nPENDING 0 84 net-send\nDONE 0 84\nPENDING 0 85 net-send\nDONE 0 85\nPENDING 0 86 net-send\nDONE 0 86\nPENDING 0 87 net-send\nDONE 0 87\nPENDING 0 88 net-send\nDONE 0 88\nPENDING 0 89 net-send\nDONE 0 89\nPENDING 0 90 net-send\nDONE 0 90\nPENDING 0 91 net-send\nDONE 0 91\nPENDING 0 92 net-send\nDONE 0 92\nPENDING 0 93 net-send\nDONE 0 93\nPENDING 0 94 net-send\nDONE 0 94\nPENDING 0 95 net-send\nDONE 0 95\nPENDING 0 96 net-send\nDONE 0 96\nPENDING 0 97 net-send\nDONE 0 97\nPENDING 0 98 net-send\nDONE 0 98\nPENDING 0 99 net-send\nDONE 0 99\nPENDING 0 100 net-send\nDONE 0 100\nPENDING 0 101 net-send\nDONE 0 101\nPENDING 0 102 net-send\nDONE 0 102\nPENDING 0 103 net-send\nDONE 0 103\nPENDING 0 104 net-send\nDONE 0 104\nPENDING 0 105 net-send\nDONE 0 105\nPENDING 0 106 net-send\nDONE 0 106\nPENDING 0 107 net-send\nDONE 0 107\nPENDING 0 108 net-send\nDONE 0 108\nPENDING 0 109 net-send\nDONE 0 109\nPENDING 0 110 net-send\nDONE 0 110\nPENDING 0 111 net-send\nDONE 0 111\nPENDING 0 112 net-send\nDONE 0 112\nPENDING 0 113 net-send\nDONE 0 113\nPENDING 0 114 net-send\nDONE 0 114\nPENDING 0 115 net-send\nDONE 0 115\nPENDING 0 116 net-send\nDONE 0 116\nPENDING 0 117 net-send\nDONE 0 117\nPENDING 0 118 net-send\nDONE 0 118\nPENDING 0 119 net-send\nDONE 0 119\nPENDING 0 120 net-send\nDONE 0 120\nPENDING 0 121 net-send\nDONE 0 121\nPENDING 0 122 net-send\nDONE 0 122\nPENDING 0 123 net-send\nDONE 0 123\nPENDING 0 124 net-send\nDONE 0 124\nPENDING 0 125 net-send\nDONE 0 125\nPENDING 0 126 net-send\nDONE 0 126\nPENDING 0 127 net-send\nDONE 0 127\nPENDING 0 128 net-send\nDONE 0 128\nPENDING 0 129 net-send\nDONE 0 129\nPENDING 0 130 net-send\nDONE 0 130\nPENDING 0 131 net-send\nDONE 0 131\nPENDING 0 132 net-send\nDONE 0 132\nPENDING 0 133 net-send\nDONE 0 133\nPENDING 0 134 net-send\nDONE 0 134\nPENDING 0 135 net-send\nDONE 0 135\nPENDING 0 136 net-send\nDONE 0 136\nPENDING 0 137 net-send\nDONE 0 137\nPENDING 0 138 net-send\nDONE 0 138\nPENDING 0 139 net-send\nDONE 0 139\nPENDING 0 140 net-send\nDONE 0 140\nPENDING 0 141 net-send\nDONE 0 141\nPENDING 0 142 net-send\nDONE 0 142\nPENDING 0 143 net-send\nDONE 0 143\nPENDING 0 144 net-send\nDONE 0 144\nPENDING 0 145 net-send\nDONE 0 145\nPENDING 0 146 net-send\nDONE 0 146\nPENDING 0 147 net-send\nDONE 0 147\nPENDING 0 148 net-send\nDONE 0 148\nPENDING 0 149 net-send\nDONE 0 149\nPENDING 0 150 net-send\nDONE 0 150\nPENDING 0 151 net-send\n\n[Showing lines 1-300 of 57910. Use :301 to continue]"}],"details":{"truncation":{"content":"PENDING 0 1 net-send\nPENDING 0 2 net-send\nDONE 0 2\nPENDING 0 3 net-send\nDONE 0 3\nPENDING 0 4 net-send\nDONE 0 4\nPENDING 0 5 net-send\nDONE 0 5\nPENDING 0 6 net-send\nDONE 0 6\nPENDING 0 7 net-send\nDONE 0 7\nPENDING 0 8 net-send\nDONE 0 8\nPENDING 0 9 net-send\nDONE 0 9\nPENDING 0 10 net-send\nDONE 0 10\nPENDING 0 11 net-send\nDONE 0 11\nPENDING 0 12 net-send\nDONE 0 12\nPENDING 0 13 net-send\nDONE 0 13\nPENDING 0 14 net-send\nDONE 0 14\nPENDING 0 15 net-send\nDONE 0 15\nPENDING 0 16 net-send\nDONE 0 16\nPENDING 0 17 net-send\nDONE 0 17\nPENDING 0 18 net-send\nDONE 0 18\nPENDING 0 19 net-send\nDONE 0 19\nPENDING 0 20 net-send\nDONE 0 20\nPENDING 0 21 net-send\nDONE 0 21\nPENDING 0 22 net-send\nDONE 0 22\nPENDING 0 23 net-send\nDONE 0 23\nPENDING 0 24 net-send\nDONE 0 24\nPENDING 0 25 net-send\nDONE 0 25\nPENDING 0 26 net-send\nDONE 0 26\nPENDING 0 27 net-send\nDONE 0 27\nPENDING 0 28 net-send\nDONE 0 28\nPENDING 0 29 net-send\nDONE 0 29\nPENDING 0 30 net-send\nDONE 0 30\nPENDING 0 31 net-send\nDONE 0 31\nPENDING 0 32 net-send\nDONE 0 32\nPENDING 0 33 net-send\nDONE 0 33\nPENDING 0 34 net-send\nDONE 0 34\nPENDING 0 35 net-send\nDONE 0 35\nPENDING 0 36 net-send\nDONE 0 36\nPENDING 0 37 net-send\nDONE 0 37\nPENDING 0 38 net-send\nDONE 0 38\nPENDING 0 39 net-send\nDONE 0 39\nPENDING 0 40 net-send\nDONE 0 40\nPENDING 0 41 net-send\nDONE 0 41\nPENDING 0 42 net-send\nDONE 0 42\nPENDING 0 43 net-send\nDONE 0 43\nPENDING 0 44 net-send\nDONE 0 44\nPENDING 0 45 net-send\nDONE 0 45\nPENDING 0 46 net-send\nDONE 0 46\nPENDING 0 47 net-send\nDONE 0 47\nPENDING 0 48 net-send\nDONE 0 48\nPENDING 0 49 net-send\nDONE 0 49\nPENDING 0 50 net-send\nDONE 0 50\nPENDING 0 51 net-send\nDONE 0 51\nPENDING 0 52 net-send\nDONE 0 52\nPENDING 0 53 net-send\nDONE 0 53\nPENDING 0 54 net-send\nDONE 0 54\nPENDING 0 55 net-send\nDONE 0 55\nPENDING 0 56 net-send\nDONE 0 56\nPENDING 0 57 net-send\nDONE 0 57\nPENDING 0 58 net-send\nDONE 0 58\nPENDING 0 59 net-send\nDONE 0 59\nPENDING 0 60 net-send\nDONE 0 60\nPENDING 0 61 net-send\nDONE 0 61\nPENDING 0 62 net-send\nDONE 0 62\nPENDING 0 63 net-send\nDONE 0 63\nPENDING 0 64 net-send\nDONE 0 64\nPENDING 0 65 net-send\nDONE 0 65\nPENDING 0 66 net-send\nDONE 0 66\nPENDING 0 67 net-send\nDONE 0 67\nPENDING 0 68 net-send\nDONE 0 68\nPENDING 0 69 net-send\nDONE 0 69\nPENDING 0 70 net-send\nDONE 0 70\nPENDING 0 71 net-send\nDONE 0 71\nPENDING 0 72 net-send\nDONE 0 72\nPENDING 0 73 net-send\nDONE 0 73\nPENDING 0 74 net-send\nDONE 0 74\nPENDING 0 75 net-send\nDONE 0 75\nPENDING 0 76 net-send\nDONE 0 76\nPENDING 0 77 net-send\nDONE 0 77\nPENDING 0 78 net-send\nDONE 0 78\nPENDING 0 79 net-send\nDONE 0 79\nPENDING 0 80 net-send\nDONE 0 80\nPENDING 0 81 net-send\nDONE 0 81\nPENDING 0 82 net-send\nDONE 0 82\nPENDING 0 83 net-send\nDONE 0 83\nPENDING 0 84 net-send\nDONE 0 84\nPENDING 0 85 net-send\nDONE 0 85\nPENDING 0 86 net-send\nDONE 0 86\nPENDING 0 87 net-send\nDONE 0 87\nPENDING 0 88 net-send\nDONE 0 88\nPENDING 0 89 net-send\nDONE 0 89\nPENDING 0 90 net-send\nDONE 0 90\nPENDING 0 91 net-send\nDONE 0 91\nPENDING 0 92 net-send\nDONE 0 92\nPENDING 0 93 net-send\nDONE 0 93\nPENDING 0 94 net-send\nDONE 0 94\nPENDING 0 95 net-send\nDONE 0 95\nPENDING 0 96 net-send\nDONE 0 96\nPENDING 0 97 net-send\nDONE 0 97\nPENDING 0 98 net-send\nDONE 0 98\nPENDING 0 99 net-send\nDONE 0 99\nPENDING 0 100 net-send\nDONE 0 100\nPENDING 0 101 net-send\nDONE 0 101\nPENDING 0 102 net-send\nDONE 0 102\nPENDING 0 103 net-send\nDONE 0 103\nPENDING 0 104 net-send\nDONE 0 104\nPENDING 0 105 net-send\nDONE 0 105\nPENDING 0 106 net-send\nDONE 0 106\nPENDING 0 107 net-send\nDONE 0 107\nPENDING 0 108 net-send\nDONE 0 108\nPENDING 0 109 net-send\nDONE 0 109\nPENDING 0 110 net-send\nDONE 0 110\nPENDING 0 111 net-send\nDONE 0 111\nPENDING 0 112 net-send\nDONE 0 112\nPENDING 0 113 net-send\nDONE 0 113\nPENDING 0 114 net-send\nDONE 0 114\nPENDING 0 115 net-send\nDONE 0 115\nPENDING 0 116 net-send\nDONE 0 116\nPENDING 0 117 net-send\nDONE 0 117\nPENDING 0 118 net-send\nDONE 0 118\nPENDING 0 119 net-send\nDONE 0 119\nPENDING 0 120 net-send\nDONE 0 120\nPENDING 0 121 net-send\nDONE 0 121\nPENDING 0 122 net-send\nDONE 0 122\nPENDING 0 123 net-send\nDONE 0 123\nPENDING 0 124 net-send\nDONE 0 124\nPENDING 0 125 net-send\nDONE 0 125\nPENDING 0 126 net-send\nDONE 0 126\nPENDING 0 127 net-send\nDONE 0 127\nPENDING 0 128 net-send\nDONE 0 128\nPENDING 0 129 net-send\nDONE 0 129\nPENDING 0 130 net-send\nDONE 0 130\nPENDING 0 131 net-send\nDONE 0 131\nPENDING 0 132 net-send\nDONE 0 132\nPENDING 0 133 net-send\nDONE 0 133\nPENDING 0 134 net-send\nDONE 0 134\nPENDING 0 135 net-send\nDONE 0 135\nPENDING 0 136 net-send\nDONE 0 136\nPENDING 0 137 net-send\nDONE 0 137\nPENDING 0 138 net-send\nDONE 0 138\nPENDING 0 139 net-send\nDONE 0 139\nPENDING 0 140 net-send\nDONE 0 140\nPENDING 0 141 net-send\nDONE 0 141\nPENDING 0 142 net-send\nDONE 0 142\nPENDING 0 143 net-send\nDONE 0 143\nPENDING 0 144 net-send\nDONE 0 144\nPENDING 0 145 net-send\nDONE 0 145\nPENDING 0 146 net-send\nDONE 0 146\nPENDING 0 147 net-send\nDONE 0 147\nPENDING 0 148 net-send\nDONE 0 148\nPENDING 0 149 net-send\nDONE 0 149\nPENDING 0 150 net-send\nDONE 0 150\nPENDING 0 151 net-send","truncated":true,"truncatedBy":"lines","totalLines":57910,"totalBytes":4897,"outputLines":300,"outputBytes":4897,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"PENDING 0 1 net-send\nPENDING 0 2 net-send\nDONE 0 2\nPENDING 0 3 net-send\nDONE 0 3\nPENDING 0 4 net-send\nDONE 0 4\nPENDING 0 5 net-send\nDONE 0 5\nPENDING 0 6 net-send\nDONE 0 6\nPENDING 0 7 net-send\nDONE 0 7\nPENDING 0 8 net-send\nDONE 0 8\nPENDING 0 9 net-send\nDONE 0 9\nPENDING 0 10 net-send\nDONE 0 10\nPENDING 0 11 net-send\nDONE 0 11\nPENDING 0 12 net-send\nDONE 0 12\nPENDING 0 13 net-send\nDONE 0 13\nPENDING 0 14 net-send\nDONE 0 14\nPENDING 0 15 net-send\nDONE 0 15\nPENDING 0 16 net-send\nDONE 0 16\nPENDING 0 17 net-send\nDONE 0 17\nPENDING 0 18 net-send\nDONE 0 18\nPENDING 0 19 net-send\nDONE 0 19\nPENDING 0 20 net-send\nDONE 0 20\nPENDING 0 21 net-send\nDONE 0 21\nPENDING 0 22 net-send\nDONE 0 22\nPENDING 0 23 net-send\nDONE 0 23\nPENDING 0 24 net-send\nDONE 0 24\nPENDING 0 25 net-send\nDONE 0 25\nPENDING 0 26 net-send\nDONE 0 26\nPENDING 0 27 net-send\nDONE 0 27\nPENDING 0 28 net-send\nDONE 0 28\nPENDING 0 29 net-send\nDONE 0 29\nPENDING 0 30 net-send\nDONE 0 30\nPENDING 0 31 net-send\nDONE 0 31\nPENDING 0 32 net-send\nDONE 0 32\nPENDING 0 33 net-send\nDONE 0 33\nPENDING 0 34 net-send\nDONE 0 34\nPENDING 0 35 net-send\nDONE 0 35\nPENDING 0 36 net-send\nDONE 0 36\nPENDING 0 37 net-send\nDONE 0 37\nPENDING 0 38 net-send\nDONE 0 38\nPENDING 0 39 net-send\nDONE 0 39\nPENDING 0 40 net-send\nDONE 0 40\nPENDING 0 41 net-send\nDONE 0 41\nPENDING 0 42 net-send\nDONE 0 42\nPENDING 0 43 net-send\nDONE 0 43\nPENDING 0 44 net-send\nDONE 0 44\nPENDING 0 45 net-send\nDONE 0 45\nPENDING 0 46 net-send\nDONE 0 46\nPENDING 0 47 net-send\nDONE 0 47\nPENDING 0 48 net-send\nDONE 0 48\nPENDING 0 49 net-send\nDONE 0 49\nPENDING 0 50 net-send\nDONE 0 50\nPENDING 0 51 net-send\nDONE 0 51\nPENDING 0 52 net-send\nDONE 0 52\nPENDING 0 53 net-send\nDONE 0 53\nPENDING 0 54 net-send\nDONE 0 54\nPENDING 0 55 net-send\nDONE 0 55\nPENDING 0 56 net-send\nDONE 0 56\nPENDING 0 57 net-send\nDONE 0 57\nPENDING 0 58 net-send\nDONE 0 58\nPENDING 0 59 net-send\nDONE 0 59\nPENDING 0 60 net-send\nDONE 0 60\nPENDING 0 61 net-send\nDONE 0 61\nPENDING 0 62 net-send\nDONE 0 62\nPENDING 0 63 net-send\nDONE 0 63\nPENDING 0 64 net-send\nDONE 0 64\nPENDING 0 65 net-send\nDONE 0 65\nPENDING 0 66 net-send\nDONE 0 66\nPENDING 0 67 net-send\nDONE 0 67\nPENDING 0 68 net-send\nDONE 0 68\nPENDING 0 69 net-send\nDONE 0 69\nPENDING 0 70 net-send\nDONE 0 70\nPENDING 0 71 net-send\nDONE 0 71\nPENDING 0 72 net-send\nDONE 0 72\nPENDING 0 73 net-send\nDONE 0 73\nPENDING 0 74 net-send\nDONE 0 74\nPENDING 0 75 net-send\nDONE 0 75\nPENDING 0 76 net-send\nDONE 0 76\nPENDING 0 77 net-send\nDONE 0 77\nPENDING 0 78 net-send\nDONE 0 78\nPENDING 0 79 net-send\nDONE 0 79\nPENDING 0 80 net-send\nDONE 0 80\nPENDING 0 81 net-send\nDONE 0 81\nPENDING 0 82 net-send\nDONE 0 82\nPENDING 0 83 net-send\nDONE 0 83\nPENDING 0 84 net-send\nDONE 0 84\nPENDING 0 85 net-send\nDONE 0 85\nPENDING 0 86 net-send\nDONE 0 86\nPENDING 0 87 net-send\nDONE 0 87\nPENDING 0 88 net-send\nDONE 0 88\nPENDING 0 89 net-send\nDONE 0 89\nPENDING 0 90 net-send\nDONE 0 90\nPENDING 0 91 net-send\nDONE 0 91\nPENDING 0 92 net-send\nDONE 0 92\nPENDING 0 93 net-send\nDONE 0 93\nPENDING 0 94 net-send\nDONE 0 94\nPENDING 0 95 net-send\nDONE 0 95\nPENDING 0 96 net-send\nDONE 0 96\nPENDING 0 97 net-send\nDONE 0 97\nPENDING 0 98 net-send\nDONE 0 98\nPENDING 0 99 net-send\nDONE 0 99\nPENDING 0 100 net-send\nDONE 0 100\nPENDING 0 101 net-send\nDONE 0 101\nPENDING 0 102 net-send\nDONE 0 102\nPENDING 0 103 net-send\nDONE 0 103\nPENDING 0 104 net-send\nDONE 0 104\nPENDING 0 105 net-send\nDONE 0 105\nPENDING 0 106 net-send\nDONE 0 106\nPENDING 0 107 net-send\nDONE 0 107\nPENDING 0 108 net-send\nDONE 0 108\nPENDING 0 109 net-send\nDONE 0 109\nPENDING 0 110 net-send\nDONE 0 110\nPENDING 0 111 net-send\nDONE 0 111\nPENDING 0 112 net-send\nDONE 0 112\nPENDING 0 113 net-send\nDONE 0 113\nPENDING 0 114 net-send\nDONE 0 114\nPENDING 0 115 net-send\nDONE 0 115\nPENDING 0 116 net-send\nDONE 0 116\nPENDING 0 117 net-send\nDONE 0 117\nPENDING 0 118 net-send\nDONE 0 118\nPENDING 0 119 net-send\nDONE 0 119\nPENDING 0 120 net-send\nDONE 0 120\nPENDING 0 121 net-send\nDONE 0 121\nPENDING 0 122 net-send\nDONE 0 122\nPENDING 0 123 net-send\nDONE 0 123\nPENDING 0 124 net-send\nDONE 0 124\nPENDING 0 125 net-send\nDONE 0 125\nPENDING 0 126 net-send\nDONE 0 126\nPENDING 0 127 net-send\nDONE 0 127\nPENDING 0 128 net-send\nDONE 0 128\nPENDING 0 129 net-send\nDONE 0 129\nPENDING 0 130 net-send\nDONE 0 130\nPENDING 0 131 net-send\nDONE 0 131\nPENDING 0 132 net-send\nDONE 0 132\nPENDING 0 133 net-send\nDONE 0 133\nPENDING 0 134 net-send\nDONE 0 134\nPENDING 0 135 net-send\nDONE 0 135\nPENDING 0 136 net-send\nDONE 0 136\nPENDING 0 137 net-send\nDONE 0 137\nPENDING 0 138 net-send\nDONE 0 138\nPENDING 0 139 net-send\nDONE 0 139\nPENDING 0 140 net-send\nDONE 0 140\nPENDING 0 141 net-send\nDONE 0 141\nPENDING 0 142 net-send\nDONE 0 142\nPENDING 0 143 net-send\nDONE 0 143\nPENDING 0 144 net-send\nDONE 0 144\nPENDING 0 145 net-send\nDONE 0 145\nPENDING 0 146 net-send\nDONE 0 146\nPENDING 0 147 net-send\nDONE 0 147\nPENDING 0 148 net-send\nDONE 0 148\nPENDING 0 149 net-send\nDONE 0 149\nPENDING 0 150 net-send\nDONE 0 150\nPENDING 0 151 net-send","startLine":1,"lineNumbers":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/daemon-effects.log"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":57910,"totalBytes":4897,"outputLines":300,"outputBytes":4897,"shownRange":{"start":1,"end":300},"nextOffset":301}}},"isError":false,"timestamp":1784247375117}}
{"type":"message","id":"437ac3b3","parentId":"e3015503","timestamp":"2026-07-17T00:16:30.429Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Calculating precise epoch for timestamp conversion**\n\n**Estimating log tail range for analysis**"},{"type":"toolCall","id":"call_WlahUnOOFBKVNcUbngv1aeSm|fc_05a4d8ea8a10ef0b016a59745e61008198a7c002322a2d8a85","name":"read","arguments":{"i":"Locating current log tail","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":"50000-50300"}},{"type":"toolCall","id":"call_5n2GkgxW9gx79Y8AVFCunPd9|fc_05a4d8ea8a10ef0b016a59745e610c81988c768b1f3f6763e1","name":"grep","arguments":{"i":"Finding current-hour lifecycle","pattern":"wall_ms=1784247[0-9]{6}|wall_ms=1784246[0-9]{6}","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":null,"case":true,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_9VJoxkEtbLPBMAeYDRg7BIHT|fc_05a4d8ea8a10ef0b016a59745e61148198ad547f89680cfbb7","name":"grep","arguments":{"i":"Finding dispatch failures","pattern":"DISPATCH:|DISPATCH_[A-Z_]+|dispatch.*(fail|error|timeout)|dispatch.*Failed","path":"C:/Users/decid/AppData/Local/spt-core/logs","selector":null,"case":false,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_NqhHtMUherWzOQzTMCF1Cvps|fc_05a4d8ea8a10ef0b016a59745e61188198be6cc79ed365f7ce","name":"grep","arguments":{"i":"Finding reconnect and replay evidence","pattern":"RECONNECT|reconnect|RESUMED|resumed|replay|from_seq=|cursor|stream-sub-attach|stream-sub-detach|presence-sub","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":null,"case":true,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_jR7NWLndcKYzt2FMOWUHIDwr|fc_05a4d8ea8a10ef0b016a59745e611c819888f5ff25d0d83215","name":"grep","arguments":{"i":"Locating telemetry source markers","pattern":"CONN_LIFECYCLE|PUMP_PEER_FAIL|pump-heartbeat|PUMP_IPC_READER|DISPATCH:|BRAIN_RESUMED|INJECT_SETTLE_TIMEOUT","path":"crates/spt-daemon/src;crates/spt-daemon/tests;crates/spt/src","selector":null,"case":true,"gitignore":true,"skip":null}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":16459,"output":773,"cacheRead":28160,"cacheWrite":0,"totalTokens":45392,"reasoningTokens":346,"cost":{"input":0.08229500000000001,"output":0.023190000000000002,"cacheRead":0.014079999999999999,"cacheWrite":0,"total":0.119565}},"stopReason":"toolUse","timestamp":1784247375166,"responseId":"resp_05a4d8ea8a10ef0b016a59744f5a588198aabff8466728a275","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a5974506da08198b163a494c42f8acb","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXReF6PNUdjuALiqCOaF_awjQqGmn0b3BsLjFCPFFslj81RKmLN6SOgiLnbI6agn2k975_avjz4Wm9zi48iyLaGPsgJj3ZVbAs_fRH5ndyeAGbO6OIWjk7TtbauGFuz5lDN_HXz3kXmUe4wnfz5o9HFyvJuBemYIMxBCAkuGAVhpQD7docWknskzEqxUxhI-rZJVrMOXwZLNg-9w3b5aepFylXL2NuYhGW_Lt55CsjnGDJkprKXJak4m2LGxCLMTLK8yiMvx_MaO7LaBw5miRLoxnassqeZFfWyIa6zhezm6TKS_wsPmgzne6NoYvWNoyO9SyFSps-jvqCW62_-hchiel1E6LmotRVLgDJuUHXgWeqGj3rhX_PA6n6T9V6-LUQZZN9UQv8X6xzLFJN_UEv2Atih0Si5IybT_tGKLEzZkfj--74Plp3ko4DdnX6Cmoo9keJCuf_HIcoBlH8vlWusRNsB-EAeGgaVA_aqlb7YZVUaSyMd9Rmkt6Dkuvu6JJivQIxaXvAnR1gb25bMkrg3HWPMotlOYIKHckrOUrYOKksrMirhbd9kTsinFC8VFR1zNWnybshrSBpdRYTAvr_LmtQ1pO4uYBc0icTPd--ujqIQaG41YEyg04iIdB0pwva7dpI654Jl4G_KW4aN4tR_LdrJvr7CpneQGj1ftV1vFdcdd8TBR6aS0V0x5KXvYYsRZe-K60LLBgNvJl_jc8MTjyKRLvZT9nqFPk6NNlzHoYsCVdhoXIV-x04iolve7R5ugRRdJzcvzITV8kINMsMnDJKJjRDQ6l9A-cKW-3Gz52UGonIcwsE4wcxJb6zKrNFJ1TP4vJGLMcT-PEy2tpY71Xvzi1XLckf4_vsuE5MAxujJwXcwlGJh6KY4FClH06II_ispQSAZ0Xi3eEi2aFEF8FqvsI3ijeWu0J7YCHalAhf4bZ_5Lj2JhgaOVmDbbuK5XZBjXVPU6brLBQXvvHk_srAmUq5LpisI8oSExZtijc09xcrioEzONhd9GN_w1vvvbDmXW9B4vuWEuAUfE8nErqMa0sYPETfbCs-JV_49JfNrMItJhrtHvNV6GvsPLcxB8_fAHf4wxnlZ3YXjXfvYEWw6Dqni8rBRNSZPYLyc1aXu6wg_Ehtpe3lqhvqGDsZU8I0pAXk6K2eIgX1DiUYkArr2dKf0RKjujDfiAnC7FtHnFWbALZxhs2vbMWNcq5nUxpCc7LE3miUb8oO5ri90J42jl9s-bpSqGb7_E5nCVDF149LS31ymsFZZ9jYGq_LOUfflalOe_XpYMXyb4Qpkyw5VgRlDVmilQnumw9Lj8-3RvIgDoQGtUJfUbiu8WjnmE8PIAFvNcCMZK_UZnHB2g_JtPP9GzndzKY3SubsPif2QlDzVfR4kpYn3bM4hZplkLKRApetsZc_2ynoEndeZSjptnY7K7oy4unQMx5Adahvmsmtz-AOQ44Ip5yM2mYAzTBHAQvOn9Dy-wl1oknu8e4o62SgYC-19vzHVpJCTN175uKCz9AMYkbybq-ur7EfbGOAvW8jyh4HXloR2Rdj6jFySbSSpxC9yWePk3p-BNqPnGJhoIDStWDU7A_lcI_NxIjmgIAt6FMXsq9IauW-oaALHvdOnktqIeX0e9FW-sY7bRHHt2WNpCMEDfjEz6s1Jp7qsCOXYdkUhCF25Ri6PUkRSCT5f9NlF6kU0Q_zgXLLEEYRS7jousv8aDApHr7hu-0PbgitkxX1nLTo3atY5uqki_JsnrBQYvr1IFu0sgBxPQOguqrY2paqAvH0tpBpbV6QIWvolRQ_2F9l8psHdV1DEGg74mu7-q91W2fIaLozOR-FAPOhvXzdYY7h6M3VXpy15_bLX5G3FfEejhxctUZub0_XCT-iS7lMDiBwT-1XRmK-6SzFwKw83HyYRtmHQHH6t3yZBDL5wdinV9sbTlbF9uerB_8J1z0HsxJvqa1Gr3yc8jXmS92U754W9IJhITSowwizIng4XGvOdY8stlVe4VCpRbwQxNxGT00W2N-_M18-TfcsfWiAKRPqxKJhO4nqetziWYJvLixZOdmNXRpbJAcm6lv92K1CrPhuADVkTseBPrbMffXemKSNzysKXUCIWcgJ36Ku9DaqUY-qZ-UVvdrbuk5SPH_o6O-NwHehCrJJoMmMDT2P3I0AfCFys8qHr1pVoSqbG5s6dxfiFp5KPYVU6_W3RE91-phbdvX4dfpT_HOedr0qbop8jU_s9sixwkB1GYHrmhE_dBkEOq8N0iRoXaXtA2K1sPsanMka2LN9-wk_Io0NmH2UX1n4TWBMQWwrvifxrkMgvQoPNJu1qvxkmF9KU9L1ziQjFw6p_GHQsN6miCGfUp6MgalCvcrdf4voBK_Rjiw2Mr6LNdrTcv-XIZ3H4uj4jdsKkAbWPY61goeUkVp5OWj_LClGCsuqXJNlV9DO60OPd4dGGAMNB_bPC_gHXWc0a4C7RoQifv4SbDdPmyMlQDa7tLTImr","summary":[{"type":"summary_text","text":"**Calculating precise epoch for timestamp conversion**"},{"type":"summary_text","text":"**Estimating log tail range for analysis**"}]},{"id":"fc_05a4d8ea8a10ef0b016a59745e61008198a7c002322a2d8a85","type":"function_call","status":"completed","arguments":"{\"i\":\"Locating current log tail\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":\"50000-50300\"}","call_id":"call_WlahUnOOFBKVNcUbngv1aeSm","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59745e610c81988c768b1f3f6763e1","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding current-hour lifecycle\",\"pattern\":\"wall_ms=1784247[0-9]{6}|wall_ms=1784246[0-9]{6}\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":null,\"case\":true,\"gitignore\":false,\"skip\":null}","call_id":"call_5n2GkgxW9gx79Y8AVFCunPd9","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59745e61148198ad547f89680cfbb7","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding dispatch failures\",\"pattern\":\"DISPATCH:|DISPATCH_[A-Z_]+|dispatch.*(fail|error|timeout)|dispatch.*Failed\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs\",\"selector\":null,\"case\":false,\"gitignore\":false,\"skip\":null}","call_id":"call_9VJoxkEtbLPBMAeYDRg7BIHT","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59745e61188198be6cc79ed365f7ce","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding reconnect and replay evidence\",\"pattern\":\"RECONNECT|reconnect|RESUMED|resumed|replay|from_seq=|cursor|stream-sub-attach|stream-sub-detach|presence-sub\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":null,\"case\":true,\"gitignore\":false,\"skip\":null}","call_id":"call_NqhHtMUherWzOQzTMCF1Cvps","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59745e611c819888f5ff25d0d83215","type":"function_call","status":"completed","arguments":"{\"i\":\"Locating telemetry source markers\",\"pattern\":\"CONN_LIFECYCLE|PUMP_PEER_FAIL|pump-heartbeat|PUMP_IPC_READER|DISPATCH:|BRAIN_RESUMED|INJECT_SETTLE_TIMEOUT\",\"path\":\"crates/spt-daemon/src;crates/spt-daemon/tests;crates/spt/src\",\"selector\":null,\"case\":true,\"gitignore\":true,\"skip\":null}","call_id":"call_jR7NWLndcKYzt2FMOWUHIDwr","name":"grep"}]},"duration":15262.50230000168,"ttft":1253.7527000010014,"contextSnapshot":{"promptTokens":44619,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_WlahUnOOFBKVNcUbngv1aeSm|fc_05a4d8ea8a10ef0b016a59745e61008198a7c002322a2d8a85","toolName":"read","startedAt":"2026-07-17T00:16:30.429Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Locating current log tail"},"id":"0987420e","parentId":"437ac3b3","timestamp":"2026-07-17T00:16:30.429Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_5n2GkgxW9gx79Y8AVFCunPd9|fc_05a4d8ea8a10ef0b016a59745e610c81988c768b1f3f6763e1","toolName":"grep","startedAt":"2026-07-17T00:16:30.429Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Finding current-hour lifecycle"},"id":"544ab329","parentId":"0987420e","timestamp":"2026-07-17T00:16:30.429Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_9VJoxkEtbLPBMAeYDRg7BIHT|fc_05a4d8ea8a10ef0b016a59745e61148198ad547f89680cfbb7","toolName":"grep","startedAt":"2026-07-17T00:16:30.430Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs"},"intent":"Finding dispatch failures"},"id":"ba1e2354","parentId":"544ab329","timestamp":"2026-07-17T00:16:30.430Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_NqhHtMUherWzOQzTMCF1Cvps|fc_05a4d8ea8a10ef0b016a59745e61188198be6cc79ed365f7ce","toolName":"grep","startedAt":"2026-07-17T00:16:30.430Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Finding reconnect and replay evidence"},"id":"8d2b2e14","parentId":"ba1e2354","timestamp":"2026-07-17T00:16:30.430Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_jR7NWLndcKYzt2FMOWUHIDwr|fc_05a4d8ea8a10ef0b016a59745e611c819888f5ff25d0d83215","toolName":"grep","startedAt":"2026-07-17T00:16:30.430Z","args":{"path":"crates/spt-daemon/src;crates/spt-daemon/tests;crates/spt/src"},"intent":"Locating telemetry source markers"},"id":"f1d560a1","parentId":"8d2b2e14","timestamp":"2026-07-17T00:16:30.430Z"}
{"type":"message","id":"18f0a1b1","parentId":"f1d560a1","timestamp":"2026-07-17T00:16:30.442Z","message":{"role":"toolResult","toolCallId":"call_5n2GkgxW9gx79Y8AVFCunPd9|fc_05a4d8ea8a10ef0b016a59745e610c81988c768b1f3f6763e1","toolName":"grep","content":[{"type":"text","text":"No matches found\nSearched only the first 4MB of large files (matches past the 4MB window are not shown; use `read` for the rest): ..\\..\\..\\AppData\\Local\\spt-core\\logs\\daemon.stderr.log"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":0,"fileCount":0,"files":[],"truncated":false},"isError":false,"useless":true,"timestamp":1784247390441}}
{"type":"message","id":"a9b6cd66","parentId":"18f0a1b1","timestamp":"2026-07-17T00:16:30.449Z","message":{"role":"toolResult","toolCallId":"call_9VJoxkEtbLPBMAeYDRg7BIHT|fc_05a4d8ea8a10ef0b016a59745e61148198ad547f89680cfbb7","toolName":"grep","content":[{"type":"text","text":"# C:/Users/decid/AppData/Local/spt-core/logs/\n## daemon.stderr.log\n 3523|CONN_LIFECYCLE: conn=1400 role=brain wall_ms=1784236940522 mono_ms=1244753 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*3524|DISPATCH:553:Failed(\"failed to fill whole buffer\")\n 3525|CONN_LIFECYCLE: conn=1401 role=brain wall_ms=1784236942530 mono_ms=1246761 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 3526|CONN_LIFECYCLE: conn=1401 role=brain wall_ms=1784236942530 mono_ms=1246761 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 3527|CONN_LIFECYCLE: conn=1402 role=brain wall_ms=1784236942532 mono_ms=1246762 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 3528|CONN_LIFECYCLE: conn=1402 role=brain stream-subscriber stream=557 wall_ms=1784236942532 mono_ms=1246763 event=stream-sub-attach stream=557 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*3529|DISPATCH:549:Failed(\"failed to fill whole buffer\")\n 3530|CONN_LIFECYCLE: conn=1399 role=brain stream-subscriber stream=556 wall_ms=1784236942538 mono_ms=1246769 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 3531|CONN_LIFECYCLE: conn=1403 role=brain wall_ms=1784236942538 mono_ms=1246769 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 3532|CONN_LIFECYCLE: conn=1403 role=brain wall_ms=1784236942538 mono_ms=1246769 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 3694|CONN_LIFECYCLE: conn=1465 role=brain wall_ms=1784237048049 mono_ms=1352280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*3695|DISPATCH:577:Failed(\"failed to fill whole buffer\")\n*3696|DISPATCH:573:Failed(\"failed to fill whole buffer\")\n 3697|CONN_LIFECYCLE: conn=1466 role=brain wall_ms=1784237052950 mono_ms=1357180 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 3698|CONN_LIFECYCLE: conn=1467 role=brain wall_ms=1784237052950 mono_ms=1357180 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 3699|CONN_LIFECYCLE: conn=1466 role=brain wall_ms=1784237052950 mono_ms=1357181 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 4330|CONN_LIFECYCLE: conn=1710 role=brain wall_ms=1784237507068 mono_ms=1811297 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*4331|DISPATCH:693:Failed(\"failed to fill whole buffer\")\n 4332|CONN_LIFECYCLE: conn=1711 role=brain wall_ms=1784237509282 mono_ms=1813512 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 4333|CONN_LIFECYCLE: conn=1711 role=brain wall_ms=1784237509282 mono_ms=1813512 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 4334|CONN_LIFECYCLE: conn=1712 role=brain stream-subscriber stream=693 wall_ms=1784237509282 mono_ms=1813512 event=stream-sub-attach stream=693 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n...\n 9208|CONN_LIFECYCLE: conn=3664 role=brain stream-subscriber stream=1444 wall_ms=1784239516287 mono_ms=3820512 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*9209|DISPATCH:1439:Failed(\"failed to fill whole buffer\")\n 9210|CONN_LIFECYCLE: conn=3681 role=brain wall_ms=1784239516293 mono_ms=3820518 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 9211|CONN_LIFECYCLE: conn=3681 role=brain wall_ms=1784239516294 mono_ms=3820519 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 9212|CONN_LIFECYCLE: conn=3682 role=brain wall_ms=1784239516304 mono_ms=3820529 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 9860|CONN_LIFECYCLE: conn=3945 role=brain wall_ms=1784239753959 mono_ms=4058184 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*9861|DISPATCH:1532:Failed(\"failed to fill whole buffer\")\n 9862|CONN_LIFECYCLE: conn=3910 role=brain stream-subscriber stream=1531 wall_ms=1784239753970 mono_ms=4058195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 9863|CONN_LIFECYCLE: conn=3946 role=brain wall_ms=1784239753970 mono_ms=4058195 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 9864|CONN_LIFECYCLE: conn=3946 role=brain wall_ms=1784239753970 mono_ms=4058195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 10202|CONN_LIFECYCLE: conn=4085 role=brain wall_ms=1784239865965 mono_ms=4170189 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*10203|DISPATCH:1567:Failed(\"failed to fill whole buffer\")\n 10204|CONN_LIFECYCLE: conn=4059 role=brain stream-subscriber stream=1580 wall_ms=1784239865972 mono_ms=4170196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 10205|CONN_LIFECYCLE: conn=4086 role=brain wall_ms=1784239865972 mono_ms=4170196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 10206|CONN_LIFECYCLE: conn=4086 role=brain wall_ms=1784239865972 mono_ms=4170196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 13188|CONN_LIFECYCLE: conn=5312 role=brain wall_ms=1784240785230 mono_ms=5089452 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*13189|DISPATCH:2042:Failed(\"failed to fill whole buffer\")\n 13190|CONN_LIFECYCLE: conn=5307 role=brain stream-subscriber stream=2046 wall_ms=1784240785240 mono_ms=5089462 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 13191|CONN_LIFECYCLE: conn=5313 role=brain wall_ms=1784240785240 mono_ms=5089462 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 13192|CONN_LIFECYCLE: conn=5313 role=brain wall_ms=1784240785240 mono_ms=5089462 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 19899|CONN_LIFECYCLE: conn=8081 role=brain wall_ms=1784242645136 mono_ms=6949349 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*19900|DISPATCH:3118:Failed(\"failed to fill whole buffer\")\n 19901|CONN_LIFECYCLE: conn=8074 role=brain stream-subscriber stream=3126 wall_ms=1784242645140 mono_ms=6949354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 19902|CONN_LIFECYCLE: conn=8082 role=brain wall_ms=1784242645140 mono_ms=6949354 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 19903|CONN_LIFECYCLE: conn=8082 role=brain wall_ms=1784242645140 mono_ms=6949354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 22663|CONN_LIFECYCLE: conn=9221 role=brain wall_ms=1784243389875 mono_ms=7694081 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*22664|DISPATCH:3549:Failed(\"failed to fill whole buffer\")\n 22665|CONN_LIFECYCLE: conn=9184 role=brain stream-subscriber stream=3554 wall_ms=1784243392840 mono_ms=7697047 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 22666|CONN_LIFECYCLE: conn=9222 role=brain wall_ms=1784243392840 mono_ms=7697047 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 22667|CONN_LIFECYCLE: conn=9222 role=brain wall_ms=1784243392841 mono_ms=7697048 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 23781|PSYCHE_TURN_FAIL:doyle (strike 1/3): turn: psyche turn runtime: bounded invocation timed out after 30s (killed): claude-spt psyche --id doyle --session-id a5918ea9-d5bf-4657-a6d3-159f6d6634c4 --psyche-context-file C:\\Users\\decid\\AppData\\Local\\spt-core\\owlery\\doyle\\nested\\doyle-psyche\\psyche-context.txt\n*23782|DISPATCH:3694:Failed(\"failed to fill whole buffer\")\n 23783|ENDPOINT_INJECT:lia (1811 bytes → translation binary)\n 23784|CONN_LIFECYCLE: conn=9684 role=brain wall_ms=1784243688454 mono_ms=7992658 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 23785|CONN_LIFECYCLE: conn=9684 role=brain wall_ms=1784243688454 mono_ms=7992658 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*23786|DISPATCH:3721:Failed(\"failed to fill whole buffer\")\n 23787|CONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 23788|CONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 23789|CONN_LIFECYCLE: conn=9686 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 23807|CONN_LIFECYCLE: conn=9690 role=brain wall_ms=1784243688485 mono_ms=7992689 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*23808|DISPATCH:3711:Failed(\"failed to fill whole buffer\")\n 23809|CONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243688495 mono_ms=7992699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 23810|CONN_LIFECYCLE: conn=9691 role=brain wall_ms=1784243688495 mono_ms=7992699 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 23811|CONN_LIFECYCLE: conn=9691 role=brain wall_ms=1784243688495 mono_ms=7992699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 24155|CONN_LIFECYCLE: conn=9831 role=brain wall_ms=1784243798784 mono_ms=8102987 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24156|DISPATCH:3765:Failed(\"failed to fill whole buffer\")\n*24157|DISPATCH:3774:Failed(\"failed to fill whole buffer\")\n 24158|CONN_LIFECYCLE: conn=9785 role=brain stream-subscriber stream=3769 wall_ms=1784243798790 mono_ms=8102992 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24159|CONN_LIFECYCLE: conn=9789 role=brain stream-subscriber stream=3767 wall_ms=1784243798792 mono_ms=8102995 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24160|CONN_LIFECYCLE: conn=9832 role=brain wall_ms=1784243798793 mono_ms=8102996 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 24441|CONN_LIFECYCLE: conn=9947 role=brain wall_ms=1784243888879 mono_ms=8193081 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24442|DISPATCH:3818:Failed(\"failed to fill whole buffer\")\n 24443|CONN_LIFECYCLE: conn=9927 role=brain stream-subscriber stream=3816 wall_ms=1784243889924 mono_ms=8194126 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24444|CONN_LIFECYCLE: conn=9948 role=brain wall_ms=1784243889924 mono_ms=8194126 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24445|CONN_LIFECYCLE: conn=9948 role=brain wall_ms=1784243889925 mono_ms=8194126 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 24767|PAIR_MEET_UP:SPT_DEV step=59474800 id=112b8b55bad339ca7c289165c970c66d6151a080ec708b48152ab51427bc9935 addr=EndpointAddr { id: PublicKey(112b8b55bad339ca7c289165c970c66d6151a080ec708b48152ab51427bc9935), addrs: {Ip(100.68.35.65:56772), Ip(192.168.1.81:56772)} }\n*24768|DISPATCH:3858:Failed(\"failed to fill whole buffer\")\n 24769|CONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784244001057 mono_ms=8305257 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24770|CONN_LIFECYCLE: conn=10082 role=brain wall_ms=1784244001058 mono_ms=8305258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24771|CONN_LIFECYCLE: conn=10036 role=brain stream-subscriber stream=3856 wall_ms=1784244001058 mono_ms=8305258 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 25036|CONN_LIFECYCLE: conn=10189 role=brain wall_ms=1784244102368 mono_ms=8406568 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25037|DISPATCH:3907:Failed(\"failed to fill whole buffer\")\n 25038|CONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 25039|CONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25040|CONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25041|DISPATCH:3898:Failed(\"failed to fill whole buffer\")\n 25042|CONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 25043|CONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25044|CONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n## daemon.stderr.log.1\n 6|PUMP_IPC_READER: spawned\n*7|DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*8|DISPATCH:3:Failed(\"failed to fill whole buffer\")\n*9|DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 10|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 11|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 12|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 13|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*14|DISPATCH:4176:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 15|=== spt brain stderr — generation 3 — pid 56712 ===\n 16|BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 56712, generation 3, start-reason update)\n 17|BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n...\n 20|PUMP_IPC_READER: spawned\n*21|DISPATCH:3:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*22|DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 23|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 24|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 25|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 26|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*27|DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 28|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 29|PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n 30|PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":27,"fileCount":2,"files":["C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1"],"fileMatches":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","count":20},{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1","count":7}],"truncated":false,"displayContent":"# C:/Users/decid/AppData/Local/spt-core/logs/\n## daemon.stderr.log\n  3523│CONN_LIFECYCLE: conn=1400 role=brain wall_ms=1784236940522 mono_ms=1244753 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *3524│DISPATCH:553:Failed(\"failed to fill whole buffer\")\n  3525│CONN_LIFECYCLE: conn=1401 role=brain wall_ms=1784236942530 mono_ms=1246761 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  3526│CONN_LIFECYCLE: conn=1401 role=brain wall_ms=1784236942530 mono_ms=1246761 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  3527│CONN_LIFECYCLE: conn=1402 role=brain wall_ms=1784236942532 mono_ms=1246762 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  3528│CONN_LIFECYCLE: conn=1402 role=brain stream-subscriber stream=557 wall_ms=1784236942532 mono_ms=1246763 event=stream-sub-attach stream=557 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *3529│DISPATCH:549:Failed(\"failed to fill whole buffer\")\n  3530│CONN_LIFECYCLE: conn=1399 role=brain stream-subscriber stream=556 wall_ms=1784236942538 mono_ms=1246769 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  3531│CONN_LIFECYCLE: conn=1403 role=brain wall_ms=1784236942538 mono_ms=1246769 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  3532│CONN_LIFECYCLE: conn=1403 role=brain wall_ms=1784236942538 mono_ms=1246769 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  3694│CONN_LIFECYCLE: conn=1465 role=brain wall_ms=1784237048049 mono_ms=1352280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *3695│DISPATCH:577:Failed(\"failed to fill whole buffer\")\n *3696│DISPATCH:573:Failed(\"failed to fill whole buffer\")\n  3697│CONN_LIFECYCLE: conn=1466 role=brain wall_ms=1784237052950 mono_ms=1357180 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  3698│CONN_LIFECYCLE: conn=1467 role=brain wall_ms=1784237052950 mono_ms=1357180 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  3699│CONN_LIFECYCLE: conn=1466 role=brain wall_ms=1784237052950 mono_ms=1357181 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  4330│CONN_LIFECYCLE: conn=1710 role=brain wall_ms=1784237507068 mono_ms=1811297 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *4331│DISPATCH:693:Failed(\"failed to fill whole buffer\")\n  4332│CONN_LIFECYCLE: conn=1711 role=brain wall_ms=1784237509282 mono_ms=1813512 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  4333│CONN_LIFECYCLE: conn=1711 role=brain wall_ms=1784237509282 mono_ms=1813512 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  4334│CONN_LIFECYCLE: conn=1712 role=brain stream-subscriber stream=693 wall_ms=1784237509282 mono_ms=1813512 event=stream-sub-attach stream=693 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  9208│CONN_LIFECYCLE: conn=3664 role=brain stream-subscriber stream=1444 wall_ms=1784239516287 mono_ms=3820512 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *9209│DISPATCH:1439:Failed(\"failed to fill whole buffer\")\n  9210│CONN_LIFECYCLE: conn=3681 role=brain wall_ms=1784239516293 mono_ms=3820518 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  9211│CONN_LIFECYCLE: conn=3681 role=brain wall_ms=1784239516294 mono_ms=3820519 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  9212│CONN_LIFECYCLE: conn=3682 role=brain wall_ms=1784239516304 mono_ms=3820529 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  9860│CONN_LIFECYCLE: conn=3945 role=brain wall_ms=1784239753959 mono_ms=4058184 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *9861│DISPATCH:1532:Failed(\"failed to fill whole buffer\")\n  9862│CONN_LIFECYCLE: conn=3910 role=brain stream-subscriber stream=1531 wall_ms=1784239753970 mono_ms=4058195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  9863│CONN_LIFECYCLE: conn=3946 role=brain wall_ms=1784239753970 mono_ms=4058195 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  9864│CONN_LIFECYCLE: conn=3946 role=brain wall_ms=1784239753970 mono_ms=4058195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 10202│CONN_LIFECYCLE: conn=4085 role=brain wall_ms=1784239865965 mono_ms=4170189 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*10203│DISPATCH:1567:Failed(\"failed to fill whole buffer\")\n 10204│CONN_LIFECYCLE: conn=4059 role=brain stream-subscriber stream=1580 wall_ms=1784239865972 mono_ms=4170196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 10205│CONN_LIFECYCLE: conn=4086 role=brain wall_ms=1784239865972 mono_ms=4170196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 10206│CONN_LIFECYCLE: conn=4086 role=brain wall_ms=1784239865972 mono_ms=4170196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 13188│CONN_LIFECYCLE: conn=5312 role=brain wall_ms=1784240785230 mono_ms=5089452 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*13189│DISPATCH:2042:Failed(\"failed to fill whole buffer\")\n 13190│CONN_LIFECYCLE: conn=5307 role=brain stream-subscriber stream=2046 wall_ms=1784240785240 mono_ms=5089462 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 13191│CONN_LIFECYCLE: conn=5313 role=brain wall_ms=1784240785240 mono_ms=5089462 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 13192│CONN_LIFECYCLE: conn=5313 role=brain wall_ms=1784240785240 mono_ms=5089462 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 19899│CONN_LIFECYCLE: conn=8081 role=brain wall_ms=1784242645136 mono_ms=6949349 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*19900│DISPATCH:3118:Failed(\"failed to fill whole buffer\")\n 19901│CONN_LIFECYCLE: conn=8074 role=brain stream-subscriber stream=3126 wall_ms=1784242645140 mono_ms=6949354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 19902│CONN_LIFECYCLE: conn=8082 role=brain wall_ms=1784242645140 mono_ms=6949354 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 19903│CONN_LIFECYCLE: conn=8082 role=brain wall_ms=1784242645140 mono_ms=6949354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 22663│CONN_LIFECYCLE: conn=9221 role=brain wall_ms=1784243389875 mono_ms=7694081 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*22664│DISPATCH:3549:Failed(\"failed to fill whole buffer\")\n 22665│CONN_LIFECYCLE: conn=9184 role=brain stream-subscriber stream=3554 wall_ms=1784243392840 mono_ms=7697047 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 22666│CONN_LIFECYCLE: conn=9222 role=brain wall_ms=1784243392840 mono_ms=7697047 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 22667│CONN_LIFECYCLE: conn=9222 role=brain wall_ms=1784243392841 mono_ms=7697048 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 23781│PSYCHE_TURN_FAIL:doyle (strike 1/3): turn: psyche turn runtime: bounded invocation timed out after 30s (killed): claude-spt psyche --id doyle --session-id a5918ea9-d5bf-4657-a6d3-159f6d6634c4 --psyche-context-file C:\\Users\\decid\\AppData\\Local\\spt-core\\owlery\\doyle\\nested\\doyle-psyche\\psyche-context.txt\n*23782│DISPATCH:3694:Failed(\"failed to fill whole buffer\")\n 23783│ENDPOINT_INJECT:lia (1811 bytes → translation binary)\n 23784│CONN_LIFECYCLE: conn=9684 role=brain wall_ms=1784243688454 mono_ms=7992658 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 23785│CONN_LIFECYCLE: conn=9684 role=brain wall_ms=1784243688454 mono_ms=7992658 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*23786│DISPATCH:3721:Failed(\"failed to fill whole buffer\")\n 23787│CONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 23788│CONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 23789│CONN_LIFECYCLE: conn=9686 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 23807│CONN_LIFECYCLE: conn=9690 role=brain wall_ms=1784243688485 mono_ms=7992689 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*23808│DISPATCH:3711:Failed(\"failed to fill whole buffer\")\n 23809│CONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243688495 mono_ms=7992699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 23810│CONN_LIFECYCLE: conn=9691 role=brain wall_ms=1784243688495 mono_ms=7992699 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 23811│CONN_LIFECYCLE: conn=9691 role=brain wall_ms=1784243688495 mono_ms=7992699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 24155│CONN_LIFECYCLE: conn=9831 role=brain wall_ms=1784243798784 mono_ms=8102987 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24156│DISPATCH:3765:Failed(\"failed to fill whole buffer\")\n*24157│DISPATCH:3774:Failed(\"failed to fill whole buffer\")\n 24158│CONN_LIFECYCLE: conn=9785 role=brain stream-subscriber stream=3769 wall_ms=1784243798790 mono_ms=8102992 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24159│CONN_LIFECYCLE: conn=9789 role=brain stream-subscriber stream=3767 wall_ms=1784243798792 mono_ms=8102995 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24160│CONN_LIFECYCLE: conn=9832 role=brain wall_ms=1784243798793 mono_ms=8102996 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 24441│CONN_LIFECYCLE: conn=9947 role=brain wall_ms=1784243888879 mono_ms=8193081 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24442│DISPATCH:3818:Failed(\"failed to fill whole buffer\")\n 24443│CONN_LIFECYCLE: conn=9927 role=brain stream-subscriber stream=3816 wall_ms=1784243889924 mono_ms=8194126 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24444│CONN_LIFECYCLE: conn=9948 role=brain wall_ms=1784243889924 mono_ms=8194126 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24445│CONN_LIFECYCLE: conn=9948 role=brain wall_ms=1784243889925 mono_ms=8194126 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 24767│PAIR_MEET_UP:SPT_DEV step=59474800 id=112b8b55bad339ca7c289165c970c66d6151a080ec708b48152ab51427bc9935 addr=EndpointAddr { id: PublicKey(112b8b55bad339ca7c289165c970c66d6151a080ec708b48152ab51427bc9935), addrs: {Ip(100.68.35.65:56772), Ip(192.168.1.81:56772)} }\n*24768│DISPATCH:3858:Failed(\"failed to fill whole buffer\")\n 24769│CONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784244001057 mono_ms=8305257 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24770│CONN_LIFECYCLE: conn=10082 role=brain wall_ms=1784244001058 mono_ms=8305258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24771│CONN_LIFECYCLE: conn=10036 role=brain stream-subscriber stream=3856 wall_ms=1784244001058 mono_ms=8305258 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 25036│CONN_LIFECYCLE: conn=10189 role=brain wall_ms=1784244102368 mono_ms=8406568 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25037│DISPATCH:3907:Failed(\"failed to fill whole buffer\")\n 25038│CONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 25039│CONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25040│CONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25041│DISPATCH:3898:Failed(\"failed to fill whole buffer\")\n 25042│CONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 25043│CONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25044│CONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n## daemon.stderr.log.1\n  6│PUMP_IPC_READER: spawned\n *7│DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n *8│DISPATCH:3:Failed(\"failed to fill whole buffer\")\n *9│DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 10│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 11│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 12│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 13│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*14│DISPATCH:4176:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 15│=== spt brain stderr — generation 3 — pid 56712 ===\n 16│BRAIN_UP: connected to broker spt-daemon-broker-78bf18a9fd96fdc6.sock (pid 56712, generation 3, start-reason update)\n 17│BRAIN_RESUMED: re-established 7 session cursor(s): [4, 2, 5, 6, 10, 1, 7]\n   │...\n 20│PUMP_IPC_READER: spawned\n*21│DISPATCH:3:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n*22│DISPATCH:741:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 23│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\n 24│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 25│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 26│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n*27│DISPATCH:4496:Failed(\"No process is on the other end of the pipe. (os error 233)\")\n 28│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 29│PUMP_PEER_FAIL:cfd9fc552b44f9da7b7146baee3eb18c7b7514e01c5ad06e367d3f15765c3f6f:submit-dial exceeded the 10s bound (peer unresponsive)\n 30│PUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)"},"isError":false,"timestamp":1784247390449}}
{"type":"message","id":"79d459f0","parentId":"a9b6cd66","timestamp":"2026-07-17T00:16:30.457Z","message":{"role":"toolResult","toolCallId":"call_NqhHtMUherWzOQzTMCF1Cvps|fc_05a4d8ea8a10ef0b016a59745e61188198be6cc79ed365f7ce","toolName":"grep","content":[{"type":"text","text":" 23|CONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24|CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235696209 mono_ms=443 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 25|=== spt broker stderr — generation 0 — pid 82868 ===\n 26|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 27|BROKER_BIND_FAIL: Access is denied. (os error 5)\n...\n 32|PUMP_IPC_READER: spawned\n*33|CONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235696416 mono_ms=650 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\n 34|CONN_LIFECYCLE: conn=8 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 35|CONN_LIFECYCLE: conn=9 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 36|CONN_LIFECYCLE: conn=10 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 50|CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=transport-close poisoned=true timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*51|CONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698228 mono_ms=2462 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 52|CONTROL_REAP_NO_SESSION:doyle: cleared stale controlled/driven_by (no broker session)\n 53|CONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698260 mono_ms=2493 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 54|ENDPOINT_AUTOSTART:lia adapter=claude-spt session=eedd44363fd38392 pid=50824 (startup default)\n...\n 62|CONTROL_REAP_NO_SESSION:perri: cleared stale controlled/driven_by (no broker session)\n*63|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698348 mono_ms=2582 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 64|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698363 mono_ms=2597 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 65|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698366 mono_ms=2600 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 66|WAKE_RESUME:deployah: resuming session 89cc9038-e5d9-429e-b4a9-40fba8af71ee under claude-spt:ccs (pid 40376) — online at bind\n...\n 68|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*69|CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698404 mono_ms=2638 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 70|CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698419 mono_ms=2653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 71|CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698422 mono_ms=2656 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 72|WAKE_RESUME:doyle: resuming session a2fdb848-6643-4e10-b221-6baee7e91b7b under claude-spt:ccs (pid 60892) — online at bind\n...\n 78|WAKE_RESUME:lia: resuming session 9e0df17e-f217-4446-97a4-f528a56024ba under claude-spt (pid 50824) — online at bind\n*79|CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698567 mono_ms=2801 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 80|CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698582 mono_ms=2816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 81|CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698586 mono_ms=2819 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 82|WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 58672) — online at bind\n...\n 88|CONN_LIFECYCLE: conn=24 role=brain wall_ms=1784235698717 mono_ms=2950 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*89|CONN_LIFECYCLE: conn=23 role=brain stream-subscriber stream=2 wall_ms=1784235698735 mono_ms=2968 event=stream-sub-attach stream=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*90|CONN_LIFECYCLE: conn=24 role=brain stream-subscriber stream=4 wall_ms=1784235698738 mono_ms=2972 event=stream-sub-attach stream=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*91|CONN_LIFECYCLE: conn=22 role=brain stream-subscriber stream=6 wall_ms=1784235698741 mono_ms=2975 event=stream-sub-attach stream=6 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*92|CONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=8 wall_ms=1784235698744 mono_ms=2978 event=stream-sub-attach stream=8 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 93|CONN_LIFECYCLE: conn=25 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 94|CONN_LIFECYCLE: conn=26 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 95|CONN_LIFECYCLE: conn=27 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 102|CONN_LIFECYCLE: conn=30 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*103|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=7 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*104|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 105|CONN_LIFECYCLE: conn=32 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 106|CONN_LIFECYCLE: conn=31 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*107|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*108|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*109|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*110|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*111|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*112|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 113|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698848 mono_ms=3082 event=controller-replaced session=5 new_conn=29 [REQ-CONN-POISON-ATTRIBUTION]\n*114|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 115|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 116|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698862 mono_ms=3096 event=controller-replaced session=2 new_conn=30 [REQ-CONN-POISON-ATTRIBUTION]\n*117|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 118|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 119|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=3 new_conn=32 [REQ-CONN-POISON-ATTRIBUTION]\n*120|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 121|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 122|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=4 new_conn=31 [REQ-CONN-POISON-ATTRIBUTION]\n*123|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 124|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 125|CONN_LIFECYCLE: conn=37 role=brain wall_ms=1784235703719 mono_ms=7953 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 126|CONN_LIFECYCLE: conn=37 role=brain wall_ms=1784235703719 mono_ms=7953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 137|CONN_LIFECYCLE: conn=6 role=brain wall_ms=1784235719089 mono_ms=23323 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*138|CONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235719115 mono_ms=23349 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 139|CONN_LIFECYCLE: conn=42 role=brain wall_ms=1784235719515 mono_ms=23749 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 140|CONN_LIFECYCLE: conn=43 role=brain wall_ms=1784235719515 mono_ms=23749 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 141|CONN_LIFECYCLE: conn=42 role=brain wall_ms=1784235719516 mono_ms=23749 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 142|CONN_LIFECYCLE: conn=43 role=brain wall_ms=1784235719516 mono_ms=23749 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*143|CONN_LIFECYCLE: conn=44 role=brain stream-subscriber stream=11 wall_ms=1784235719516 mono_ms=23750 event=stream-sub-attach stream=11 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 144|CONN_LIFECYCLE: conn=44 role=brain stream-subscriber stream=11 wall_ms=1784235719516 mono_ms=23750 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 145|CONN_LIFECYCLE: conn=45 role=brain wall_ms=1784235719517 mono_ms=23751 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*146|CONN_LIFECYCLE: conn=45 role=brain stream-subscriber stream=12 wall_ms=1784235719517 mono_ms=23751 event=stream-sub-attach stream=12 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 147|CONN_LIFECYCLE: conn=44 role=brain stream-subscriber stream=11 wall_ms=1784235720289 mono_ms=24523 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 148|CONN_LIFECYCLE: conn=46 role=brain wall_ms=1784235720289 mono_ms=24523 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 149|CONN_LIFECYCLE: conn=46 role=brain wall_ms=1784235720289 mono_ms=24523 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 152|CONN_LIFECYCLE: conn=47 role=brain wall_ms=1784235720291 mono_ms=24525 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*153|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 wall_ms=1784235720389 mono_ms=24623 event=stream-sub-attach stream=13 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 154|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 155|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 156|PAIR_MEET_UP:BIGNET step=59474524 id=9ae4531e8fa8f24c6f2b14198d659bbce40525de8d0654e24fc04c3f85c7e271 addr=EndpointAddr { id: PublicKey(9ae4531e8fa8f24c6f2b14198d659bbce40525de8d0654e24fc04c3f85c7e271), addrs: {Ip(100.68.35.65:52538), Ip(192.168.1.81:52538)} }\n 157|PAIR_MEET_UP:SPT_DEV step=59474524 id=1c4e8c1f6ffa63f6e83891c2c71b7cf504b78d4438d0fb4a4538a88dda04018b addr=EndpointAddr { id: PublicKey(1c4e8c1f6ffa63f6e83891c2c71b7cf504b78d4438d0fb4a4538a88dda04018b), addrs: {Ip(100.68.35.65:52544), Ip(192.168.1.81:52544)} }\n*158|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 wall_ms=1784235721418 mono_ms=25652 event=stream-sub-attach stream=14 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*159|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 wall_ms=1784235721575 mono_ms=25808 event=stream-sub-attach stream=17 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*160|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 wall_ms=1784235721949 mono_ms=26183 event=stream-sub-attach stream=20 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 161|CONN_LIFECYCLE: conn=48 role=brain wall_ms=1784235723941 mono_ms=28174 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 162|CONN_LIFECYCLE: conn=48 role=brain wall_ms=1784235723941 mono_ms=28174 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 163|CONN_LIFECYCLE: conn=49 role=brain wall_ms=1784235728987 mono_ms=33221 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 167|CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*168|CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729828 mono_ms=34062 event=stream-sub-attach stream=21 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 169|CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729828 mono_ms=34062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 170|CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729829 mono_ms=34062 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 171|CONN_LIFECYCLE: conn=52 role=brain wall_ms=1784235729829 mono_ms=34062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 178|CONN_LIFECYCLE: conn=54 role=brain wall_ms=1784235730129 mono_ms=34362 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*179|CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=22 wall_ms=1784235730129 mono_ms=34363 event=stream-sub-attach stream=22 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 180|CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=22 wall_ms=1784235730129 mono_ms=34363 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 181|CONN_LIFECYCLE: conn=56 role=brain wall_ms=1784235730130 mono_ms=34363 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*182|CONN_LIFECYCLE: conn=56 role=brain stream-subscriber stream=23 wall_ms=1784235730130 mono_ms=34363 event=stream-sub-attach stream=23 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 183|CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=22 wall_ms=1784235730134 mono_ms=34368 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 184|CONN_LIFECYCLE: conn=57 role=brain wall_ms=1784235730134 mono_ms=34368 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 185|CONN_LIFECYCLE: conn=57 role=brain wall_ms=1784235730134 mono_ms=34368 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 190|CONN_LIFECYCLE: conn=59 role=brain wall_ms=1784235730531 mono_ms=34764 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*191|CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=24 wall_ms=1784235730531 mono_ms=34765 event=stream-sub-attach stream=24 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 192|CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=24 wall_ms=1784235730531 mono_ms=34765 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 193|CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=24 wall_ms=1784235730531 mono_ms=34765 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 194|CONN_LIFECYCLE: conn=61 role=brain wall_ms=1784235730531 mono_ms=34765 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 197|CONN_LIFECYCLE: conn=62 role=brain wall_ms=1784235730631 mono_ms=34865 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*198|CONN_LIFECYCLE: conn=63 role=brain stream-subscriber stream=25 wall_ms=1784235730631 mono_ms=34865 event=stream-sub-attach stream=25 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 199|CONN_LIFECYCLE: conn=63 role=brain stream-subscriber stream=25 wall_ms=1784235730632 mono_ms=34865 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 200|CONN_LIFECYCLE: conn=63 role=brain stream-subscriber stream=25 wall_ms=1784235730632 mono_ms=34865 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 201|CONN_LIFECYCLE: conn=64 role=brain wall_ms=1784235730632 mono_ms=34866 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 210|CONN_LIFECYCLE: conn=68 role=brain wall_ms=1784235730732 mono_ms=34965 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*211|CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=28 wall_ms=1784235730732 mono_ms=34966 event=stream-sub-attach stream=28 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*212|CONN_LIFECYCLE: conn=71 role=brain stream-subscriber stream=26 wall_ms=1784235730732 mono_ms=34966 event=stream-sub-attach stream=26 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 213|CONN_LIFECYCLE: conn=71 role=brain stream-subscriber stream=26 wall_ms=1784235730732 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 214|CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=28 wall_ms=1784235730732 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 215|CONN_LIFECYCLE: conn=72 role=brain wall_ms=1784235730733 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 216|CONN_LIFECYCLE: conn=69 role=brain wall_ms=1784235730733 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*217|CONN_LIFECYCLE: conn=72 role=brain stream-subscriber stream=29 wall_ms=1784235730733 mono_ms=34967 event=stream-sub-attach stream=29 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*218|CONN_LIFECYCLE: conn=69 role=brain stream-subscriber stream=27 wall_ms=1784235730733 mono_ms=34967 event=stream-sub-attach stream=27 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 219|CONN_LIFECYCLE: conn=71 role=brain stream-subscriber stream=26 wall_ms=1784235730737 mono_ms=34971 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 220|CONN_LIFECYCLE: conn=73 role=brain wall_ms=1784235730737 mono_ms=34971 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 221|CONN_LIFECYCLE: conn=73 role=brain wall_ms=1784235730737 mono_ms=34971 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 232|CONN_LIFECYCLE: conn=77 role=brain wall_ms=1784235731535 mono_ms=35769 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*233|CONN_LIFECYCLE: conn=78 role=brain stream-subscriber stream=30 wall_ms=1784235731536 mono_ms=35769 event=stream-sub-attach stream=30 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 234|CONN_LIFECYCLE: conn=78 role=brain stream-subscriber stream=30 wall_ms=1784235731536 mono_ms=35769 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 235|CONN_LIFECYCLE: conn=79 role=brain wall_ms=1784235731636 mono_ms=35870 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 236|CONN_LIFECYCLE: conn=79 role=brain wall_ms=1784235731636 mono_ms=35870 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*237|CONN_LIFECYCLE: conn=80 role=brain stream-subscriber stream=31 wall_ms=1784235731637 mono_ms=35870 event=stream-sub-attach stream=31 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 238|CONN_LIFECYCLE: conn=80 role=brain stream-subscriber stream=31 wall_ms=1784235731637 mono_ms=35870 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 239|CONN_LIFECYCLE: conn=80 role=brain stream-subscriber stream=31 wall_ms=1784235731637 mono_ms=35871 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 240|CONN_LIFECYCLE: conn=81 role=brain wall_ms=1784235731637 mono_ms=35871 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 246|CONN_LIFECYCLE: conn=84 role=brain wall_ms=1784235734549 mono_ms=38783 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*247|CONN_LIFECYCLE: conn=84 role=brain stream-subscriber stream=32 wall_ms=1784235734549 mono_ms=38783 event=stream-sub-attach stream=32 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 248|CONN_LIFECYCLE: conn=84 role=brain stream-subscriber stream=32 wall_ms=1784235734558 mono_ms=38792 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 249|CONN_LIFECYCLE: conn=85 role=brain wall_ms=1784235734558 mono_ms=38792 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 250|CONN_LIFECYCLE: conn=85 role=brain wall_ms=1784235734558 mono_ms=38792 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 254|CONN_LIFECYCLE: conn=87 role=brain wall_ms=1784235739768 mono_ms=44002 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*255|CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=33 wall_ms=1784235739768 mono_ms=44002 event=stream-sub-attach stream=33 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 256|CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=33 wall_ms=1784235739768 mono_ms=44002 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 257|CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=33 wall_ms=1784235739769 mono_ms=44002 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 258|CONN_LIFECYCLE: conn=89 role=brain wall_ms=1784235739769 mono_ms=44002 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 264|CONN_LIFECYCLE: conn=92 role=brain wall_ms=1784235745292 mono_ms=49526 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*265|CONN_LIFECYCLE: conn=92 role=brain stream-subscriber stream=34 wall_ms=1784235745292 mono_ms=49526 event=stream-sub-attach stream=34 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 266|CONN_LIFECYCLE: conn=92 role=brain stream-subscriber stream=34 wall_ms=1784235745294 mono_ms=49528 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 267|CONN_LIFECYCLE: conn=93 role=brain wall_ms=1784235745294 mono_ms=49528 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 268|CONN_LIFECYCLE: conn=93 role=brain wall_ms=1784235745294 mono_ms=49528 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 271|CONN_LIFECYCLE: conn=94 role=brain wall_ms=1784235747691 mono_ms=51925 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*272|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 wall_ms=1784235747807 mono_ms=52041 event=stream-sub-attach stream=38 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 273|CONN_LIFECYCLE: conn=95 role=brain wall_ms=1784235749167 mono_ms=53400 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 274|CONN_LIFECYCLE: conn=95 role=brain wall_ms=1784235749167 mono_ms=53401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 275|CONN_LIFECYCLE: conn=96 role=brain wall_ms=1784235749710 mono_ms=53944 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 278|CONN_LIFECYCLE: conn=97 role=brain wall_ms=1784235749710 mono_ms=53944 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*279|CONN_LIFECYCLE: conn=98 role=brain stream-subscriber stream=39 wall_ms=1784235749710 mono_ms=53944 event=stream-sub-attach stream=39 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 280|CONN_LIFECYCLE: conn=98 role=brain stream-subscriber stream=39 wall_ms=1784235749710 mono_ms=53944 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 281|CONN_LIFECYCLE: conn=99 role=brain wall_ms=1784235749712 mono_ms=53945 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*282|CONN_LIFECYCLE: conn=99 role=brain stream-subscriber stream=40 wall_ms=1784235749712 mono_ms=53945 event=stream-sub-attach stream=40 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 283|CONN_LIFECYCLE: conn=98 role=brain stream-subscriber stream=39 wall_ms=1784235749720 mono_ms=53953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 284|CONN_LIFECYCLE: conn=100 role=brain wall_ms=1784235749720 mono_ms=53953 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 285|CONN_LIFECYCLE: conn=100 role=brain wall_ms=1784235749720 mono_ms=53953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 299|CONN_LIFECYCLE: conn=106 role=brain wall_ms=1784235755838 mono_ms=60072 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*300|CONN_LIFECYCLE: conn=106 role=brain stream-subscriber stream=42 wall_ms=1784235755838 mono_ms=60072 event=stream-sub-attach stream=42 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 301|CONN_LIFECYCLE: conn=106 role=brain stream-subscriber stream=42 wall_ms=1784235755840 mono_ms=60074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 302|CONN_LIFECYCLE: conn=107 role=brain wall_ms=1784235755840 mono_ms=60074 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 303|CONN_LIFECYCLE: conn=107 role=brain wall_ms=1784235755840 mono_ms=60074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 304|CONN_LIFECYCLE: conn=105 role=brain wall_ms=1784235755851 mono_ms=60085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*305|CONN_LIFECYCLE: conn=105 role=brain stream-subscriber stream=41 wall_ms=1784235755851 mono_ms=60085 event=stream-sub-attach stream=41 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 306|CONN_LIFECYCLE: conn=105 role=brain stream-subscriber stream=41 wall_ms=1784235755855 mono_ms=60089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 307|CONN_LIFECYCLE: conn=108 role=brain wall_ms=1784235755855 mono_ms=60089 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 308|CONN_LIFECYCLE: conn=108 role=brain wall_ms=1784235755855 mono_ms=60089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 316|CONN_LIFECYCLE: conn=111 role=brain wall_ms=1784235760357 mono_ms=64590 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*317|CONN_LIFECYCLE: conn=111 role=brain stream-subscriber stream=46 wall_ms=1784235760357 mono_ms=64591 event=stream-sub-attach stream=46 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 318|CONN_LIFECYCLE: conn=111 role=brain stream-subscriber stream=46 wall_ms=1784235760359 mono_ms=64592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 319|CONN_LIFECYCLE: conn=112 role=brain wall_ms=1784235760359 mono_ms=64593 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 320|CONN_LIFECYCLE: conn=112 role=brain wall_ms=1784235760359 mono_ms=64593 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 322|CONN_LIFECYCLE: conn=113 role=brain wall_ms=1784235762063 mono_ms=66297 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*323|CONN_LIFECYCLE: conn=114 role=brain stream-subscriber stream=47 wall_ms=1784235762063 mono_ms=66297 event=stream-sub-attach stream=47 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 324|CONN_LIFECYCLE: conn=114 role=brain stream-subscriber stream=47 wall_ms=1784235762063 mono_ms=66297 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 325|CONN_LIFECYCLE: conn=114 role=brain stream-subscriber stream=47 wall_ms=1784235762068 mono_ms=66302 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 326|CONN_LIFECYCLE: conn=115 role=brain wall_ms=1784235762068 mono_ms=66302 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 332|CONN_LIFECYCLE: conn=118 role=brain wall_ms=1784235764677 mono_ms=68910 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*333|CONN_LIFECYCLE: conn=118 role=brain stream-subscriber stream=48 wall_ms=1784235764677 mono_ms=68910 event=stream-sub-attach stream=48 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 334|CONN_LIFECYCLE: conn=118 role=brain stream-subscriber stream=48 wall_ms=1784235764686 mono_ms=68920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 335|CONN_LIFECYCLE: conn=119 role=brain wall_ms=1784235764686 mono_ms=68920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 336|CONN_LIFECYCLE: conn=119 role=brain wall_ms=1784235764686 mono_ms=68920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 348|CONN_LIFECYCLE: conn=124 role=brain wall_ms=1784235770903 mono_ms=75136 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*349|CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=49 wall_ms=1784235770903 mono_ms=75136 event=stream-sub-attach stream=49 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 350|CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=49 wall_ms=1784235770903 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*351|CONN_LIFECYCLE: conn=128 role=brain stream-subscriber stream=51 wall_ms=1784235770903 mono_ms=75136 event=stream-sub-attach stream=51 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 352|CONN_LIFECYCLE: conn=128 role=brain stream-subscriber stream=51 wall_ms=1784235770903 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 353|CONN_LIFECYCLE: conn=125 role=brain wall_ms=1784235770904 mono_ms=75138 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*354|CONN_LIFECYCLE: conn=125 role=brain stream-subscriber stream=50 wall_ms=1784235770904 mono_ms=75138 event=stream-sub-attach stream=50 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 355|CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=49 wall_ms=1784235770908 mono_ms=75142 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 356|CONN_LIFECYCLE: conn=129 role=brain wall_ms=1784235770908 mono_ms=75142 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 357|CONN_LIFECYCLE: conn=129 role=brain wall_ms=1784235770908 mono_ms=75142 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 361|CONN_LIFECYCLE: conn=127 role=brain wall_ms=1784235770919 mono_ms=75153 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*362|CONN_LIFECYCLE: conn=127 role=brain stream-subscriber stream=52 wall_ms=1784235770919 mono_ms=75153 event=stream-sub-attach stream=52 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 363|CONN_LIFECYCLE: conn=125 role=brain stream-subscriber stream=50 wall_ms=1784235770921 mono_ms=75155 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 364|CONN_LIFECYCLE: conn=131 role=brain wall_ms=1784235770921 mono_ms=75155 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 365|CONN_LIFECYCLE: conn=131 role=brain wall_ms=1784235770921 mono_ms=75155 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 373|CONN_LIFECYCLE: conn=135 role=brain wall_ms=1784235775522 mono_ms=79756 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*374|CONN_LIFECYCLE: conn=135 role=brain stream-subscriber stream=53 wall_ms=1784235775522 mono_ms=79756 event=stream-sub-attach stream=53 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 375|CONN_LIFECYCLE: conn=135 role=brain stream-subscriber stream=53 wall_ms=1784235775524 mono_ms=79758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 376|CONN_LIFECYCLE: conn=136 role=brain wall_ms=1784235775524 mono_ms=79758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 377|CONN_LIFECYCLE: conn=136 role=brain wall_ms=1784235775524 mono_ms=79758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 383|CONN_LIFECYCLE: conn=139 role=brain wall_ms=1784235779741 mono_ms=83974 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*384|CONN_LIFECYCLE: conn=140 role=brain stream-subscriber stream=54 wall_ms=1784235779741 mono_ms=83975 event=stream-sub-attach stream=54 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 385|CONN_LIFECYCLE: conn=140 role=brain stream-subscriber stream=54 wall_ms=1784235779741 mono_ms=83975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 386|CONN_LIFECYCLE: conn=141 role=brain wall_ms=1784235779742 mono_ms=83975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*387|CONN_LIFECYCLE: conn=141 role=brain stream-subscriber stream=55 wall_ms=1784235779742 mono_ms=83975 event=stream-sub-attach stream=55 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 388|CONN_LIFECYCLE: conn=140 role=brain stream-subscriber stream=54 wall_ms=1784235779748 mono_ms=83982 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 389|CONN_LIFECYCLE: conn=142 role=brain wall_ms=1784235779748 mono_ms=83982 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 390|CONN_LIFECYCLE: conn=142 role=brain wall_ms=1784235779748 mono_ms=83982 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 404|CONN_LIFECYCLE: conn=148 role=brain wall_ms=1784235785968 mono_ms=90202 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*405|CONN_LIFECYCLE: conn=148 role=brain stream-subscriber stream=56 wall_ms=1784235785968 mono_ms=90202 event=stream-sub-attach stream=56 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 406|CONN_LIFECYCLE: conn=148 role=brain stream-subscriber stream=56 wall_ms=1784235785973 mono_ms=90206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 407|CONN_LIFECYCLE: conn=149 role=brain wall_ms=1784235785973 mono_ms=90206 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 408|CONN_LIFECYCLE: conn=149 role=brain wall_ms=1784235785973 mono_ms=90206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 409|CONN_LIFECYCLE: conn=147 role=brain wall_ms=1784235785979 mono_ms=90213 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*410|CONN_LIFECYCLE: conn=147 role=brain stream-subscriber stream=57 wall_ms=1784235785979 mono_ms=90213 event=stream-sub-attach stream=57 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 411|CONN_LIFECYCLE: conn=147 role=brain stream-subscriber stream=57 wall_ms=1784235785981 mono_ms=90214 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 412|CONN_LIFECYCLE: conn=150 role=brain wall_ms=1784235785981 mono_ms=90214 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 413|CONN_LIFECYCLE: conn=150 role=brain wall_ms=1784235785981 mono_ms=90214 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 418|CONN_LIFECYCLE: conn=153 role=brain wall_ms=1784235790488 mono_ms=94722 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*419|CONN_LIFECYCLE: conn=153 role=brain stream-subscriber stream=61 wall_ms=1784235790488 mono_ms=94722 event=stream-sub-attach stream=61 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 420|CONN_LIFECYCLE: conn=153 role=brain stream-subscriber stream=61 wall_ms=1784235790490 mono_ms=94724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 421|CONN_LIFECYCLE: conn=154 role=brain wall_ms=1784235790490 mono_ms=94724 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 422|CONN_LIFECYCLE: conn=154 role=brain wall_ms=1784235790490 mono_ms=94724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 424|CONN_LIFECYCLE: conn=155 role=brain wall_ms=1784235791491 mono_ms=95725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*425|CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=62 wall_ms=1784235791491 mono_ms=95725 event=stream-sub-attach stream=62 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 426|CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=62 wall_ms=1784235791491 mono_ms=95725 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 427|CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=62 wall_ms=1784235791492 mono_ms=95725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 428|CONN_LIFECYCLE: conn=157 role=brain wall_ms=1784235791492 mono_ms=95725 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 431|CONN_LIFECYCLE: conn=158 role=brain wall_ms=1784235791592 mono_ms=95825 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*432|CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=63 wall_ms=1784235791592 mono_ms=95825 event=stream-sub-attach stream=63 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 433|CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=63 wall_ms=1784235791592 mono_ms=95825 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 434|CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=63 wall_ms=1784235791592 mono_ms=95826 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 435|CONN_LIFECYCLE: conn=160 role=brain wall_ms=1784235791592 mono_ms=95826 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 438|CONN_LIFECYCLE: conn=161 role=brain wall_ms=1784235792797 mono_ms=97031 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*439|CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=64 wall_ms=1784235792798 mono_ms=97031 event=stream-sub-attach stream=64 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 440|CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=64 wall_ms=1784235792798 mono_ms=97031 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 441|CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=64 wall_ms=1784235792798 mono_ms=97031 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 442|CONN_LIFECYCLE: conn=163 role=brain wall_ms=1784235792798 mono_ms=97032 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 445|CONN_LIFECYCLE: conn=164 role=brain wall_ms=1784235793099 mono_ms=97332 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*446|CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=65 wall_ms=1784235793099 mono_ms=97333 event=stream-sub-attach stream=65 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 447|CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=65 wall_ms=1784235793099 mono_ms=97333 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 448|CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=65 wall_ms=1784235793103 mono_ms=97337 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 449|CONN_LIFECYCLE: conn=166 role=brain wall_ms=1784235793103 mono_ms=97337 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 455|CONN_LIFECYCLE: conn=169 role=brain wall_ms=1784235794808 mono_ms=99041 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*456|CONN_LIFECYCLE: conn=169 role=brain stream-subscriber stream=66 wall_ms=1784235794808 mono_ms=99041 event=stream-sub-attach stream=66 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 457|CONN_LIFECYCLE: conn=169 role=brain stream-subscriber stream=66 wall_ms=1784235794817 mono_ms=99050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 458|CONN_LIFECYCLE: conn=170 role=brain wall_ms=1784235794817 mono_ms=99050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 459|CONN_LIFECYCLE: conn=170 role=brain wall_ms=1784235794817 mono_ms=99050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 465|CONN_LIFECYCLE: conn=172 role=brain wall_ms=1784235800029 mono_ms=104263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*466|CONN_LIFECYCLE: conn=173 role=brain stream-subscriber stream=67 wall_ms=1784235800030 mono_ms=104263 event=stream-sub-attach stream=67 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 467|CONN_LIFECYCLE: conn=173 role=brain stream-subscriber stream=67 wall_ms=1784235800030 mono_ms=104263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 468|CONN_LIFECYCLE: conn=173 role=brain stream-subscriber stream=67 wall_ms=1784235800030 mono_ms=104263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 469|CONN_LIFECYCLE: conn=174 role=brain wall_ms=1784235800030 mono_ms=104263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 478|CONN_LIFECYCLE: conn=178 role=brain wall_ms=1784235801135 mono_ms=105368 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*479|CONN_LIFECYCLE: conn=180 role=brain stream-subscriber stream=68 wall_ms=1784235801135 mono_ms=105369 event=stream-sub-attach stream=68 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*480|CONN_LIFECYCLE: conn=182 role=brain stream-subscriber stream=70 wall_ms=1784235801135 mono_ms=105369 event=stream-sub-attach stream=70 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 481|CONN_LIFECYCLE: conn=182 role=brain stream-subscriber stream=70 wall_ms=1784235801135 mono_ms=105369 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 482|CONN_LIFECYCLE: conn=180 role=brain stream-subscriber stream=68 wall_ms=1784235801135 mono_ms=105369 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 483|CONN_LIFECYCLE: conn=179 role=brain wall_ms=1784235801136 mono_ms=105370 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 484|CONN_LIFECYCLE: conn=181 role=brain wall_ms=1784235801136 mono_ms=105370 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*485|CONN_LIFECYCLE: conn=179 role=brain stream-subscriber stream=71 wall_ms=1784235801136 mono_ms=105370 event=stream-sub-attach stream=71 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*486|CONN_LIFECYCLE: conn=181 role=brain stream-subscriber stream=69 wall_ms=1784235801136 mono_ms=105370 event=stream-sub-attach stream=69 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 487|CONN_LIFECYCLE: conn=179 role=brain stream-subscriber stream=71 wall_ms=1784235801138 mono_ms=105372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 488|CONN_LIFECYCLE: conn=183 role=brain wall_ms=1784235801139 mono_ms=105372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 489|CONN_LIFECYCLE: conn=183 role=brain wall_ms=1784235801139 mono_ms=105372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 497|CONN_LIFECYCLE: conn=187 role=brain wall_ms=1784235805555 mono_ms=109789 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*498|CONN_LIFECYCLE: conn=187 role=brain stream-subscriber stream=72 wall_ms=1784235805555 mono_ms=109789 event=stream-sub-attach stream=72 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 499|CONN_LIFECYCLE: conn=187 role=brain stream-subscriber stream=72 wall_ms=1784235805557 mono_ms=109791 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 500|CONN_LIFECYCLE: conn=188 role=brain wall_ms=1784235805557 mono_ms=109791 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 501|CONN_LIFECYCLE: conn=188 role=brain wall_ms=1784235805558 mono_ms=109791 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 507|CONN_LIFECYCLE: conn=191 role=brain wall_ms=1784235809976 mono_ms=114210 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*508|CONN_LIFECYCLE: conn=192 role=brain stream-subscriber stream=73 wall_ms=1784235809976 mono_ms=114210 event=stream-sub-attach stream=73 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 509|CONN_LIFECYCLE: conn=192 role=brain stream-subscriber stream=73 wall_ms=1784235809976 mono_ms=114210 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 510|CONN_LIFECYCLE: conn=193 role=brain wall_ms=1784235809978 mono_ms=114211 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*511|CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=74 wall_ms=1784235809978 mono_ms=114211 event=stream-sub-attach stream=74 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 512|CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=74 wall_ms=1784235809987 mono_ms=114221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 513|CONN_LIFECYCLE: conn=194 role=brain wall_ms=1784235809987 mono_ms=114221 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 514|CONN_LIFECYCLE: conn=194 role=brain wall_ms=1784235809987 mono_ms=114221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 534|CONN_LIFECYCLE: conn=202 role=brain wall_ms=1784235816197 mono_ms=120431 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*535|CONN_LIFECYCLE: conn=202 role=brain stream-subscriber stream=79 wall_ms=1784235816197 mono_ms=120431 event=stream-sub-attach stream=79 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 536|CONN_LIFECYCLE: conn=202 role=brain stream-subscriber stream=79 wall_ms=1784235816199 mono_ms=120433 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 537|CONN_LIFECYCLE: conn=203 role=brain wall_ms=1784235816199 mono_ms=120433 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 538|CONN_LIFECYCLE: conn=203 role=brain wall_ms=1784235816199 mono_ms=120433 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 539|CONN_LIFECYCLE: conn=201 role=brain wall_ms=1784235816206 mono_ms=120439 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*540|CONN_LIFECYCLE: conn=201 role=brain stream-subscriber stream=78 wall_ms=1784235816206 mono_ms=120439 event=stream-sub-attach stream=78 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 541|CONN_LIFECYCLE: conn=201 role=brain stream-subscriber stream=78 wall_ms=1784235816210 mono_ms=120443 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 542|CONN_LIFECYCLE: conn=204 role=brain wall_ms=1784235816210 mono_ms=120444 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 543|CONN_LIFECYCLE: conn=204 role=brain wall_ms=1784235816210 mono_ms=120444 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 548|CONN_LIFECYCLE: conn=207 role=brain wall_ms=1784235820618 mono_ms=124851 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*549|CONN_LIFECYCLE: conn=207 role=brain stream-subscriber stream=80 wall_ms=1784235820618 mono_ms=124851 event=stream-sub-attach stream=80 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 550|CONN_LIFECYCLE: conn=207 role=brain stream-subscriber stream=80 wall_ms=1784235820620 mono_ms=124853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 551|CONN_LIFECYCLE: conn=208 role=brain wall_ms=1784235820620 mono_ms=124853 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 552|CONN_LIFECYCLE: conn=208 role=brain wall_ms=1784235820620 mono_ms=124853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 555|CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*556|CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823428 mono_ms=127662 event=stream-sub-attach stream=81 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 557|CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823428 mono_ms=127662 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 558|CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823433 mono_ms=127666 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 559|CONN_LIFECYCLE: conn=211 role=brain wall_ms=1784235823433 mono_ms=127666 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 562|CONN_LIFECYCLE: conn=212 role=brain wall_ms=1784235824762 mono_ms=128996 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*563|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 wall_ms=1784235824840 mono_ms=129074 event=stream-sub-attach stream=83 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 564|CONN_LIFECYCLE: conn=213 role=brain wall_ms=1784235824934 mono_ms=129167 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 565|CONN_LIFECYCLE: conn=213 role=brain wall_ms=1784235824934 mono_ms=129167 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 566|CONN_LIFECYCLE: conn=214 role=brain wall_ms=1784235824935 mono_ms=129169 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*567|CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=84 wall_ms=1784235824935 mono_ms=129169 event=stream-sub-attach stream=84 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 568|CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=84 wall_ms=1784235824944 mono_ms=129178 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n\n[Showing lines 1-353 of 971 (49.9KB limit). Use :354 to continue]"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":200,"fileCount":1,"files":["C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"],"fileMatches":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","count":200}],"truncated":true,"perFileLimitReached":200,"displayContent":"   23│CONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  *24│CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235696209 mono_ms=443 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n   25│=== spt broker stderr — generation 0 — pid 82868 ===\n   26│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n   27│BROKER_BIND_FAIL: Access is denied. (os error 5)\n     │...\n   32│PUMP_IPC_READER: spawned\n  *33│CONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235696416 mono_ms=650 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\n   34│CONN_LIFECYCLE: conn=8 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   35│CONN_LIFECYCLE: conn=9 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   36│CONN_LIFECYCLE: conn=10 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n   50│CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=transport-close poisoned=true timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  *51│CONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698228 mono_ms=2462 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n   52│CONTROL_REAP_NO_SESSION:doyle: cleared stale controlled/driven_by (no broker session)\n   53│CONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698260 mono_ms=2493 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   54│ENDPOINT_AUTOSTART:lia adapter=claude-spt session=eedd44363fd38392 pid=50824 (startup default)\n     │...\n   62│CONTROL_REAP_NO_SESSION:perri: cleared stale controlled/driven_by (no broker session)\n  *63│CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698348 mono_ms=2582 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n   64│CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698363 mono_ms=2597 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   65│CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698366 mono_ms=2600 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n   66│WAKE_RESUME:deployah: resuming session 89cc9038-e5d9-429e-b4a9-40fba8af71ee under claude-spt:ccs (pid 40376) — online at bind\n     │...\n   68│CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  *69│CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698404 mono_ms=2638 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n   70│CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698419 mono_ms=2653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   71│CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698422 mono_ms=2656 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n   72│WAKE_RESUME:doyle: resuming session a2fdb848-6643-4e10-b221-6baee7e91b7b under claude-spt:ccs (pid 60892) — online at bind\n     │...\n   78│WAKE_RESUME:lia: resuming session 9e0df17e-f217-4446-97a4-f528a56024ba under claude-spt (pid 50824) — online at bind\n  *79│CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698567 mono_ms=2801 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n   80│CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698582 mono_ms=2816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   81│CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698586 mono_ms=2819 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n   82│WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 58672) — online at bind\n     │...\n   88│CONN_LIFECYCLE: conn=24 role=brain wall_ms=1784235698717 mono_ms=2950 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  *89│CONN_LIFECYCLE: conn=23 role=brain stream-subscriber stream=2 wall_ms=1784235698735 mono_ms=2968 event=stream-sub-attach stream=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  *90│CONN_LIFECYCLE: conn=24 role=brain stream-subscriber stream=4 wall_ms=1784235698738 mono_ms=2972 event=stream-sub-attach stream=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  *91│CONN_LIFECYCLE: conn=22 role=brain stream-subscriber stream=6 wall_ms=1784235698741 mono_ms=2975 event=stream-sub-attach stream=6 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  *92│CONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=8 wall_ms=1784235698744 mono_ms=2978 event=stream-sub-attach stream=8 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n   93│CONN_LIFECYCLE: conn=25 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   94│CONN_LIFECYCLE: conn=26 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   95│CONN_LIFECYCLE: conn=27 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  102│CONN_LIFECYCLE: conn=30 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *103│CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=7 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *104│CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  105│CONN_LIFECYCLE: conn=32 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  106│CONN_LIFECYCLE: conn=31 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *107│CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *108│CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *109│CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *110│CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *111│CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *112│CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  113│CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698848 mono_ms=3082 event=controller-replaced session=5 new_conn=29 [REQ-CONN-POISON-ATTRIBUTION]\n *114│CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  115│CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  116│CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698862 mono_ms=3096 event=controller-replaced session=2 new_conn=30 [REQ-CONN-POISON-ATTRIBUTION]\n *117│CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  118│CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  119│CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=3 new_conn=32 [REQ-CONN-POISON-ATTRIBUTION]\n *120│CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  121│CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  122│CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=4 new_conn=31 [REQ-CONN-POISON-ATTRIBUTION]\n *123│CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  124│CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  125│CONN_LIFECYCLE: conn=37 role=brain wall_ms=1784235703719 mono_ms=7953 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  126│CONN_LIFECYCLE: conn=37 role=brain wall_ms=1784235703719 mono_ms=7953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  137│CONN_LIFECYCLE: conn=6 role=brain wall_ms=1784235719089 mono_ms=23323 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *138│CONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235719115 mono_ms=23349 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  139│CONN_LIFECYCLE: conn=42 role=brain wall_ms=1784235719515 mono_ms=23749 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  140│CONN_LIFECYCLE: conn=43 role=brain wall_ms=1784235719515 mono_ms=23749 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  141│CONN_LIFECYCLE: conn=42 role=brain wall_ms=1784235719516 mono_ms=23749 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  142│CONN_LIFECYCLE: conn=43 role=brain wall_ms=1784235719516 mono_ms=23749 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *143│CONN_LIFECYCLE: conn=44 role=brain stream-subscriber stream=11 wall_ms=1784235719516 mono_ms=23750 event=stream-sub-attach stream=11 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  144│CONN_LIFECYCLE: conn=44 role=brain stream-subscriber stream=11 wall_ms=1784235719516 mono_ms=23750 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  145│CONN_LIFECYCLE: conn=45 role=brain wall_ms=1784235719517 mono_ms=23751 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *146│CONN_LIFECYCLE: conn=45 role=brain stream-subscriber stream=12 wall_ms=1784235719517 mono_ms=23751 event=stream-sub-attach stream=12 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  147│CONN_LIFECYCLE: conn=44 role=brain stream-subscriber stream=11 wall_ms=1784235720289 mono_ms=24523 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  148│CONN_LIFECYCLE: conn=46 role=brain wall_ms=1784235720289 mono_ms=24523 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  149│CONN_LIFECYCLE: conn=46 role=brain wall_ms=1784235720289 mono_ms=24523 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  152│CONN_LIFECYCLE: conn=47 role=brain wall_ms=1784235720291 mono_ms=24525 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *153│CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 wall_ms=1784235720389 mono_ms=24623 event=stream-sub-attach stream=13 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  154│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n  155│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n  156│PAIR_MEET_UP:BIGNET step=59474524 id=9ae4531e8fa8f24c6f2b14198d659bbce40525de8d0654e24fc04c3f85c7e271 addr=EndpointAddr { id: PublicKey(9ae4531e8fa8f24c6f2b14198d659bbce40525de8d0654e24fc04c3f85c7e271), addrs: {Ip(100.68.35.65:52538), Ip(192.168.1.81:52538)} }\n  157│PAIR_MEET_UP:SPT_DEV step=59474524 id=1c4e8c1f6ffa63f6e83891c2c71b7cf504b78d4438d0fb4a4538a88dda04018b addr=EndpointAddr { id: PublicKey(1c4e8c1f6ffa63f6e83891c2c71b7cf504b78d4438d0fb4a4538a88dda04018b), addrs: {Ip(100.68.35.65:52544), Ip(192.168.1.81:52544)} }\n *158│CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 wall_ms=1784235721418 mono_ms=25652 event=stream-sub-attach stream=14 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *159│CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 wall_ms=1784235721575 mono_ms=25808 event=stream-sub-attach stream=17 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *160│CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 wall_ms=1784235721949 mono_ms=26183 event=stream-sub-attach stream=20 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  161│CONN_LIFECYCLE: conn=48 role=brain wall_ms=1784235723941 mono_ms=28174 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  162│CONN_LIFECYCLE: conn=48 role=brain wall_ms=1784235723941 mono_ms=28174 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  163│CONN_LIFECYCLE: conn=49 role=brain wall_ms=1784235728987 mono_ms=33221 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  167│CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *168│CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729828 mono_ms=34062 event=stream-sub-attach stream=21 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  169│CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729828 mono_ms=34062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  170│CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729829 mono_ms=34062 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  171│CONN_LIFECYCLE: conn=52 role=brain wall_ms=1784235729829 mono_ms=34062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  178│CONN_LIFECYCLE: conn=54 role=brain wall_ms=1784235730129 mono_ms=34362 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *179│CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=22 wall_ms=1784235730129 mono_ms=34363 event=stream-sub-attach stream=22 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  180│CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=22 wall_ms=1784235730129 mono_ms=34363 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  181│CONN_LIFECYCLE: conn=56 role=brain wall_ms=1784235730130 mono_ms=34363 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *182│CONN_LIFECYCLE: conn=56 role=brain stream-subscriber stream=23 wall_ms=1784235730130 mono_ms=34363 event=stream-sub-attach stream=23 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  183│CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=22 wall_ms=1784235730134 mono_ms=34368 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  184│CONN_LIFECYCLE: conn=57 role=brain wall_ms=1784235730134 mono_ms=34368 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  185│CONN_LIFECYCLE: conn=57 role=brain wall_ms=1784235730134 mono_ms=34368 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  190│CONN_LIFECYCLE: conn=59 role=brain wall_ms=1784235730531 mono_ms=34764 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *191│CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=24 wall_ms=1784235730531 mono_ms=34765 event=stream-sub-attach stream=24 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  192│CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=24 wall_ms=1784235730531 mono_ms=34765 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  193│CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=24 wall_ms=1784235730531 mono_ms=34765 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  194│CONN_LIFECYCLE: conn=61 role=brain wall_ms=1784235730531 mono_ms=34765 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  197│CONN_LIFECYCLE: conn=62 role=brain wall_ms=1784235730631 mono_ms=34865 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *198│CONN_LIFECYCLE: conn=63 role=brain stream-subscriber stream=25 wall_ms=1784235730631 mono_ms=34865 event=stream-sub-attach stream=25 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  199│CONN_LIFECYCLE: conn=63 role=brain stream-subscriber stream=25 wall_ms=1784235730632 mono_ms=34865 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  200│CONN_LIFECYCLE: conn=63 role=brain stream-subscriber stream=25 wall_ms=1784235730632 mono_ms=34865 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  201│CONN_LIFECYCLE: conn=64 role=brain wall_ms=1784235730632 mono_ms=34866 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  210│CONN_LIFECYCLE: conn=68 role=brain wall_ms=1784235730732 mono_ms=34965 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *211│CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=28 wall_ms=1784235730732 mono_ms=34966 event=stream-sub-attach stream=28 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *212│CONN_LIFECYCLE: conn=71 role=brain stream-subscriber stream=26 wall_ms=1784235730732 mono_ms=34966 event=stream-sub-attach stream=26 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  213│CONN_LIFECYCLE: conn=71 role=brain stream-subscriber stream=26 wall_ms=1784235730732 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  214│CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=28 wall_ms=1784235730732 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  215│CONN_LIFECYCLE: conn=72 role=brain wall_ms=1784235730733 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  216│CONN_LIFECYCLE: conn=69 role=brain wall_ms=1784235730733 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *217│CONN_LIFECYCLE: conn=72 role=brain stream-subscriber stream=29 wall_ms=1784235730733 mono_ms=34967 event=stream-sub-attach stream=29 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *218│CONN_LIFECYCLE: conn=69 role=brain stream-subscriber stream=27 wall_ms=1784235730733 mono_ms=34967 event=stream-sub-attach stream=27 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  219│CONN_LIFECYCLE: conn=71 role=brain stream-subscriber stream=26 wall_ms=1784235730737 mono_ms=34971 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  220│CONN_LIFECYCLE: conn=73 role=brain wall_ms=1784235730737 mono_ms=34971 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  221│CONN_LIFECYCLE: conn=73 role=brain wall_ms=1784235730737 mono_ms=34971 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  232│CONN_LIFECYCLE: conn=77 role=brain wall_ms=1784235731535 mono_ms=35769 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *233│CONN_LIFECYCLE: conn=78 role=brain stream-subscriber stream=30 wall_ms=1784235731536 mono_ms=35769 event=stream-sub-attach stream=30 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  234│CONN_LIFECYCLE: conn=78 role=brain stream-subscriber stream=30 wall_ms=1784235731536 mono_ms=35769 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  235│CONN_LIFECYCLE: conn=79 role=brain wall_ms=1784235731636 mono_ms=35870 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  236│CONN_LIFECYCLE: conn=79 role=brain wall_ms=1784235731636 mono_ms=35870 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *237│CONN_LIFECYCLE: conn=80 role=brain stream-subscriber stream=31 wall_ms=1784235731637 mono_ms=35870 event=stream-sub-attach stream=31 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  238│CONN_LIFECYCLE: conn=80 role=brain stream-subscriber stream=31 wall_ms=1784235731637 mono_ms=35870 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  239│CONN_LIFECYCLE: conn=80 role=brain stream-subscriber stream=31 wall_ms=1784235731637 mono_ms=35871 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  240│CONN_LIFECYCLE: conn=81 role=brain wall_ms=1784235731637 mono_ms=35871 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  246│CONN_LIFECYCLE: conn=84 role=brain wall_ms=1784235734549 mono_ms=38783 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *247│CONN_LIFECYCLE: conn=84 role=brain stream-subscriber stream=32 wall_ms=1784235734549 mono_ms=38783 event=stream-sub-attach stream=32 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  248│CONN_LIFECYCLE: conn=84 role=brain stream-subscriber stream=32 wall_ms=1784235734558 mono_ms=38792 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  249│CONN_LIFECYCLE: conn=85 role=brain wall_ms=1784235734558 mono_ms=38792 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  250│CONN_LIFECYCLE: conn=85 role=brain wall_ms=1784235734558 mono_ms=38792 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  254│CONN_LIFECYCLE: conn=87 role=brain wall_ms=1784235739768 mono_ms=44002 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *255│CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=33 wall_ms=1784235739768 mono_ms=44002 event=stream-sub-attach stream=33 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  256│CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=33 wall_ms=1784235739768 mono_ms=44002 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  257│CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=33 wall_ms=1784235739769 mono_ms=44002 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  258│CONN_LIFECYCLE: conn=89 role=brain wall_ms=1784235739769 mono_ms=44002 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  264│CONN_LIFECYCLE: conn=92 role=brain wall_ms=1784235745292 mono_ms=49526 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *265│CONN_LIFECYCLE: conn=92 role=brain stream-subscriber stream=34 wall_ms=1784235745292 mono_ms=49526 event=stream-sub-attach stream=34 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  266│CONN_LIFECYCLE: conn=92 role=brain stream-subscriber stream=34 wall_ms=1784235745294 mono_ms=49528 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  267│CONN_LIFECYCLE: conn=93 role=brain wall_ms=1784235745294 mono_ms=49528 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  268│CONN_LIFECYCLE: conn=93 role=brain wall_ms=1784235745294 mono_ms=49528 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  271│CONN_LIFECYCLE: conn=94 role=brain wall_ms=1784235747691 mono_ms=51925 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *272│CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 wall_ms=1784235747807 mono_ms=52041 event=stream-sub-attach stream=38 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  273│CONN_LIFECYCLE: conn=95 role=brain wall_ms=1784235749167 mono_ms=53400 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  274│CONN_LIFECYCLE: conn=95 role=brain wall_ms=1784235749167 mono_ms=53401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  275│CONN_LIFECYCLE: conn=96 role=brain wall_ms=1784235749710 mono_ms=53944 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  278│CONN_LIFECYCLE: conn=97 role=brain wall_ms=1784235749710 mono_ms=53944 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *279│CONN_LIFECYCLE: conn=98 role=brain stream-subscriber stream=39 wall_ms=1784235749710 mono_ms=53944 event=stream-sub-attach stream=39 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  280│CONN_LIFECYCLE: conn=98 role=brain stream-subscriber stream=39 wall_ms=1784235749710 mono_ms=53944 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  281│CONN_LIFECYCLE: conn=99 role=brain wall_ms=1784235749712 mono_ms=53945 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *282│CONN_LIFECYCLE: conn=99 role=brain stream-subscriber stream=40 wall_ms=1784235749712 mono_ms=53945 event=stream-sub-attach stream=40 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  283│CONN_LIFECYCLE: conn=98 role=brain stream-subscriber stream=39 wall_ms=1784235749720 mono_ms=53953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  284│CONN_LIFECYCLE: conn=100 role=brain wall_ms=1784235749720 mono_ms=53953 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  285│CONN_LIFECYCLE: conn=100 role=brain wall_ms=1784235749720 mono_ms=53953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  299│CONN_LIFECYCLE: conn=106 role=brain wall_ms=1784235755838 mono_ms=60072 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *300│CONN_LIFECYCLE: conn=106 role=brain stream-subscriber stream=42 wall_ms=1784235755838 mono_ms=60072 event=stream-sub-attach stream=42 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  301│CONN_LIFECYCLE: conn=106 role=brain stream-subscriber stream=42 wall_ms=1784235755840 mono_ms=60074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  302│CONN_LIFECYCLE: conn=107 role=brain wall_ms=1784235755840 mono_ms=60074 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  303│CONN_LIFECYCLE: conn=107 role=brain wall_ms=1784235755840 mono_ms=60074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  304│CONN_LIFECYCLE: conn=105 role=brain wall_ms=1784235755851 mono_ms=60085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *305│CONN_LIFECYCLE: conn=105 role=brain stream-subscriber stream=41 wall_ms=1784235755851 mono_ms=60085 event=stream-sub-attach stream=41 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  306│CONN_LIFECYCLE: conn=105 role=brain stream-subscriber stream=41 wall_ms=1784235755855 mono_ms=60089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  307│CONN_LIFECYCLE: conn=108 role=brain wall_ms=1784235755855 mono_ms=60089 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  308│CONN_LIFECYCLE: conn=108 role=brain wall_ms=1784235755855 mono_ms=60089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  316│CONN_LIFECYCLE: conn=111 role=brain wall_ms=1784235760357 mono_ms=64590 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *317│CONN_LIFECYCLE: conn=111 role=brain stream-subscriber stream=46 wall_ms=1784235760357 mono_ms=64591 event=stream-sub-attach stream=46 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  318│CONN_LIFECYCLE: conn=111 role=brain stream-subscriber stream=46 wall_ms=1784235760359 mono_ms=64592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  319│CONN_LIFECYCLE: conn=112 role=brain wall_ms=1784235760359 mono_ms=64593 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  320│CONN_LIFECYCLE: conn=112 role=brain wall_ms=1784235760359 mono_ms=64593 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  322│CONN_LIFECYCLE: conn=113 role=brain wall_ms=1784235762063 mono_ms=66297 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *323│CONN_LIFECYCLE: conn=114 role=brain stream-subscriber stream=47 wall_ms=1784235762063 mono_ms=66297 event=stream-sub-attach stream=47 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  324│CONN_LIFECYCLE: conn=114 role=brain stream-subscriber stream=47 wall_ms=1784235762063 mono_ms=66297 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  325│CONN_LIFECYCLE: conn=114 role=brain stream-subscriber stream=47 wall_ms=1784235762068 mono_ms=66302 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  326│CONN_LIFECYCLE: conn=115 role=brain wall_ms=1784235762068 mono_ms=66302 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  332│CONN_LIFECYCLE: conn=118 role=brain wall_ms=1784235764677 mono_ms=68910 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *333│CONN_LIFECYCLE: conn=118 role=brain stream-subscriber stream=48 wall_ms=1784235764677 mono_ms=68910 event=stream-sub-attach stream=48 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  334│CONN_LIFECYCLE: conn=118 role=brain stream-subscriber stream=48 wall_ms=1784235764686 mono_ms=68920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  335│CONN_LIFECYCLE: conn=119 role=brain wall_ms=1784235764686 mono_ms=68920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  336│CONN_LIFECYCLE: conn=119 role=brain wall_ms=1784235764686 mono_ms=68920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  348│CONN_LIFECYCLE: conn=124 role=brain wall_ms=1784235770903 mono_ms=75136 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *349│CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=49 wall_ms=1784235770903 mono_ms=75136 event=stream-sub-attach stream=49 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  350│CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=49 wall_ms=1784235770903 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *351│CONN_LIFECYCLE: conn=128 role=brain stream-subscriber stream=51 wall_ms=1784235770903 mono_ms=75136 event=stream-sub-attach stream=51 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  352│CONN_LIFECYCLE: conn=128 role=brain stream-subscriber stream=51 wall_ms=1784235770903 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  353│CONN_LIFECYCLE: conn=125 role=brain wall_ms=1784235770904 mono_ms=75138 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *354│CONN_LIFECYCLE: conn=125 role=brain stream-subscriber stream=50 wall_ms=1784235770904 mono_ms=75138 event=stream-sub-attach stream=50 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  355│CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=49 wall_ms=1784235770908 mono_ms=75142 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  356│CONN_LIFECYCLE: conn=129 role=brain wall_ms=1784235770908 mono_ms=75142 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  357│CONN_LIFECYCLE: conn=129 role=brain wall_ms=1784235770908 mono_ms=75142 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  361│CONN_LIFECYCLE: conn=127 role=brain wall_ms=1784235770919 mono_ms=75153 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *362│CONN_LIFECYCLE: conn=127 role=brain stream-subscriber stream=52 wall_ms=1784235770919 mono_ms=75153 event=stream-sub-attach stream=52 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  363│CONN_LIFECYCLE: conn=125 role=brain stream-subscriber stream=50 wall_ms=1784235770921 mono_ms=75155 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  364│CONN_LIFECYCLE: conn=131 role=brain wall_ms=1784235770921 mono_ms=75155 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  365│CONN_LIFECYCLE: conn=131 role=brain wall_ms=1784235770921 mono_ms=75155 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  373│CONN_LIFECYCLE: conn=135 role=brain wall_ms=1784235775522 mono_ms=79756 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *374│CONN_LIFECYCLE: conn=135 role=brain stream-subscriber stream=53 wall_ms=1784235775522 mono_ms=79756 event=stream-sub-attach stream=53 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  375│CONN_LIFECYCLE: conn=135 role=brain stream-subscriber stream=53 wall_ms=1784235775524 mono_ms=79758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  376│CONN_LIFECYCLE: conn=136 role=brain wall_ms=1784235775524 mono_ms=79758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  377│CONN_LIFECYCLE: conn=136 role=brain wall_ms=1784235775524 mono_ms=79758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  383│CONN_LIFECYCLE: conn=139 role=brain wall_ms=1784235779741 mono_ms=83974 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *384│CONN_LIFECYCLE: conn=140 role=brain stream-subscriber stream=54 wall_ms=1784235779741 mono_ms=83975 event=stream-sub-attach stream=54 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  385│CONN_LIFECYCLE: conn=140 role=brain stream-subscriber stream=54 wall_ms=1784235779741 mono_ms=83975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  386│CONN_LIFECYCLE: conn=141 role=brain wall_ms=1784235779742 mono_ms=83975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *387│CONN_LIFECYCLE: conn=141 role=brain stream-subscriber stream=55 wall_ms=1784235779742 mono_ms=83975 event=stream-sub-attach stream=55 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  388│CONN_LIFECYCLE: conn=140 role=brain stream-subscriber stream=54 wall_ms=1784235779748 mono_ms=83982 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  389│CONN_LIFECYCLE: conn=142 role=brain wall_ms=1784235779748 mono_ms=83982 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  390│CONN_LIFECYCLE: conn=142 role=brain wall_ms=1784235779748 mono_ms=83982 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  404│CONN_LIFECYCLE: conn=148 role=brain wall_ms=1784235785968 mono_ms=90202 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *405│CONN_LIFECYCLE: conn=148 role=brain stream-subscriber stream=56 wall_ms=1784235785968 mono_ms=90202 event=stream-sub-attach stream=56 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  406│CONN_LIFECYCLE: conn=148 role=brain stream-subscriber stream=56 wall_ms=1784235785973 mono_ms=90206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  407│CONN_LIFECYCLE: conn=149 role=brain wall_ms=1784235785973 mono_ms=90206 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  408│CONN_LIFECYCLE: conn=149 role=brain wall_ms=1784235785973 mono_ms=90206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  409│CONN_LIFECYCLE: conn=147 role=brain wall_ms=1784235785979 mono_ms=90213 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *410│CONN_LIFECYCLE: conn=147 role=brain stream-subscriber stream=57 wall_ms=1784235785979 mono_ms=90213 event=stream-sub-attach stream=57 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  411│CONN_LIFECYCLE: conn=147 role=brain stream-subscriber stream=57 wall_ms=1784235785981 mono_ms=90214 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  412│CONN_LIFECYCLE: conn=150 role=brain wall_ms=1784235785981 mono_ms=90214 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  413│CONN_LIFECYCLE: conn=150 role=brain wall_ms=1784235785981 mono_ms=90214 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  418│CONN_LIFECYCLE: conn=153 role=brain wall_ms=1784235790488 mono_ms=94722 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *419│CONN_LIFECYCLE: conn=153 role=brain stream-subscriber stream=61 wall_ms=1784235790488 mono_ms=94722 event=stream-sub-attach stream=61 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  420│CONN_LIFECYCLE: conn=153 role=brain stream-subscriber stream=61 wall_ms=1784235790490 mono_ms=94724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  421│CONN_LIFECYCLE: conn=154 role=brain wall_ms=1784235790490 mono_ms=94724 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  422│CONN_LIFECYCLE: conn=154 role=brain wall_ms=1784235790490 mono_ms=94724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  424│CONN_LIFECYCLE: conn=155 role=brain wall_ms=1784235791491 mono_ms=95725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *425│CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=62 wall_ms=1784235791491 mono_ms=95725 event=stream-sub-attach stream=62 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  426│CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=62 wall_ms=1784235791491 mono_ms=95725 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  427│CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=62 wall_ms=1784235791492 mono_ms=95725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  428│CONN_LIFECYCLE: conn=157 role=brain wall_ms=1784235791492 mono_ms=95725 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  431│CONN_LIFECYCLE: conn=158 role=brain wall_ms=1784235791592 mono_ms=95825 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *432│CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=63 wall_ms=1784235791592 mono_ms=95825 event=stream-sub-attach stream=63 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  433│CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=63 wall_ms=1784235791592 mono_ms=95825 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  434│CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=63 wall_ms=1784235791592 mono_ms=95826 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  435│CONN_LIFECYCLE: conn=160 role=brain wall_ms=1784235791592 mono_ms=95826 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  438│CONN_LIFECYCLE: conn=161 role=brain wall_ms=1784235792797 mono_ms=97031 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *439│CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=64 wall_ms=1784235792798 mono_ms=97031 event=stream-sub-attach stream=64 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  440│CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=64 wall_ms=1784235792798 mono_ms=97031 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  441│CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=64 wall_ms=1784235792798 mono_ms=97031 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  442│CONN_LIFECYCLE: conn=163 role=brain wall_ms=1784235792798 mono_ms=97032 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  445│CONN_LIFECYCLE: conn=164 role=brain wall_ms=1784235793099 mono_ms=97332 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *446│CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=65 wall_ms=1784235793099 mono_ms=97333 event=stream-sub-attach stream=65 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  447│CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=65 wall_ms=1784235793099 mono_ms=97333 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  448│CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=65 wall_ms=1784235793103 mono_ms=97337 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  449│CONN_LIFECYCLE: conn=166 role=brain wall_ms=1784235793103 mono_ms=97337 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  455│CONN_LIFECYCLE: conn=169 role=brain wall_ms=1784235794808 mono_ms=99041 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *456│CONN_LIFECYCLE: conn=169 role=brain stream-subscriber stream=66 wall_ms=1784235794808 mono_ms=99041 event=stream-sub-attach stream=66 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  457│CONN_LIFECYCLE: conn=169 role=brain stream-subscriber stream=66 wall_ms=1784235794817 mono_ms=99050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  458│CONN_LIFECYCLE: conn=170 role=brain wall_ms=1784235794817 mono_ms=99050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  459│CONN_LIFECYCLE: conn=170 role=brain wall_ms=1784235794817 mono_ms=99050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  465│CONN_LIFECYCLE: conn=172 role=brain wall_ms=1784235800029 mono_ms=104263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *466│CONN_LIFECYCLE: conn=173 role=brain stream-subscriber stream=67 wall_ms=1784235800030 mono_ms=104263 event=stream-sub-attach stream=67 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  467│CONN_LIFECYCLE: conn=173 role=brain stream-subscriber stream=67 wall_ms=1784235800030 mono_ms=104263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  468│CONN_LIFECYCLE: conn=173 role=brain stream-subscriber stream=67 wall_ms=1784235800030 mono_ms=104263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  469│CONN_LIFECYCLE: conn=174 role=brain wall_ms=1784235800030 mono_ms=104263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  478│CONN_LIFECYCLE: conn=178 role=brain wall_ms=1784235801135 mono_ms=105368 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *479│CONN_LIFECYCLE: conn=180 role=brain stream-subscriber stream=68 wall_ms=1784235801135 mono_ms=105369 event=stream-sub-attach stream=68 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *480│CONN_LIFECYCLE: conn=182 role=brain stream-subscriber stream=70 wall_ms=1784235801135 mono_ms=105369 event=stream-sub-attach stream=70 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  481│CONN_LIFECYCLE: conn=182 role=brain stream-subscriber stream=70 wall_ms=1784235801135 mono_ms=105369 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  482│CONN_LIFECYCLE: conn=180 role=brain stream-subscriber stream=68 wall_ms=1784235801135 mono_ms=105369 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  483│CONN_LIFECYCLE: conn=179 role=brain wall_ms=1784235801136 mono_ms=105370 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  484│CONN_LIFECYCLE: conn=181 role=brain wall_ms=1784235801136 mono_ms=105370 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *485│CONN_LIFECYCLE: conn=179 role=brain stream-subscriber stream=71 wall_ms=1784235801136 mono_ms=105370 event=stream-sub-attach stream=71 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *486│CONN_LIFECYCLE: conn=181 role=brain stream-subscriber stream=69 wall_ms=1784235801136 mono_ms=105370 event=stream-sub-attach stream=69 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  487│CONN_LIFECYCLE: conn=179 role=brain stream-subscriber stream=71 wall_ms=1784235801138 mono_ms=105372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  488│CONN_LIFECYCLE: conn=183 role=brain wall_ms=1784235801139 mono_ms=105372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  489│CONN_LIFECYCLE: conn=183 role=brain wall_ms=1784235801139 mono_ms=105372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  497│CONN_LIFECYCLE: conn=187 role=brain wall_ms=1784235805555 mono_ms=109789 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *498│CONN_LIFECYCLE: conn=187 role=brain stream-subscriber stream=72 wall_ms=1784235805555 mono_ms=109789 event=stream-sub-attach stream=72 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  499│CONN_LIFECYCLE: conn=187 role=brain stream-subscriber stream=72 wall_ms=1784235805557 mono_ms=109791 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  500│CONN_LIFECYCLE: conn=188 role=brain wall_ms=1784235805557 mono_ms=109791 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  501│CONN_LIFECYCLE: conn=188 role=brain wall_ms=1784235805558 mono_ms=109791 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  507│CONN_LIFECYCLE: conn=191 role=brain wall_ms=1784235809976 mono_ms=114210 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *508│CONN_LIFECYCLE: conn=192 role=brain stream-subscriber stream=73 wall_ms=1784235809976 mono_ms=114210 event=stream-sub-attach stream=73 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  509│CONN_LIFECYCLE: conn=192 role=brain stream-subscriber stream=73 wall_ms=1784235809976 mono_ms=114210 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  510│CONN_LIFECYCLE: conn=193 role=brain wall_ms=1784235809978 mono_ms=114211 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *511│CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=74 wall_ms=1784235809978 mono_ms=114211 event=stream-sub-attach stream=74 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  512│CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=74 wall_ms=1784235809987 mono_ms=114221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  513│CONN_LIFECYCLE: conn=194 role=brain wall_ms=1784235809987 mono_ms=114221 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  514│CONN_LIFECYCLE: conn=194 role=brain wall_ms=1784235809987 mono_ms=114221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  534│CONN_LIFECYCLE: conn=202 role=brain wall_ms=1784235816197 mono_ms=120431 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *535│CONN_LIFECYCLE: conn=202 role=brain stream-subscriber stream=79 wall_ms=1784235816197 mono_ms=120431 event=stream-sub-attach stream=79 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  536│CONN_LIFECYCLE: conn=202 role=brain stream-subscriber stream=79 wall_ms=1784235816199 mono_ms=120433 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  537│CONN_LIFECYCLE: conn=203 role=brain wall_ms=1784235816199 mono_ms=120433 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  538│CONN_LIFECYCLE: conn=203 role=brain wall_ms=1784235816199 mono_ms=120433 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  539│CONN_LIFECYCLE: conn=201 role=brain wall_ms=1784235816206 mono_ms=120439 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *540│CONN_LIFECYCLE: conn=201 role=brain stream-subscriber stream=78 wall_ms=1784235816206 mono_ms=120439 event=stream-sub-attach stream=78 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  541│CONN_LIFECYCLE: conn=201 role=brain stream-subscriber stream=78 wall_ms=1784235816210 mono_ms=120443 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  542│CONN_LIFECYCLE: conn=204 role=brain wall_ms=1784235816210 mono_ms=120444 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  543│CONN_LIFECYCLE: conn=204 role=brain wall_ms=1784235816210 mono_ms=120444 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  548│CONN_LIFECYCLE: conn=207 role=brain wall_ms=1784235820618 mono_ms=124851 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *549│CONN_LIFECYCLE: conn=207 role=brain stream-subscriber stream=80 wall_ms=1784235820618 mono_ms=124851 event=stream-sub-attach stream=80 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  550│CONN_LIFECYCLE: conn=207 role=brain stream-subscriber stream=80 wall_ms=1784235820620 mono_ms=124853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  551│CONN_LIFECYCLE: conn=208 role=brain wall_ms=1784235820620 mono_ms=124853 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  552│CONN_LIFECYCLE: conn=208 role=brain wall_ms=1784235820620 mono_ms=124853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  555│CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *556│CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823428 mono_ms=127662 event=stream-sub-attach stream=81 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  557│CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823428 mono_ms=127662 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  558│CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823433 mono_ms=127666 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  559│CONN_LIFECYCLE: conn=211 role=brain wall_ms=1784235823433 mono_ms=127666 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  562│CONN_LIFECYCLE: conn=212 role=brain wall_ms=1784235824762 mono_ms=128996 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *563│CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 wall_ms=1784235824840 mono_ms=129074 event=stream-sub-attach stream=83 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  564│CONN_LIFECYCLE: conn=213 role=brain wall_ms=1784235824934 mono_ms=129167 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  565│CONN_LIFECYCLE: conn=213 role=brain wall_ms=1784235824934 mono_ms=129167 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  566│CONN_LIFECYCLE: conn=214 role=brain wall_ms=1784235824935 mono_ms=129169 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *567│CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=84 wall_ms=1784235824935 mono_ms=129169 event=stream-sub-attach stream=84 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  568│CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=84 wall_ms=1784235824944 mono_ms=129178 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  569│CONN_LIFECYCLE: conn=215 role=brain wall_ms=1784235824944 mono_ms=129178 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  570│CONN_LIFECYCLE: conn=215 role=brain wall_ms=1784235824944 mono_ms=129178 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  580│CONN_LIFECYCLE: conn=219 role=brain wall_ms=1784235831264 mono_ms=135498 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *581│CONN_LIFECYCLE: conn=223 role=brain stream-subscriber stream=89 wall_ms=1784235831265 mono_ms=135498 event=stream-sub-attach stream=89 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *582│CONN_LIFECYCLE: conn=224 role=brain stream-subscriber stream=87 wall_ms=1784235831265 mono_ms=135498 event=stream-sub-attach stream=87 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  583│CONN_LIFECYCLE: conn=224 role=brain stream-subscriber stream=87 wall_ms=1784235831265 mono_ms=135498 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  584│CONN_LIFECYCLE: conn=223 role=brain stream-subscriber stream=89 wall_ms=1784235831265 mono_ms=135498 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  585│CONN_LIFECYCLE: conn=221 role=brain wall_ms=1784235831266 mono_ms=135499 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *586│CONN_LIFECYCLE: conn=221 role=brain stream-subscriber stream=90 wall_ms=1784235831266 mono_ms=135499 event=stream-sub-attach stream=90 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  587│CONN_LIFECYCLE: conn=224 role=brain stream-subscriber stream=87 wall_ms=1784235831269 mono_ms=135503 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  588│CONN_LIFECYCLE: conn=225 role=brain wall_ms=1784235831270 mono_ms=135503 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  589│CONN_LIFECYCLE: conn=225 role=brain wall_ms=1784235831270 mono_ms=135503 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  590│CONN_LIFECYCLE: conn=222 role=brain wall_ms=1784235831273 mono_ms=135506 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *591│CONN_LIFECYCLE: conn=222 role=brain stream-subscriber stream=88 wall_ms=1784235831273 mono_ms=135506 event=stream-sub-attach stream=88 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  592│CONN_LIFECYCLE: conn=223 role=brain stream-subscriber stream=89 wall_ms=1784235831273 mono_ms=135507 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  593│CONN_LIFECYCLE: conn=226 role=brain wall_ms=1784235831273 mono_ms=135507 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  594│CONN_LIFECYCLE: conn=226 role=brain wall_ms=1784235831273 mono_ms=135507 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  606│CONN_LIFECYCLE: conn=231 role=brain wall_ms=1784235835684 mono_ms=139918 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *607│CONN_LIFECYCLE: conn=231 role=brain stream-subscriber stream=91 wall_ms=1784235835684 mono_ms=139918 event=stream-sub-attach stream=91 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  608│CONN_LIFECYCLE: conn=231 role=brain stream-subscriber stream=91 wall_ms=1784235835686 mono_ms=139920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  609│CONN_LIFECYCLE: conn=232 role=brain wall_ms=1784235835686 mono_ms=139920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  610│CONN_LIFECYCLE: conn=232 role=brain wall_ms=1784235835686 mono_ms=139920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  616│CONN_LIFECYCLE: conn=235 role=brain wall_ms=1784235840002 mono_ms=144235 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *617│CONN_LIFECYCLE: conn=236 role=brain stream-subscriber stream=92 wall_ms=1784235840002 mono_ms=144236 event=stream-sub-attach stream=92 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  618│CONN_LIFECYCLE: conn=236 role=brain stream-subscriber stream=92 wall_ms=1784235840002 mono_ms=144236 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  619│CONN_LIFECYCLE: conn=237 role=brain wall_ms=1784235840004 mono_ms=144237 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *620│CONN_LIFECYCLE: conn=237 role=brain stream-subscriber stream=93 wall_ms=1784235840004 mono_ms=144237 event=stream-sub-attach stream=93 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  621│CONN_LIFECYCLE: conn=236 role=brain stream-subscriber stream=92 wall_ms=1784235840010 mono_ms=144243 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  622│CONN_LIFECYCLE: conn=238 role=brain wall_ms=1784235840010 mono_ms=144243 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  623│CONN_LIFECYCLE: conn=238 role=brain wall_ms=1784235840010 mono_ms=144243 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  637│CONN_LIFECYCLE: conn=244 role=brain wall_ms=1784235846331 mono_ms=150564 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *638│CONN_LIFECYCLE: conn=244 role=brain stream-subscriber stream=95 wall_ms=1784235846331 mono_ms=150564 event=stream-sub-attach stream=95 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  639│CONN_LIFECYCLE: conn=244 role=brain stream-subscriber stream=95 wall_ms=1784235846333 mono_ms=150566 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  640│CONN_LIFECYCLE: conn=245 role=brain wall_ms=1784235846333 mono_ms=150566 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  641│CONN_LIFECYCLE: conn=245 role=brain wall_ms=1784235846333 mono_ms=150566 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  642│CONN_LIFECYCLE: conn=243 role=brain wall_ms=1784235846346 mono_ms=150580 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *643│CONN_LIFECYCLE: conn=243 role=brain stream-subscriber stream=94 wall_ms=1784235846346 mono_ms=150580 event=stream-sub-attach stream=94 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  644│CONN_LIFECYCLE: conn=243 role=brain stream-subscriber stream=94 wall_ms=1784235846350 mono_ms=150584 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  645│CONN_LIFECYCLE: conn=246 role=brain wall_ms=1784235846351 mono_ms=150584 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  646│CONN_LIFECYCLE: conn=246 role=brain wall_ms=1784235846351 mono_ms=150584 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  650│CONN_LIFECYCLE: conn=248 role=brain wall_ms=1784235853061 mono_ms=157294 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *651│CONN_LIFECYCLE: conn=249 role=brain stream-subscriber stream=99 wall_ms=1784235853061 mono_ms=157294 event=stream-sub-attach stream=99 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  652│CONN_LIFECYCLE: conn=249 role=brain stream-subscriber stream=99 wall_ms=1784235853061 mono_ms=157294 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  653│CONN_LIFECYCLE: conn=249 role=brain stream-subscriber stream=99 wall_ms=1784235853061 mono_ms=157295 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  654│CONN_LIFECYCLE: conn=250 role=brain wall_ms=1784235853061 mono_ms=157295 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  657│CONN_LIFECYCLE: conn=251 role=brain wall_ms=1784235854165 mono_ms=158399 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *658│CONN_LIFECYCLE: conn=252 role=brain stream-subscriber stream=100 wall_ms=1784235854166 mono_ms=158399 event=stream-sub-attach stream=100 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  659│CONN_LIFECYCLE: conn=252 role=brain stream-subscriber stream=100 wall_ms=1784235854166 mono_ms=158399 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  660│CONN_LIFECYCLE: conn=252 role=brain stream-subscriber stream=100 wall_ms=1784235854166 mono_ms=158399 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  661│CONN_LIFECYCLE: conn=253 role=brain wall_ms=1784235854166 mono_ms=158399 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  664│CONN_LIFECYCLE: conn=254 role=brain wall_ms=1784235854266 mono_ms=158499 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *665│CONN_LIFECYCLE: conn=255 role=brain stream-subscriber stream=101 wall_ms=1784235854266 mono_ms=158499 event=stream-sub-attach stream=101 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  666│CONN_LIFECYCLE: conn=255 role=brain stream-subscriber stream=101 wall_ms=1784235854266 mono_ms=158500 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  667│CONN_LIFECYCLE: conn=255 role=brain stream-subscriber stream=101 wall_ms=1784235854266 mono_ms=158500 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  668│CONN_LIFECYCLE: conn=256 role=brain wall_ms=1784235854266 mono_ms=158500 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  671│CONN_LIFECYCLE: conn=257 role=brain wall_ms=1784235854366 mono_ms=158599 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *672│CONN_LIFECYCLE: conn=258 role=brain stream-subscriber stream=102 wall_ms=1784235854366 mono_ms=158600 event=stream-sub-attach stream=102 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  673│CONN_LIFECYCLE: conn=258 role=brain stream-subscriber stream=102 wall_ms=1784235854366 mono_ms=158600 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  674│CONN_LIFECYCLE: conn=258 role=brain stream-subscriber stream=102 wall_ms=1784235854371 mono_ms=158605 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  675│CONN_LIFECYCLE: conn=259 role=brain wall_ms=1784235854371 mono_ms=158605 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  681│CONN_LIFECYCLE: conn=262 role=brain wall_ms=1784235855071 mono_ms=159304 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *682│CONN_LIFECYCLE: conn=262 role=brain stream-subscriber stream=103 wall_ms=1784235855071 mono_ms=159304 event=stream-sub-attach stream=103 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  683│CONN_LIFECYCLE: conn=262 role=brain stream-subscriber stream=103 wall_ms=1784235855080 mono_ms=159313 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  684│CONN_LIFECYCLE: conn=263 role=brain wall_ms=1784235855080 mono_ms=159313 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  685│CONN_LIFECYCLE: conn=263 role=brain wall_ms=1784235855080 mono_ms=159313 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  690│CONN_LIFECYCLE: conn=266 role=brain wall_ms=1784235860696 mono_ms=164929 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *691│CONN_LIFECYCLE: conn=266 role=brain stream-subscriber stream=104 wall_ms=1784235860696 mono_ms=164930 event=stream-sub-attach stream=104 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  692│CONN_LIFECYCLE: conn=266 role=brain stream-subscriber stream=104 wall_ms=1784235860698 mono_ms=164931 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  693│CONN_LIFECYCLE: conn=267 role=brain wall_ms=1784235860698 mono_ms=164931 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  694│CONN_LIFECYCLE: conn=267 role=brain wall_ms=1784235860698 mono_ms=164931 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  702│CONN_LIFECYCLE: conn=269 role=brain wall_ms=1784235861399 mono_ms=165632 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *703│CONN_LIFECYCLE: conn=272 role=brain stream-subscriber stream=105 wall_ms=1784235861399 mono_ms=165633 event=stream-sub-attach stream=105 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  704│CONN_LIFECYCLE: conn=272 role=brain stream-subscriber stream=105 wall_ms=1784235861399 mono_ms=165633 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *705│CONN_LIFECYCLE: conn=274 role=brain stream-subscriber stream=107 wall_ms=1784235861399 mono_ms=165633 event=stream-sub-attach stream=107 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  706│CONN_LIFECYCLE: conn=274 role=brain stream-subscriber stream=107 wall_ms=1784235861399 mono_ms=165633 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  707│CONN_LIFECYCLE: conn=275 role=brain wall_ms=1784235861400 mono_ms=165634 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *708│CONN_LIFECYCLE: conn=275 role=brain stream-subscriber stream=106 wall_ms=1784235861400 mono_ms=165634 event=stream-sub-attach stream=106 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  709│CONN_LIFECYCLE: conn=272 role=brain stream-subscriber stream=105 wall_ms=1784235861405 mono_ms=165638 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  710│CONN_LIFECYCLE: conn=276 role=brain wall_ms=1784235861405 mono_ms=165638 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  711│CONN_LIFECYCLE: conn=276 role=brain wall_ms=1784235861405 mono_ms=165638 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  712│CONN_LIFECYCLE: conn=273 role=brain wall_ms=1784235861409 mono_ms=165642 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *713│CONN_LIFECYCLE: conn=273 role=brain stream-subscriber stream=108 wall_ms=1784235861409 mono_ms=165642 event=stream-sub-attach stream=108 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  714│CONN_LIFECYCLE: conn=274 role=brain stream-subscriber stream=107 wall_ms=1784235861410 mono_ms=165643 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  715│CONN_LIFECYCLE: conn=277 role=brain wall_ms=1784235861410 mono_ms=165643 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  716│CONN_LIFECYCLE: conn=277 role=brain wall_ms=1784235861410 mono_ms=165643 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  728│CONN_LIFECYCLE: conn=281 role=brain wall_ms=1784235865118 mono_ms=169351 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *729│CONN_LIFECYCLE: conn=282 role=brain stream-subscriber stream=109 wall_ms=1784235865118 mono_ms=169351 event=stream-sub-attach stream=109 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  730│CONN_LIFECYCLE: conn=282 role=brain stream-subscriber stream=109 wall_ms=1784235865118 mono_ms=169351 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  731│CONN_LIFECYCLE: conn=282 role=brain stream-subscriber stream=109 wall_ms=1784235865118 mono_ms=169352 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  732│CONN_LIFECYCLE: conn=283 role=brain wall_ms=1784235865118 mono_ms=169352 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  737│CONN_LIFECYCLE: conn=285 role=brain wall_ms=1784235870242 mono_ms=174476 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *738│CONN_LIFECYCLE: conn=286 role=brain stream-subscriber stream=110 wall_ms=1784235870243 mono_ms=174476 event=stream-sub-attach stream=110 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  739│CONN_LIFECYCLE: conn=286 role=brain stream-subscriber stream=110 wall_ms=1784235870243 mono_ms=174476 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  740│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n  741│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n     │...\n  755│CONN_LIFECYCLE: conn=294 role=brain wall_ms=1784235877105 mono_ms=181339 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *756│CONN_LIFECYCLE: conn=294 role=brain stream-subscriber stream=111 wall_ms=1784235877105 mono_ms=181339 event=stream-sub-attach stream=111 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  757│CONN_LIFECYCLE: conn=294 role=brain stream-subscriber stream=111 wall_ms=1784235877107 mono_ms=181340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  758│CONN_LIFECYCLE: conn=295 role=brain wall_ms=1784235877107 mono_ms=181341 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  759│CONN_LIFECYCLE: conn=295 role=brain wall_ms=1784235877107 mono_ms=181341 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  761│CONN_LIFECYCLE: conn=293 role=brain wall_ms=1784235877117 mono_ms=181350 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *762│CONN_LIFECYCLE: conn=292 role=brain stream-subscriber stream=114 wall_ms=1784235877117 mono_ms=181350 event=stream-sub-attach stream=114 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *763│CONN_LIFECYCLE: conn=293 role=brain stream-subscriber stream=113 wall_ms=1784235877117 mono_ms=181350 event=stream-sub-attach stream=113 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  764│CONN_LIFECYCLE: conn=292 role=brain stream-subscriber stream=114 wall_ms=1784235877119 mono_ms=181352 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  765│CONN_LIFECYCLE: conn=296 role=brain wall_ms=1784235877119 mono_ms=181352 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  766│CONN_LIFECYCLE: conn=296 role=brain wall_ms=1784235877119 mono_ms=181352 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  774│CONN_LIFECYCLE: conn=300 role=brain wall_ms=1784235880221 mono_ms=184455 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *775│CONN_LIFECYCLE: conn=300 role=brain stream-subscriber stream=117 wall_ms=1784235880221 mono_ms=184455 event=stream-sub-attach stream=117 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  776│CONN_LIFECYCLE: conn=300 role=brain stream-subscriber stream=117 wall_ms=1784235880230 mono_ms=184463 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  777│CONN_LIFECYCLE: conn=301 role=brain wall_ms=1784235880230 mono_ms=184464 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  778│CONN_LIFECYCLE: conn=301 role=brain wall_ms=1784235880230 mono_ms=184464 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  780│CONN_LIFECYCLE: conn=302 role=brain wall_ms=1784235884642 mono_ms=188875 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *781│CONN_LIFECYCLE: conn=303 role=brain stream-subscriber stream=118 wall_ms=1784235884642 mono_ms=188876 event=stream-sub-attach stream=118 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  782│CONN_LIFECYCLE: conn=303 role=brain stream-subscriber stream=118 wall_ms=1784235884642 mono_ms=188876 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  783│CONN_LIFECYCLE: conn=303 role=brain stream-subscriber stream=118 wall_ms=1784235884646 mono_ms=188880 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  784│CONN_LIFECYCLE: conn=304 role=brain wall_ms=1784235884647 mono_ms=188880 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  793│CONN_LIFECYCLE: conn=308 role=brain wall_ms=1784235890876 mono_ms=195110 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *794│CONN_LIFECYCLE: conn=308 role=brain stream-subscriber stream=122 wall_ms=1784235890876 mono_ms=195110 event=stream-sub-attach stream=122 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  795│CONN_LIFECYCLE: conn=308 role=brain stream-subscriber stream=122 wall_ms=1784235890878 mono_ms=195112 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  796│CONN_LIFECYCLE: conn=309 role=brain wall_ms=1784235890878 mono_ms=195112 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  797│CONN_LIFECYCLE: conn=309 role=brain wall_ms=1784235890878 mono_ms=195112 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  805│CONN_LIFECYCLE: conn=313 role=brain wall_ms=1784235891478 mono_ms=195712 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *806│CONN_LIFECYCLE: conn=314 role=brain stream-subscriber stream=123 wall_ms=1784235891478 mono_ms=195712 event=stream-sub-attach stream=123 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *807│CONN_LIFECYCLE: conn=315 role=brain stream-subscriber stream=125 wall_ms=1784235891478 mono_ms=195712 event=stream-sub-attach stream=125 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  808│CONN_LIFECYCLE: conn=315 role=brain stream-subscriber stream=125 wall_ms=1784235891478 mono_ms=195712 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  809│CONN_LIFECYCLE: conn=314 role=brain stream-subscriber stream=123 wall_ms=1784235891478 mono_ms=195712 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  810│CONN_LIFECYCLE: conn=316 role=brain wall_ms=1784235891480 mono_ms=195713 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *811│CONN_LIFECYCLE: conn=316 role=brain stream-subscriber stream=124 wall_ms=1784235891480 mono_ms=195713 event=stream-sub-attach stream=124 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  812│CONN_LIFECYCLE: conn=317 role=brain wall_ms=1784235891481 mono_ms=195714 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *813│CONN_LIFECYCLE: conn=317 role=brain stream-subscriber stream=126 wall_ms=1784235891481 mono_ms=195714 event=stream-sub-attach stream=126 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  814│CONN_LIFECYCLE: conn=314 role=brain stream-subscriber stream=123 wall_ms=1784235891487 mono_ms=195720 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  815│CONN_LIFECYCLE: conn=318 role=brain wall_ms=1784235891487 mono_ms=195720 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  816│CONN_LIFECYCLE: conn=318 role=brain wall_ms=1784235891487 mono_ms=195720 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  828│CONN_LIFECYCLE: conn=323 role=brain wall_ms=1784235895297 mono_ms=199530 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *829│CONN_LIFECYCLE: conn=323 role=brain stream-subscriber stream=127 wall_ms=1784235895297 mono_ms=199530 event=stream-sub-attach stream=127 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  830│CONN_LIFECYCLE: conn=323 role=brain stream-subscriber stream=127 wall_ms=1784235895306 mono_ms=199539 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  831│CONN_LIFECYCLE: conn=324 role=brain wall_ms=1784235895306 mono_ms=199539 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  832│CONN_LIFECYCLE: conn=324 role=brain wall_ms=1784235895306 mono_ms=199539 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  841│PAIR_MEET_UP:SPT_DEV step=59474530 id=e033581b4b6de4c494dc7ebfe4607eb6bacf5969153dec7b682827c837ee7dfe addr=EndpointAddr { id: PublicKey(e033581b4b6de4c494dc7ebfe4607eb6bacf5969153dec7b682827c837ee7dfe), addrs: {Ip(100.68.35.65:50811), Ip(192.168.1.81:50811)} }\n *842│CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 wall_ms=1784235901550 mono_ms=205783 event=stream-sub-attach stream=128 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  843│CONN_LIFECYCLE: conn=327 role=brain wall_ms=1784235905344 mono_ms=209577 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  844│CONN_LIFECYCLE: conn=327 role=brain wall_ms=1784235905344 mono_ms=209577 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *845│CONN_LIFECYCLE: conn=328 role=brain stream-subscriber stream=129 wall_ms=1784235905344 mono_ms=209578 event=stream-sub-attach stream=129 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  846│CONN_LIFECYCLE: conn=328 role=brain stream-subscriber stream=129 wall_ms=1784235905344 mono_ms=209578 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  847│CONN_LIFECYCLE: conn=328 role=brain stream-subscriber stream=129 wall_ms=1784235905352 mono_ms=209585 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  848│CONN_LIFECYCLE: conn=329 role=brain wall_ms=1784235905352 mono_ms=209585 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  854│CONN_LIFECYCLE: conn=332 role=brain wall_ms=1784235905949 mono_ms=210182 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *855│CONN_LIFECYCLE: conn=332 role=brain stream-subscriber stream=130 wall_ms=1784235905949 mono_ms=210182 event=stream-sub-attach stream=130 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  856│CONN_LIFECYCLE: conn=332 role=brain stream-subscriber stream=130 wall_ms=1784235905952 mono_ms=210185 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  857│CONN_LIFECYCLE: conn=333 role=brain wall_ms=1784235905952 mono_ms=210185 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  858│CONN_LIFECYCLE: conn=333 role=brain wall_ms=1784235905952 mono_ms=210185 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  863│CONN_LIFECYCLE: conn=336 role=brain wall_ms=1784235906552 mono_ms=210786 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *864│CONN_LIFECYCLE: conn=336 role=brain stream-subscriber stream=132 wall_ms=1784235906552 mono_ms=210786 event=stream-sub-attach stream=132 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  865│CONN_LIFECYCLE: conn=336 role=brain stream-subscriber stream=132 wall_ms=1784235906555 mono_ms=210788 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  866│CONN_LIFECYCLE: conn=338 role=brain wall_ms=1784235906555 mono_ms=210788 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  867│CONN_LIFECYCLE: conn=338 role=brain wall_ms=1784235906555 mono_ms=210788 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  868│CONN_LIFECYCLE: conn=337 role=brain wall_ms=1784235906564 mono_ms=210798 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *869│CONN_LIFECYCLE: conn=337 role=brain stream-subscriber stream=131 wall_ms=1784235906564 mono_ms=210798 event=stream-sub-attach stream=131 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  870│CONN_LIFECYCLE: conn=337 role=brain stream-subscriber stream=131 wall_ms=1784235906569 mono_ms=210802 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  871│CONN_LIFECYCLE: conn=339 role=brain wall_ms=1784235906569 mono_ms=210803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  872│CONN_LIFECYCLE: conn=339 role=brain wall_ms=1784235906569 mono_ms=210803 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  877│CONN_LIFECYCLE: conn=341 role=brain wall_ms=1784235914193 mono_ms=218426 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *878│CONN_LIFECYCLE: conn=342 role=brain stream-subscriber stream=133 wall_ms=1784235914193 mono_ms=218426 event=stream-sub-attach stream=133 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  879│CONN_LIFECYCLE: conn=342 role=brain stream-subscriber stream=133 wall_ms=1784235914193 mono_ms=218426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  880│CONN_LIFECYCLE: conn=342 role=brain stream-subscriber stream=133 wall_ms=1784235914193 mono_ms=218427 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  881│CONN_LIFECYCLE: conn=343 role=brain wall_ms=1784235914194 mono_ms=218427 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  884│CONN_LIFECYCLE: conn=344 role=brain wall_ms=1784235914796 mono_ms=219029 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *885│CONN_LIFECYCLE: conn=345 role=brain stream-subscriber stream=134 wall_ms=1784235914796 mono_ms=219029 event=stream-sub-attach stream=134 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  886│CONN_LIFECYCLE: conn=345 role=brain stream-subscriber stream=134 wall_ms=1784235914796 mono_ms=219029 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  887│CONN_LIFECYCLE: conn=345 role=brain stream-subscriber stream=134 wall_ms=1784235914796 mono_ms=219030 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  888│CONN_LIFECYCLE: conn=346 role=brain wall_ms=1784235914796 mono_ms=219030 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  891│CONN_LIFECYCLE: conn=347 role=brain wall_ms=1784235914896 mono_ms=219130 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *892│CONN_LIFECYCLE: conn=348 role=brain stream-subscriber stream=135 wall_ms=1784235914897 mono_ms=219130 event=stream-sub-attach stream=135 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  893│CONN_LIFECYCLE: conn=348 role=brain stream-subscriber stream=135 wall_ms=1784235914897 mono_ms=219130 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  894│CONN_LIFECYCLE: conn=348 role=brain stream-subscriber stream=135 wall_ms=1784235914897 mono_ms=219130 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  895│CONN_LIFECYCLE: conn=349 role=brain wall_ms=1784235914897 mono_ms=219130 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  900│CONN_LIFECYCLE: conn=351 role=brain wall_ms=1784235916002 mono_ms=220236 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *901│CONN_LIFECYCLE: conn=352 role=brain stream-subscriber stream=136 wall_ms=1784235916003 mono_ms=220236 event=stream-sub-attach stream=136 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  902│CONN_LIFECYCLE: conn=352 role=brain stream-subscriber stream=136 wall_ms=1784235916003 mono_ms=220236 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  903│CONN_LIFECYCLE: conn=352 role=brain stream-subscriber stream=136 wall_ms=1784235916007 mono_ms=220240 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  904│CONN_LIFECYCLE: conn=353 role=brain wall_ms=1784235916007 mono_ms=220240 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  908│CONN_LIFECYCLE: conn=355 role=brain wall_ms=1784235920326 mono_ms=224559 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *909│CONN_LIFECYCLE: conn=355 role=brain stream-subscriber stream=140 wall_ms=1784235920326 mono_ms=224559 event=stream-sub-attach stream=140 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  910│CONN_LIFECYCLE: conn=355 role=brain stream-subscriber stream=140 wall_ms=1784235920335 mono_ms=224568 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  911│CONN_LIFECYCLE: conn=356 role=brain wall_ms=1784235920335 mono_ms=224568 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  912│CONN_LIFECYCLE: conn=356 role=brain wall_ms=1784235920335 mono_ms=224568 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  917│CONN_LIFECYCLE: conn=359 role=brain wall_ms=1784235921029 mono_ms=225263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *918│CONN_LIFECYCLE: conn=359 role=brain stream-subscriber stream=141 wall_ms=1784235921030 mono_ms=225263 event=stream-sub-attach stream=141 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  919│CONN_LIFECYCLE: conn=359 role=brain stream-subscriber stream=141 wall_ms=1784235921031 mono_ms=225265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  920│CONN_LIFECYCLE: conn=360 role=brain wall_ms=1784235921031 mono_ms=225265 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  921│CONN_LIFECYCLE: conn=360 role=brain wall_ms=1784235921032 mono_ms=225265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  925│CONN_LIFECYCLE: conn=362 role=brain wall_ms=1784235921531 mono_ms=225764 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *926│CONN_LIFECYCLE: conn=363 role=brain stream-subscriber stream=142 wall_ms=1784235921531 mono_ms=225764 event=stream-sub-attach stream=142 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *927│CONN_LIFECYCLE: conn=364 role=brain stream-subscriber stream=143 wall_ms=1784235921531 mono_ms=225764 event=stream-sub-attach stream=143 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  928│CONN_LIFECYCLE: conn=364 role=brain stream-subscriber stream=143 wall_ms=1784235921531 mono_ms=225764 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  929│CONN_LIFECYCLE: conn=363 role=brain stream-subscriber stream=142 wall_ms=1784235921531 mono_ms=225764 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  930│CONN_LIFECYCLE: conn=363 role=brain stream-subscriber stream=142 wall_ms=1784235921539 mono_ms=225772 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  940│CONN_LIFECYCLE: conn=369 role=brain wall_ms=1784235921733 mono_ms=225967 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *941│CONN_LIFECYCLE: conn=369 role=brain stream-subscriber stream=144 wall_ms=1784235921733 mono_ms=225967 event=stream-sub-attach stream=144 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  942│CONN_LIFECYCLE: conn=369 role=brain stream-subscriber stream=144 wall_ms=1784235921738 mono_ms=225971 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  943│CONN_LIFECYCLE: conn=371 role=brain wall_ms=1784235921738 mono_ms=225971 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  944│CONN_LIFECYCLE: conn=371 role=brain wall_ms=1784235921738 mono_ms=225971 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  945│CONN_LIFECYCLE: conn=370 role=brain wall_ms=1784235921754 mono_ms=225987 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *946│CONN_LIFECYCLE: conn=370 role=brain stream-subscriber stream=145 wall_ms=1784235921754 mono_ms=225987 event=stream-sub-attach stream=145 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  947│CONN_LIFECYCLE: conn=370 role=brain stream-subscriber stream=145 wall_ms=1784235921756 mono_ms=225989 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  948│CONN_LIFECYCLE: conn=372 role=brain wall_ms=1784235921756 mono_ms=225989 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  949│CONN_LIFECYCLE: conn=372 role=brain wall_ms=1784235921756 mono_ms=225989 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  951│CONN_LIFECYCLE: conn=373 role=brain wall_ms=1784235925351 mono_ms=229584 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *952│CONN_LIFECYCLE: conn=374 role=brain stream-subscriber stream=146 wall_ms=1784235925351 mono_ms=229585 event=stream-sub-attach stream=146 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  953│CONN_LIFECYCLE: conn=374 role=brain stream-subscriber stream=146 wall_ms=1784235925351 mono_ms=229585 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  954│CONN_LIFECYCLE: conn=374 role=brain stream-subscriber stream=146 wall_ms=1784235925352 mono_ms=229585 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  955│CONN_LIFECYCLE: conn=375 role=brain wall_ms=1784235925352 mono_ms=229585 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  960│CONN_LIFECYCLE: conn=377 role=brain wall_ms=1784235925854 mono_ms=230087 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *961│CONN_LIFECYCLE: conn=378 role=brain stream-subscriber stream=147 wall_ms=1784235925854 mono_ms=230087 event=stream-sub-attach stream=147 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  962│CONN_LIFECYCLE: conn=378 role=brain stream-subscriber stream=147 wall_ms=1784235925854 mono_ms=230087 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  963│CONN_LIFECYCLE: conn=378 role=brain stream-subscriber stream=147 wall_ms=1784235925858 mono_ms=230091 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  964│CONN_LIFECYCLE: conn=379 role=brain wall_ms=1784235925858 mono_ms=230091 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  976│CONN_LIFECYCLE: conn=382 role=brain wall_ms=1784235935500 mono_ms=239734 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *977│CONN_LIFECYCLE: conn=384 role=brain stream-subscriber stream=148 wall_ms=1784235935501 mono_ms=239734 event=stream-sub-attach stream=148 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  978│CONN_LIFECYCLE: conn=384 role=brain stream-subscriber stream=148 wall_ms=1784235935501 mono_ms=239734 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  979│CONN_LIFECYCLE: conn=383 role=brain wall_ms=1784235935502 mono_ms=239735 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *980│CONN_LIFECYCLE: conn=383 role=brain stream-subscriber stream=149 wall_ms=1784235935502 mono_ms=239735 event=stream-sub-attach stream=149 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  981│CONN_LIFECYCLE: conn=383 role=brain stream-subscriber stream=149 wall_ms=1784235935511 mono_ms=239744 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  982│CONN_LIFECYCLE: conn=385 role=brain wall_ms=1784235935511 mono_ms=239744 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  983│CONN_LIFECYCLE: conn=385 role=brain wall_ms=1784235935511 mono_ms=239744 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n  997│CONN_LIFECYCLE: conn=393 role=brain wall_ms=1784235941655 mono_ms=245888 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *998│CONN_LIFECYCLE: conn=393 role=brain stream-subscriber stream=153 wall_ms=1784235941655 mono_ms=245888 event=stream-sub-attach stream=153 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  999│CONN_LIFECYCLE: conn=393 role=brain stream-subscriber stream=153 wall_ms=1784235941656 mono_ms=245890 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1000│CONN_LIFECYCLE: conn=395 role=brain wall_ms=1784235941656 mono_ms=245890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1001│CONN_LIFECYCLE: conn=395 role=brain wall_ms=1784235941656 mono_ms=245890 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1002│CONN_LIFECYCLE: conn=394 role=brain wall_ms=1784235941663 mono_ms=245897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1003│CONN_LIFECYCLE: conn=394 role=brain stream-subscriber stream=152 wall_ms=1784235941663 mono_ms=245897 event=stream-sub-attach stream=152 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1004│CONN_LIFECYCLE: conn=392 role=brain wall_ms=1784235941663 mono_ms=245897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1005│CONN_LIFECYCLE: conn=392 role=brain stream-subscriber stream=150 wall_ms=1784235941663 mono_ms=245897 event=stream-sub-attach stream=150 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1006│CONN_LIFECYCLE: conn=392 role=brain stream-subscriber stream=150 wall_ms=1784235941665 mono_ms=245898 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1007│CONN_LIFECYCLE: conn=396 role=brain wall_ms=1784235941665 mono_ms=245898 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1008│CONN_LIFECYCLE: conn=396 role=brain wall_ms=1784235941665 mono_ms=245898 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1016│CONN_LIFECYCLE: conn=400 role=brain wall_ms=1784235950500 mono_ms=254733 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1017│CONN_LIFECYCLE: conn=400 role=brain stream-subscriber stream=156 wall_ms=1784235950500 mono_ms=254733 event=stream-sub-attach stream=156 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1018│CONN_LIFECYCLE: conn=400 role=brain stream-subscriber stream=156 wall_ms=1784235950508 mono_ms=254742 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1019│CONN_LIFECYCLE: conn=401 role=brain wall_ms=1784235950508 mono_ms=254742 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1020│CONN_LIFECYCLE: conn=401 role=brain wall_ms=1784235950509 mono_ms=254742 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1025│CONN_LIFECYCLE: conn=404 role=brain wall_ms=1784235951103 mono_ms=255337 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1026│CONN_LIFECYCLE: conn=404 role=brain stream-subscriber stream=157 wall_ms=1784235951104 mono_ms=255337 event=stream-sub-attach stream=157 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1027│CONN_LIFECYCLE: conn=404 role=brain stream-subscriber stream=157 wall_ms=1784235951105 mono_ms=255339 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1028│CONN_LIFECYCLE: conn=405 role=brain wall_ms=1784235951105 mono_ms=255339 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1029│CONN_LIFECYCLE: conn=405 role=brain wall_ms=1784235951106 mono_ms=255339 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1035│CONN_LIFECYCLE: conn=407 role=brain wall_ms=1784235956229 mono_ms=260462 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1036│CONN_LIFECYCLE: conn=408 role=brain stream-subscriber stream=161 wall_ms=1784235956229 mono_ms=260462 event=stream-sub-attach stream=161 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1037│CONN_LIFECYCLE: conn=408 role=brain stream-subscriber stream=161 wall_ms=1784235956229 mono_ms=260462 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1038│CONN_LIFECYCLE: conn=408 role=brain stream-subscriber stream=161 wall_ms=1784235956233 mono_ms=260466 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1039│CONN_LIFECYCLE: conn=409 role=brain wall_ms=1784235956233 mono_ms=260467 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1050│CONN_LIFECYCLE: conn=412 role=brain wall_ms=1784235961655 mono_ms=265888 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1051│CONN_LIFECYCLE: conn=414 role=brain stream-subscriber stream=162 wall_ms=1784235961655 mono_ms=265888 event=stream-sub-attach stream=162 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1052│CONN_LIFECYCLE: conn=414 role=brain stream-subscriber stream=162 wall_ms=1784235961655 mono_ms=265888 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1053│CONN_LIFECYCLE: conn=413 role=brain stream-subscriber stream=163 wall_ms=1784235961655 mono_ms=265888 event=stream-sub-attach stream=163 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1054│CONN_LIFECYCLE: conn=413 role=brain stream-subscriber stream=163 wall_ms=1784235961655 mono_ms=265888 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1055│CONN_LIFECYCLE: conn=414 role=brain stream-subscriber stream=162 wall_ms=1784235961660 mono_ms=265893 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1056│CONN_LIFECYCLE: conn=415 role=brain wall_ms=1784235961660 mono_ms=265893 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1062│CONN_LIFECYCLE: conn=417 role=brain wall_ms=1784235962962 mono_ms=267195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1063│CONN_LIFECYCLE: conn=418 role=brain stream-subscriber stream=164 wall_ms=1784235962962 mono_ms=267195 event=stream-sub-attach stream=164 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1064│CONN_LIFECYCLE: conn=418 role=brain stream-subscriber stream=164 wall_ms=1784235962962 mono_ms=267195 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1065│CONN_LIFECYCLE: conn=418 role=brain stream-subscriber stream=164 wall_ms=1784235962967 mono_ms=267200 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1066│CONN_LIFECYCLE: conn=419 role=brain wall_ms=1784235962967 mono_ms=267200 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1069│CONN_LIFECYCLE: conn=420 role=brain wall_ms=1784235963062 mono_ms=267295 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1070│CONN_LIFECYCLE: conn=421 role=brain stream-subscriber stream=165 wall_ms=1784235963062 mono_ms=267295 event=stream-sub-attach stream=165 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1071│CONN_LIFECYCLE: conn=421 role=brain stream-subscriber stream=165 wall_ms=1784235963062 mono_ms=267295 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1072│CONN_LIFECYCLE: conn=421 role=brain stream-subscriber stream=165 wall_ms=1784235963062 mono_ms=267296 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1073│CONN_LIFECYCLE: conn=422 role=brain wall_ms=1784235963062 mono_ms=267296 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1080│CONN_LIFECYCLE: conn=426 role=brain wall_ms=1784235963667 mono_ms=267900 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1081│CONN_LIFECYCLE: conn=426 role=brain stream-subscriber stream=166 wall_ms=1784235963667 mono_ms=267900 event=stream-sub-attach stream=166 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1082│CONN_LIFECYCLE: conn=426 role=brain stream-subscriber stream=166 wall_ms=1784235963671 mono_ms=267904 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1083│CONN_LIFECYCLE: conn=427 role=brain wall_ms=1784235963671 mono_ms=267904 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1084│CONN_LIFECYCLE: conn=427 role=brain wall_ms=1784235963671 mono_ms=267904 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1085│CONN_LIFECYCLE: conn=425 role=brain wall_ms=1784235963676 mono_ms=267910 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1086│CONN_LIFECYCLE: conn=425 role=brain stream-subscriber stream=167 wall_ms=1784235963676 mono_ms=267910 event=stream-sub-attach stream=167 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1087│CONN_LIFECYCLE: conn=425 role=brain stream-subscriber stream=167 wall_ms=1784235963678 mono_ms=267911 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1088│CONN_LIFECYCLE: conn=428 role=brain wall_ms=1784235963678 mono_ms=267912 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1089│CONN_LIFECYCLE: conn=428 role=brain wall_ms=1784235963678 mono_ms=267912 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1093│CONN_LIFECYCLE: conn=430 role=brain wall_ms=1784235965575 mono_ms=269808 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1094│CONN_LIFECYCLE: conn=431 role=brain stream-subscriber stream=168 wall_ms=1784235965575 mono_ms=269808 event=stream-sub-attach stream=168 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1095│CONN_LIFECYCLE: conn=431 role=brain stream-subscriber stream=168 wall_ms=1784235965575 mono_ms=269808 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1096│CONN_LIFECYCLE: conn=432 role=brain wall_ms=1784235965576 mono_ms=269809 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1097│CONN_LIFECYCLE: conn=432 role=brain stream-subscriber stream=169 wall_ms=1784235965576 mono_ms=269809 event=stream-sub-attach stream=169 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1098│CONN_LIFECYCLE: conn=431 role=brain stream-subscriber stream=168 wall_ms=1784235965582 mono_ms=269816 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1099│CONN_LIFECYCLE: conn=433 role=brain wall_ms=1784235965583 mono_ms=269816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1100│CONN_LIFECYCLE: conn=433 role=brain wall_ms=1784235965583 mono_ms=269816 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1108│CONN_LIFECYCLE: conn=437 role=brain wall_ms=1784235966179 mono_ms=270412 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1109│CONN_LIFECYCLE: conn=437 role=brain stream-subscriber stream=170 wall_ms=1784235966179 mono_ms=270412 event=stream-sub-attach stream=170 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1110│CONN_LIFECYCLE: conn=437 role=brain stream-subscriber stream=170 wall_ms=1784235966181 mono_ms=270414 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1111│CONN_LIFECYCLE: conn=438 role=brain wall_ms=1784235966181 mono_ms=270414 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1112│CONN_LIFECYCLE: conn=438 role=brain wall_ms=1784235966181 mono_ms=270414 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1116│CONN_LIFECYCLE: conn=440 role=brain wall_ms=1784235973213 mono_ms=277446 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1117│CONN_LIFECYCLE: conn=441 role=brain stream-subscriber stream=171 wall_ms=1784235973213 mono_ms=277446 event=stream-sub-attach stream=171 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1118│CONN_LIFECYCLE: conn=441 role=brain stream-subscriber stream=171 wall_ms=1784235973213 mono_ms=277446 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1119│CONN_LIFECYCLE: conn=441 role=brain stream-subscriber stream=171 wall_ms=1784235973219 mono_ms=277452 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1120│CONN_LIFECYCLE: conn=442 role=brain wall_ms=1784235973219 mono_ms=277452 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1121│CONN_LIFECYCLE: conn=442 role=brain wall_ms=1784235973219 mono_ms=277452 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1122│CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172 wall_ms=1784235973426 mono_ms=277659 event=stream-sub-attach stream=172 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1123│CONN_LIFECYCLE: conn=443 role=brain wall_ms=1784235975926 mono_ms=280159 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1124│CONN_LIFECYCLE: conn=443 role=brain wall_ms=1784235975926 mono_ms=280159 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1125│CONN_LIFECYCLE: conn=444 role=brain stream-subscriber stream=173 wall_ms=1784235975926 mono_ms=280160 event=stream-sub-attach stream=173 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1126│CONN_LIFECYCLE: conn=444 role=brain stream-subscriber stream=173 wall_ms=1784235975926 mono_ms=280160 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1127│CONN_LIFECYCLE: conn=444 role=brain stream-subscriber stream=173 wall_ms=1784235975927 mono_ms=280160 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1128│CONN_LIFECYCLE: conn=445 role=brain wall_ms=1784235975927 mono_ms=280160 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1133│CONN_LIFECYCLE: conn=447 role=brain wall_ms=1784235976027 mono_ms=280260 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1134│CONN_LIFECYCLE: conn=448 role=brain stream-subscriber stream=174 wall_ms=1784235976027 mono_ms=280260 event=stream-sub-attach stream=174 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1135│CONN_LIFECYCLE: conn=448 role=brain stream-subscriber stream=174 wall_ms=1784235976027 mono_ms=280260 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1136│CONN_LIFECYCLE: conn=448 role=brain stream-subscriber stream=174 wall_ms=1784235976027 mono_ms=280260 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1137│CONN_LIFECYCLE: conn=449 role=brain wall_ms=1784235976027 mono_ms=280261 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1141│CONN_LIFECYCLE: conn=451 role=brain wall_ms=1784235980551 mono_ms=284784 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1142│CONN_LIFECYCLE: conn=451 role=brain stream-subscriber stream=175 wall_ms=1784235980551 mono_ms=284784 event=stream-sub-attach stream=175 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1143│CONN_LIFECYCLE: conn=451 role=brain stream-subscriber stream=175 wall_ms=1784235980561 mono_ms=284794 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1144│CONN_LIFECYCLE: conn=452 role=brain wall_ms=1784235980561 mono_ms=284794 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1145│CONN_LIFECYCLE: conn=452 role=brain wall_ms=1784235980561 mono_ms=284794 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1150│CONN_LIFECYCLE: conn=455 role=brain wall_ms=1784235981255 mono_ms=285488 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1151│CONN_LIFECYCLE: conn=455 role=brain stream-subscriber stream=176 wall_ms=1784235981255 mono_ms=285488 event=stream-sub-attach stream=176 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1152│CONN_LIFECYCLE: conn=455 role=brain stream-subscriber stream=176 wall_ms=1784235981257 mono_ms=285491 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1153│CONN_LIFECYCLE: conn=456 role=brain wall_ms=1784235981258 mono_ms=285491 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1154│CONN_LIFECYCLE: conn=456 role=brain wall_ms=1784235981258 mono_ms=285491 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1157│CONN_LIFECYCLE: conn=457 role=brain wall_ms=1784235983363 mono_ms=287596 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1158│CONN_LIFECYCLE: conn=458 role=brain stream-subscriber stream=177 wall_ms=1784235983363 mono_ms=287596 event=stream-sub-attach stream=177 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1159│CONN_LIFECYCLE: conn=458 role=brain stream-subscriber stream=177 wall_ms=1784235983363 mono_ms=287596 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1160│CONN_LIFECYCLE: conn=458 role=brain stream-subscriber stream=177 wall_ms=1784235983368 mono_ms=287601 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1161│CONN_LIFECYCLE: conn=459 role=brain wall_ms=1784235983368 mono_ms=287601 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1164│CONN_LIFECYCLE: conn=460 role=brain wall_ms=1784235985674 mono_ms=289907 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1165│CONN_LIFECYCLE: conn=461 role=brain stream-subscriber stream=178 wall_ms=1784235985674 mono_ms=289907 event=stream-sub-attach stream=178 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1166│CONN_LIFECYCLE: conn=461 role=brain stream-subscriber stream=178 wall_ms=1784235985674 mono_ms=289907 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1167│CONN_LIFECYCLE: conn=461 role=brain stream-subscriber stream=178 wall_ms=1784235985674 mono_ms=289908 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1168│CONN_LIFECYCLE: conn=462 role=brain wall_ms=1784235985675 mono_ms=289908 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1176│CONN_LIFECYCLE: conn=466 role=brain wall_ms=1784235986882 mono_ms=291115 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1177│CONN_LIFECYCLE: conn=466 role=brain stream-subscriber stream=180 wall_ms=1784235986882 mono_ms=291115 event=stream-sub-attach stream=180 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1178│CONN_LIFECYCLE: conn=466 role=brain stream-subscriber stream=180 wall_ms=1784235986883 mono_ms=291116 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1179│CONN_LIFECYCLE: conn=468 role=brain wall_ms=1784235986883 mono_ms=291116 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1180│CONN_LIFECYCLE: conn=468 role=brain wall_ms=1784235986883 mono_ms=291116 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1181│CONN_LIFECYCLE: conn=467 role=brain wall_ms=1784235986886 mono_ms=291119 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1182│CONN_LIFECYCLE: conn=467 role=brain stream-subscriber stream=179 wall_ms=1784235986886 mono_ms=291119 event=stream-sub-attach stream=179 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1183│CONN_LIFECYCLE: conn=467 role=brain stream-subscriber stream=179 wall_ms=1784235986890 mono_ms=291123 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1184│CONN_LIFECYCLE: conn=469 role=brain wall_ms=1784235986890 mono_ms=291123 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1185│CONN_LIFECYCLE: conn=469 role=brain wall_ms=1784235986890 mono_ms=291123 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1187│CONN_LIFECYCLE: conn=470 role=brain wall_ms=1784235990199 mono_ms=294432 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1188│CONN_LIFECYCLE: conn=471 role=brain stream-subscriber stream=181 wall_ms=1784235990199 mono_ms=294432 event=stream-sub-attach stream=181 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1189│CONN_LIFECYCLE: conn=471 role=brain stream-subscriber stream=181 wall_ms=1784235990199 mono_ms=294432 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1190│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 1191│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n     │...\n 1199│CONN_LIFECYCLE: conn=474 role=brain wall_ms=1784235993717 mono_ms=297951 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1200│CONN_LIFECYCLE: conn=476 role=brain stream-subscriber stream=183 wall_ms=1784235993718 mono_ms=297951 event=stream-sub-attach stream=183 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1201│CONN_LIFECYCLE: conn=476 role=brain stream-subscriber stream=183 wall_ms=1784235993718 mono_ms=297951 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1202│CONN_LIFECYCLE: conn=475 role=brain stream-subscriber stream=182 wall_ms=1784235993718 mono_ms=297951 event=stream-sub-attach stream=182 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1203│CONN_LIFECYCLE: conn=475 role=brain stream-subscriber stream=182 wall_ms=1784235993718 mono_ms=297951 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1204│CONN_LIFECYCLE: conn=477 role=brain wall_ms=1784235995828 mono_ms=300061 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1205│CONN_LIFECYCLE: conn=478 role=brain wall_ms=1784235995828 mono_ms=300061 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1207│CONN_LIFECYCLE: conn=478 role=brain wall_ms=1784235995828 mono_ms=300061 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1208│CONN_LIFECYCLE: conn=480 role=brain stream-subscriber stream=184 wall_ms=1784235995828 mono_ms=300061 event=stream-sub-attach stream=184 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1209│CONN_LIFECYCLE: conn=480 role=brain stream-subscriber stream=184 wall_ms=1784235995828 mono_ms=300062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1210│CONN_LIFECYCLE: conn=479 role=brain wall_ms=1784235995829 mono_ms=300062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1211│CONN_LIFECYCLE: conn=479 role=brain stream-subscriber stream=185 wall_ms=1784235995829 mono_ms=300062 event=stream-sub-attach stream=185 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1212│CONN_LIFECYCLE: conn=479 role=brain stream-subscriber stream=185 wall_ms=1784235995838 mono_ms=300071 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1213│CONN_LIFECYCLE: conn=481 role=brain wall_ms=1784235995838 mono_ms=300071 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1214│CONN_LIFECYCLE: conn=481 role=brain wall_ms=1784235995838 mono_ms=300071 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1231│CONN_LIFECYCLE: conn=488 role=brain wall_ms=1784235998403 mono_ms=302636 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1232│CONN_LIFECYCLE: conn=488 role=brain stream-subscriber stream=186 wall_ms=1784235998403 mono_ms=302636 event=stream-sub-attach stream=186 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1233│CONN_LIFECYCLE: conn=488 role=brain stream-subscriber stream=186 wall_ms=1784235998405 mono_ms=302638 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1234│CONN_LIFECYCLE: conn=489 role=brain wall_ms=1784235998405 mono_ms=302638 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1235│CONN_LIFECYCLE: conn=489 role=brain wall_ms=1784235998405 mono_ms=302638 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1242│CONN_LIFECYCLE: conn=493 role=brain wall_ms=1784236001922 mono_ms=306155 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1243│CONN_LIFECYCLE: conn=493 role=brain stream-subscriber stream=194 wall_ms=1784236001922 mono_ms=306155 event=stream-sub-attach stream=194 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1244│CONN_LIFECYCLE: conn=493 role=brain stream-subscriber stream=194 wall_ms=1784236001923 mono_ms=306157 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1245│CONN_LIFECYCLE: conn=495 role=brain wall_ms=1784236001924 mono_ms=306157 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1246│CONN_LIFECYCLE: conn=495 role=brain wall_ms=1784236001924 mono_ms=306157 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1247│CONN_LIFECYCLE: conn=494 role=brain wall_ms=1784236001935 mono_ms=306168 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1248│CONN_LIFECYCLE: conn=494 role=brain stream-subscriber stream=193 wall_ms=1784236001935 mono_ms=306168 event=stream-sub-attach stream=193 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1249│CONN_LIFECYCLE: conn=494 role=brain stream-subscriber stream=193 wall_ms=1784236001939 mono_ms=306172 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1250│CONN_LIFECYCLE: conn=496 role=brain wall_ms=1784236001939 mono_ms=306172 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1251│CONN_LIFECYCLE: conn=496 role=brain wall_ms=1784236001939 mono_ms=306172 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1257│CONN_LIFECYCLE: conn=499 role=brain wall_ms=1784236010767 mono_ms=315000 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1258│CONN_LIFECYCLE: conn=499 role=brain stream-subscriber stream=195 wall_ms=1784236010767 mono_ms=315000 event=stream-sub-attach stream=195 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1259│CONN_LIFECYCLE: conn=499 role=brain stream-subscriber stream=195 wall_ms=1784236010776 mono_ms=315010 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1260│CONN_LIFECYCLE: conn=500 role=brain wall_ms=1784236010777 mono_ms=315010 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1261│CONN_LIFECYCLE: conn=500 role=brain wall_ms=1784236010777 mono_ms=315010 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1266│CONN_LIFECYCLE: conn=503 role=brain wall_ms=1784236011470 mono_ms=315703 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1267│CONN_LIFECYCLE: conn=503 role=brain stream-subscriber stream=196 wall_ms=1784236011470 mono_ms=315703 event=stream-sub-attach stream=196 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1268│CONN_LIFECYCLE: conn=503 role=brain stream-subscriber stream=196 wall_ms=1784236011473 mono_ms=315706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1269│CONN_LIFECYCLE: conn=504 role=brain wall_ms=1784236011473 mono_ms=315706 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1270│CONN_LIFECYCLE: conn=504 role=brain wall_ms=1784236011473 mono_ms=315706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1278│CONN_LIFECYCLE: conn=508 role=brain wall_ms=1784236017100 mono_ms=321333 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1279│CONN_LIFECYCLE: conn=509 role=brain stream-subscriber stream=197 wall_ms=1784236017100 mono_ms=321333 event=stream-sub-attach stream=197 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*1280│CONN_LIFECYCLE: conn=508 role=brain stream-subscriber stream=198 wall_ms=1784236017100 mono_ms=321333 event=stream-sub-attach stream=198 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1281│CONN_LIFECYCLE: conn=508 role=brain stream-subscriber stream=198 wall_ms=1784236017102 mono_ms=321335 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1282│CONN_LIFECYCLE: conn=510 role=brain wall_ms=1784236017102 mono_ms=321335 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1283│CONN_LIFECYCLE: conn=510 role=brain wall_ms=1784236017102 mono_ms=321335 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1288│CONN_LIFECYCLE: conn=512 role=brain wall_ms=1784236020518 mono_ms=324751 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1289│CONN_LIFECYCLE: conn=513 role=brain stream-subscriber stream=199 wall_ms=1784236020518 mono_ms=324751 event=stream-sub-attach stream=199 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1290│CONN_LIFECYCLE: conn=513 role=brain stream-subscriber stream=199 wall_ms=1784236020518 mono_ms=324751 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1291│CONN_LIFECYCLE: conn=513 role=brain stream-subscriber stream=199 wall_ms=1784236020522 mono_ms=324755 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1292│CONN_LIFECYCLE: conn=514 role=brain wall_ms=1784236020522 mono_ms=324755 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1301│CONN_LIFECYCLE: conn=516 role=brain wall_ms=1784236024641 mono_ms=328874 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1302│CONN_LIFECYCLE: conn=517 role=brain stream-subscriber stream=200 wall_ms=1784236024642 mono_ms=328875 event=stream-sub-attach stream=200 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1303│CONN_LIFECYCLE: conn=517 role=brain stream-subscriber stream=200 wall_ms=1784236024642 mono_ms=328875 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1304│CONN_LIFECYCLE: conn=517 role=brain stream-subscriber stream=200 wall_ms=1784236024642 mono_ms=328875 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1305│CONN_LIFECYCLE: conn=518 role=brain wall_ms=1784236024642 mono_ms=328875 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1319│CONN_LIFECYCLE: conn=521 role=brain wall_ms=1784236025847 mono_ms=330080 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1320│CONN_LIFECYCLE: conn=522 role=brain stream-subscriber stream=204 wall_ms=1784236025847 mono_ms=330080 event=stream-sub-attach stream=204 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1321│CONN_LIFECYCLE: conn=522 role=brain stream-subscriber stream=204 wall_ms=1784236025847 mono_ms=330080 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1322│CONN_LIFECYCLE: conn=523 role=brain wall_ms=1784236025848 mono_ms=330081 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1323│CONN_LIFECYCLE: conn=523 role=brain stream-subscriber stream=205 wall_ms=1784236025848 mono_ms=330082 event=stream-sub-attach stream=205 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1324│CONN_LIFECYCLE: conn=522 role=brain stream-subscriber stream=204 wall_ms=1784236025855 mono_ms=330088 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1325│CONN_LIFECYCLE: conn=524 role=brain wall_ms=1784236025855 mono_ms=330088 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1326│CONN_LIFECYCLE: conn=524 role=brain wall_ms=1784236025855 mono_ms=330088 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1331│CONN_LIFECYCLE: conn=526 role=brain wall_ms=1784236026344 mono_ms=330577 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1332│CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026356 mono_ms=330589 event=controller-attach session=6 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1333│CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026371 mono_ms=330604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1334│CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026374 mono_ms=330607 event=writer-exit role=controller session=6 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 1335│WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 60448) — online at bind\n     │...\n 1340│CONN_LIFECYCLE: conn=529 role=brain wall_ms=1784236026553 mono_ms=330786 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1341│CONN_LIFECYCLE: conn=529 role=brain stream-subscriber stream=206 wall_ms=1784236026553 mono_ms=330786 event=stream-sub-attach stream=206 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1342│CONN_LIFECYCLE: conn=529 role=brain stream-subscriber stream=206 wall_ms=1784236026554 mono_ms=330788 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1343│CONN_LIFECYCLE: conn=530 role=brain wall_ms=1784236026555 mono_ms=330788 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1344│CONN_LIFECYCLE: conn=530 role=brain wall_ms=1784236026555 mono_ms=330788 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1354│CONN_LIFECYCLE: conn=532 role=brain wall_ms=1784236033891 mono_ms=338124 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1355│CONN_LIFECYCLE: conn=536 role=brain stream-subscriber stream=208 wall_ms=1784236033891 mono_ms=338124 event=stream-sub-attach stream=208 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1356│CONN_LIFECYCLE: conn=536 role=brain stream-subscriber stream=208 wall_ms=1784236033891 mono_ms=338124 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1357│CONN_LIFECYCLE: conn=539 role=brain stream-subscriber stream=207 wall_ms=1784236033891 mono_ms=338124 event=stream-sub-attach stream=207 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1358│CONN_LIFECYCLE: conn=539 role=brain stream-subscriber stream=207 wall_ms=1784236033891 mono_ms=338124 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1359│CONN_LIFECYCLE: conn=537 role=brain wall_ms=1784236033893 mono_ms=338126 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1360│CONN_LIFECYCLE: conn=538 role=brain wall_ms=1784236033893 mono_ms=338126 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1361│CONN_LIFECYCLE: conn=537 role=brain stream-subscriber stream=210 wall_ms=1784236033893 mono_ms=338126 event=stream-sub-attach stream=210 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*1362│CONN_LIFECYCLE: conn=538 role=brain stream-subscriber stream=209 wall_ms=1784236033893 mono_ms=338126 event=stream-sub-attach stream=209 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1363│CONN_LIFECYCLE: conn=539 role=brain stream-subscriber stream=207 wall_ms=1784236033899 mono_ms=338132 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1364│CONN_LIFECYCLE: conn=540 role=brain wall_ms=1784236033899 mono_ms=338132 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1365│CONN_LIFECYCLE: conn=540 role=brain wall_ms=1784236033899 mono_ms=338132 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1380│CONN_LIFECYCLE: conn=546 role=brain wall_ms=1784236040930 mono_ms=345163 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1381│CONN_LIFECYCLE: conn=546 role=brain stream-subscriber stream=211 wall_ms=1784236040930 mono_ms=345163 event=stream-sub-attach stream=211 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1382│CONN_LIFECYCLE: conn=546 role=brain stream-subscriber stream=211 wall_ms=1784236040939 mono_ms=345172 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1383│CONN_LIFECYCLE: conn=547 role=brain wall_ms=1784236040939 mono_ms=345172 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1384│CONN_LIFECYCLE: conn=547 role=brain wall_ms=1784236040939 mono_ms=345172 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1389│CONN_LIFECYCLE: conn=550 role=brain wall_ms=1784236041534 mono_ms=345767 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1390│CONN_LIFECYCLE: conn=550 role=brain stream-subscriber stream=212 wall_ms=1784236041534 mono_ms=345767 event=stream-sub-attach stream=212 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1391│CONN_LIFECYCLE: conn=550 role=brain stream-subscriber stream=212 wall_ms=1784236041535 mono_ms=345768 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1392│CONN_LIFECYCLE: conn=551 role=brain wall_ms=1784236041536 mono_ms=345769 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1393│CONN_LIFECYCLE: conn=551 role=brain wall_ms=1784236041536 mono_ms=345769 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1395│CONN_LIFECYCLE: conn=552 role=brain wall_ms=1784236044751 mono_ms=348984 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1396│CONN_LIFECYCLE: conn=553 role=brain stream-subscriber stream=213 wall_ms=1784236044751 mono_ms=348984 event=stream-sub-attach stream=213 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1397│CONN_LIFECYCLE: conn=553 role=brain stream-subscriber stream=213 wall_ms=1784236044751 mono_ms=348984 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1398│CONN_LIFECYCLE: conn=553 role=brain stream-subscriber stream=213 wall_ms=1784236044752 mono_ms=348985 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1399│CONN_LIFECYCLE: conn=554 role=brain wall_ms=1784236044752 mono_ms=348985 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1402│CONN_LIFECYCLE: conn=555 role=brain wall_ms=1784236044851 mono_ms=349084 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1403│CONN_LIFECYCLE: conn=556 role=brain stream-subscriber stream=214 wall_ms=1784236044852 mono_ms=349085 event=stream-sub-attach stream=214 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1404│CONN_LIFECYCLE: conn=556 role=brain stream-subscriber stream=214 wall_ms=1784236044852 mono_ms=349085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1405│CONN_LIFECYCLE: conn=556 role=brain stream-subscriber stream=214 wall_ms=1784236044852 mono_ms=349085 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1406│CONN_LIFECYCLE: conn=557 role=brain wall_ms=1784236044852 mono_ms=349085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1409│CONN_LIFECYCLE: conn=558 role=brain wall_ms=1784236045956 mono_ms=350189 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1410│CONN_LIFECYCLE: conn=559 role=brain stream-subscriber stream=215 wall_ms=1784236045956 mono_ms=350189 event=stream-sub-attach stream=215 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1411│CONN_LIFECYCLE: conn=559 role=brain stream-subscriber stream=215 wall_ms=1784236045956 mono_ms=350189 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1412│CONN_LIFECYCLE: conn=559 role=brain stream-subscriber stream=215 wall_ms=1784236045956 mono_ms=350189 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1413│CONN_LIFECYCLE: conn=560 role=brain wall_ms=1784236045957 mono_ms=350190 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1418│CONN_LIFECYCLE: conn=562 role=brain wall_ms=1784236050782 mono_ms=355015 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1419│CONN_LIFECYCLE: conn=563 role=brain stream-subscriber stream=216 wall_ms=1784236050782 mono_ms=355015 event=stream-sub-attach stream=216 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1420│CONN_LIFECYCLE: conn=563 role=brain stream-subscriber stream=216 wall_ms=1784236050782 mono_ms=355015 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1421│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 1422│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n     │...\n 1433│CONN_LIFECYCLE: conn=566 role=brain wall_ms=1784236056111 mono_ms=360344 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1434│CONN_LIFECYCLE: conn=568 role=brain stream-subscriber stream=220 wall_ms=1784236056111 mono_ms=360344 event=stream-sub-attach stream=220 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1435│CONN_LIFECYCLE: conn=568 role=brain stream-subscriber stream=220 wall_ms=1784236056111 mono_ms=360344 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1436│CONN_LIFECYCLE: conn=569 role=brain wall_ms=1784236056112 mono_ms=360345 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1437│CONN_LIFECYCLE: conn=569 role=brain stream-subscriber stream=221 wall_ms=1784236056112 mono_ms=360345 event=stream-sub-attach stream=221 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1438│CONN_LIFECYCLE: conn=568 role=brain stream-subscriber stream=220 wall_ms=1784236056119 mono_ms=360352 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1439│CONN_LIFECYCLE: conn=570 role=brain wall_ms=1784236056120 mono_ms=360353 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1440│CONN_LIFECYCLE: conn=570 role=brain wall_ms=1784236056120 mono_ms=360353 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1446│CONN_LIFECYCLE: conn=573 role=brain wall_ms=1784236056615 mono_ms=360848 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1447│CONN_LIFECYCLE: conn=573 role=brain stream-subscriber stream=222 wall_ms=1784236056615 mono_ms=360848 event=stream-sub-attach stream=222 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1448│CONN_LIFECYCLE: conn=573 role=brain stream-subscriber stream=222 wall_ms=1784236056617 mono_ms=360850 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1449│CONN_LIFECYCLE: conn=574 role=brain wall_ms=1784236056617 mono_ms=360850 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1450│CONN_LIFECYCLE: conn=574 role=brain wall_ms=1784236056617 mono_ms=360850 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1457│CONN_LIFECYCLE: conn=578 role=brain wall_ms=1784236059028 mono_ms=363261 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1458│CONN_LIFECYCLE: conn=578 role=brain stream-subscriber stream=224 wall_ms=1784236059028 mono_ms=363261 event=stream-sub-attach stream=224 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1459│CONN_LIFECYCLE: conn=578 role=brain stream-subscriber stream=224 wall_ms=1784236059030 mono_ms=363262 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1460│CONN_LIFECYCLE: conn=580 role=brain wall_ms=1784236059030 mono_ms=363263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1461│CONN_LIFECYCLE: conn=580 role=brain wall_ms=1784236059030 mono_ms=363263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1462│CONN_LIFECYCLE: conn=579 role=brain wall_ms=1784236059032 mono_ms=363265 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1463│CONN_LIFECYCLE: conn=579 role=brain stream-subscriber stream=223 wall_ms=1784236059032 mono_ms=363265 event=stream-sub-attach stream=223 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1464│CONN_LIFECYCLE: conn=579 role=brain stream-subscriber stream=223 wall_ms=1784236059037 mono_ms=363270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1465│CONN_LIFECYCLE: conn=581 role=brain wall_ms=1784236059037 mono_ms=363270 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1466│CONN_LIFECYCLE: conn=581 role=brain wall_ms=1784236059037 mono_ms=363270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1472│CONN_LIFECYCLE: conn=584 role=brain wall_ms=1784236064054 mono_ms=368287 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1473│CONN_LIFECYCLE: conn=585 role=brain stream-subscriber stream=225 wall_ms=1784236064054 mono_ms=368287 event=stream-sub-attach stream=225 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1474│CONN_LIFECYCLE: conn=585 role=brain stream-subscriber stream=225 wall_ms=1784236064054 mono_ms=368287 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1475│CONN_LIFECYCLE: conn=586 role=brain stream-subscriber stream=226 wall_ms=1784236064054 mono_ms=368287 event=stream-sub-attach stream=226 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1476│CONN_LIFECYCLE: conn=586 role=brain stream-subscriber stream=226 wall_ms=1784236064054 mono_ms=368287 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1477│CONN_LIFECYCLE: conn=585 role=brain stream-subscriber stream=225 wall_ms=1784236064059 mono_ms=368292 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1478│CONN_LIFECYCLE: conn=587 role=brain wall_ms=1784236064059 mono_ms=368292 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1483│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n*1484│CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784236066285 mono_ms=370518 event=stream-sub-attach stream=228 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1485│CONN_LIFECYCLE: conn=589 role=brain wall_ms=1784236066699 mono_ms=370932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1486│CONN_LIFECYCLE: conn=589 role=brain wall_ms=1784236066699 mono_ms=370932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1487│CONN_LIFECYCLE: conn=590 role=brain wall_ms=1784236071094 mono_ms=375327 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1489│CONN_LIFECYCLE: conn=591 role=brain wall_ms=1784236071096 mono_ms=375329 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1490│CONN_LIFECYCLE: conn=591 role=brain stream-subscriber stream=231 wall_ms=1784236071096 mono_ms=375329 event=stream-sub-attach stream=231 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1491│CONN_LIFECYCLE: conn=591 role=brain stream-subscriber stream=231 wall_ms=1784236071105 mono_ms=375338 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1492│CONN_LIFECYCLE: conn=592 role=brain wall_ms=1784236071105 mono_ms=375338 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1493│CONN_LIFECYCLE: conn=592 role=brain wall_ms=1784236071105 mono_ms=375338 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1496│CONN_LIFECYCLE: conn=594 role=brain wall_ms=1784236071699 mono_ms=375932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1497│CONN_LIFECYCLE: conn=594 role=brain stream-subscriber stream=232 wall_ms=1784236071699 mono_ms=375932 event=stream-sub-attach stream=232 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1498│CONN_LIFECYCLE: conn=594 role=brain stream-subscriber stream=232 wall_ms=1784236071701 mono_ms=375934 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1499│CONN_LIFECYCLE: conn=595 role=brain wall_ms=1784236071701 mono_ms=375934 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1500│CONN_LIFECYCLE: conn=595 role=brain wall_ms=1784236071701 mono_ms=375934 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1507│CONN_LIFECYCLE: conn=600 role=brain wall_ms=1784236074113 mono_ms=378345 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1508│CONN_LIFECYCLE: conn=600 role=brain stream-subscriber stream=233 wall_ms=1784236074113 mono_ms=378346 event=stream-sub-attach stream=233 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1509│CONN_LIFECYCLE: conn=600 role=brain stream-subscriber stream=233 wall_ms=1784236074117 mono_ms=378350 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1510│CONN_LIFECYCLE: conn=601 role=brain wall_ms=1784236074117 mono_ms=378350 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1511│CONN_LIFECYCLE: conn=601 role=brain wall_ms=1784236074117 mono_ms=378350 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1512│CONN_LIFECYCLE: conn=599 role=brain wall_ms=1784236074123 mono_ms=378356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1513│CONN_LIFECYCLE: conn=599 role=brain stream-subscriber stream=234 wall_ms=1784236074123 mono_ms=378356 event=stream-sub-attach stream=234 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1514│CONN_LIFECYCLE: conn=599 role=brain stream-subscriber stream=234 wall_ms=1784236074125 mono_ms=378358 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1515│CONN_LIFECYCLE: conn=602 role=brain wall_ms=1784236074125 mono_ms=378358 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1516│CONN_LIFECYCLE: conn=602 role=brain wall_ms=1784236074125 mono_ms=378358 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1525│CONN_LIFECYCLE: conn=604 role=brain wall_ms=1784236081149 mono_ms=385382 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1526│CONN_LIFECYCLE: conn=605 role=brain stream-subscriber stream=235 wall_ms=1784236081149 mono_ms=385382 event=stream-sub-attach stream=235 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1527│CONN_LIFECYCLE: conn=605 role=brain stream-subscriber stream=235 wall_ms=1784236081149 mono_ms=385382 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1528│CONN_LIFECYCLE: conn=605 role=brain stream-subscriber stream=235 wall_ms=1784236081155 mono_ms=385388 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1529│CONN_LIFECYCLE: conn=606 role=brain wall_ms=1784236081155 mono_ms=385388 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1534│CONN_LIFECYCLE: conn=608 role=brain wall_ms=1784236084870 mono_ms=389102 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1535│CONN_LIFECYCLE: conn=609 role=brain stream-subscriber stream=236 wall_ms=1784236084870 mono_ms=389103 event=stream-sub-attach stream=236 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1536│CONN_LIFECYCLE: conn=609 role=brain stream-subscriber stream=236 wall_ms=1784236084870 mono_ms=389103 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1537│CONN_LIFECYCLE: conn=609 role=brain stream-subscriber stream=236 wall_ms=1784236084870 mono_ms=389103 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1538│CONN_LIFECYCLE: conn=610 role=brain wall_ms=1784236084870 mono_ms=389103 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n     │...\n 1543│CONN_LIFECYCLE: conn=612 role=brain wall_ms=1784236086178 mono_ms=390411 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*1544│CONN_LIFECYCLE: conn=613 role=brain stream-subscriber stream=237 wall_ms=1784236086178 mono_ms=390411 event=stream-sub-attach stream=237 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1545│CONN_LIFECYCLE: conn=613 role=brain stream-subscriber stream=237 wall_ms=1784236086178 mono_ms=390411 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1546│CONN_LIFECYCLE: conn=614 role=brain wall_ms=1784236086179 mono_ms=390412 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1547│CONN_LIFECYCLE: conn=614 role=brain stream-subscriber stream=238 wall_ms=1784236086179 mono_ms=390412 event=stream-sub-attach stream=238 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1548│CONN_LIFECYCLE: conn=613 role=brain stream-subscriber stream=237 wall_ms=1784236086184 mono_ms=390417 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1549│CONN_LIFECYCLE: conn=615 role=brain wall_ms=1784236086184 mono_ms=390417 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 1550│CONN_LIFECYCLE: conn=615 role=brain wall_ms=1784236086185 mono_ms=390417 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]","truncation":{"content":" 23|CONN_LIFECYCLE: conn=4 role=brain wall_ms=1784235696020 mono_ms=254 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24|CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235696209 mono_ms=443 event=controller-attach session=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 25|=== spt broker stderr — generation 0 — pid 82868 ===\n 26|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 27|BROKER_BIND_FAIL: Access is denied. (os error 5)\n...\n 32|PUMP_IPC_READER: spawned\n*33|CONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235696416 mono_ms=650 event=presence-sub-attach from_seq=18446744073709551615 [REQ-CONN-POISON-ATTRIBUTION]\n 34|CONN_LIFECYCLE: conn=8 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 35|CONN_LIFECYCLE: conn=9 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 36|CONN_LIFECYCLE: conn=10 role=brain wall_ms=1784235696666 mono_ms=899 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 50|CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=transport-close poisoned=true timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*51|CONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698228 mono_ms=2462 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 52|CONTROL_REAP_NO_SESSION:doyle: cleared stale controlled/driven_by (no broker session)\n 53|CONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698260 mono_ms=2493 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 54|ENDPOINT_AUTOSTART:lia adapter=claude-spt session=eedd44363fd38392 pid=50824 (startup default)\n...\n 62|CONTROL_REAP_NO_SESSION:perri: cleared stale controlled/driven_by (no broker session)\n*63|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698348 mono_ms=2582 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 64|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698363 mono_ms=2597 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 65|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698366 mono_ms=2600 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 66|WAKE_RESUME:deployah: resuming session 89cc9038-e5d9-429e-b4a9-40fba8af71ee under claude-spt:ccs (pid 40376) — online at bind\n...\n 68|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*69|CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698404 mono_ms=2638 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 70|CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698419 mono_ms=2653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 71|CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698422 mono_ms=2656 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 72|WAKE_RESUME:doyle: resuming session a2fdb848-6643-4e10-b221-6baee7e91b7b under claude-spt:ccs (pid 60892) — online at bind\n...\n 78|WAKE_RESUME:lia: resuming session 9e0df17e-f217-4446-97a4-f528a56024ba under claude-spt (pid 50824) — online at bind\n*79|CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698567 mono_ms=2801 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 80|CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698582 mono_ms=2816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 81|CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698586 mono_ms=2819 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 82|WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 58672) — online at bind\n...\n 88|CONN_LIFECYCLE: conn=24 role=brain wall_ms=1784235698717 mono_ms=2950 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*89|CONN_LIFECYCLE: conn=23 role=brain stream-subscriber stream=2 wall_ms=1784235698735 mono_ms=2968 event=stream-sub-attach stream=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*90|CONN_LIFECYCLE: conn=24 role=brain stream-subscriber stream=4 wall_ms=1784235698738 mono_ms=2972 event=stream-sub-attach stream=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*91|CONN_LIFECYCLE: conn=22 role=brain stream-subscriber stream=6 wall_ms=1784235698741 mono_ms=2975 event=stream-sub-attach stream=6 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*92|CONN_LIFECYCLE: conn=21 role=brain stream-subscriber stream=8 wall_ms=1784235698744 mono_ms=2978 event=stream-sub-attach stream=8 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 93|CONN_LIFECYCLE: conn=25 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 94|CONN_LIFECYCLE: conn=26 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 95|CONN_LIFECYCLE: conn=27 role=brain wall_ms=1784235698824 mono_ms=3058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 102|CONN_LIFECYCLE: conn=30 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*103|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=7 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*104|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 105|CONN_LIFECYCLE: conn=32 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 106|CONN_LIFECYCLE: conn=31 role=brain wall_ms=1784235698825 mono_ms=3059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*107|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=1 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*108|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 wall_ms=1784235698825 mono_ms=3059 event=stream-sub-attach stream=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*109|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*110|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*111|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*112|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698825 mono_ms=3059 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 113|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698848 mono_ms=3082 event=controller-replaced session=5 new_conn=29 [REQ-CONN-POISON-ATTRIBUTION]\n*114|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 115|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 116|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698862 mono_ms=3096 event=controller-replaced session=2 new_conn=30 [REQ-CONN-POISON-ATTRIBUTION]\n*117|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 118|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 119|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=3 new_conn=32 [REQ-CONN-POISON-ATTRIBUTION]\n*120|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 121|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 122|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=4 new_conn=31 [REQ-CONN-POISON-ATTRIBUTION]\n*123|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 124|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 125|CONN_LIFECYCLE: conn=37 role=brain wall_ms=1784235703719 mono_ms=7953 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 126|CONN_LIFECYCLE: conn=37 role=brain wall_ms=1784235703719 mono_ms=7953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 137|CONN_LIFECYCLE: conn=6 role=brain wall_ms=1784235719089 mono_ms=23323 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*138|CONN_LIFECYCLE: conn=7 role=brain presence-subscriber wall_ms=1784235719115 mono_ms=23349 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 139|CONN_LIFECYCLE: conn=42 role=brain wall_ms=1784235719515 mono_ms=23749 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 140|CONN_LIFECYCLE: conn=43 role=brain wall_ms=1784235719515 mono_ms=23749 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 141|CONN_LIFECYCLE: conn=42 role=brain wall_ms=1784235719516 mono_ms=23749 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 142|CONN_LIFECYCLE: conn=43 role=brain wall_ms=1784235719516 mono_ms=23749 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*143|CONN_LIFECYCLE: conn=44 role=brain stream-subscriber stream=11 wall_ms=1784235719516 mono_ms=23750 event=stream-sub-attach stream=11 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 144|CONN_LIFECYCLE: conn=44 role=brain stream-subscriber stream=11 wall_ms=1784235719516 mono_ms=23750 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 145|CONN_LIFECYCLE: conn=45 role=brain wall_ms=1784235719517 mono_ms=23751 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*146|CONN_LIFECYCLE: conn=45 role=brain stream-subscriber stream=12 wall_ms=1784235719517 mono_ms=23751 event=stream-sub-attach stream=12 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 147|CONN_LIFECYCLE: conn=44 role=brain stream-subscriber stream=11 wall_ms=1784235720289 mono_ms=24523 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 148|CONN_LIFECYCLE: conn=46 role=brain wall_ms=1784235720289 mono_ms=24523 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 149|CONN_LIFECYCLE: conn=46 role=brain wall_ms=1784235720289 mono_ms=24523 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 152|CONN_LIFECYCLE: conn=47 role=brain wall_ms=1784235720291 mono_ms=24525 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*153|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 wall_ms=1784235720389 mono_ms=24623 event=stream-sub-attach stream=13 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 154|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 155|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n 156|PAIR_MEET_UP:BIGNET step=59474524 id=9ae4531e8fa8f24c6f2b14198d659bbce40525de8d0654e24fc04c3f85c7e271 addr=EndpointAddr { id: PublicKey(9ae4531e8fa8f24c6f2b14198d659bbce40525de8d0654e24fc04c3f85c7e271), addrs: {Ip(100.68.35.65:52538), Ip(192.168.1.81:52538)} }\n 157|PAIR_MEET_UP:SPT_DEV step=59474524 id=1c4e8c1f6ffa63f6e83891c2c71b7cf504b78d4438d0fb4a4538a88dda04018b addr=EndpointAddr { id: PublicKey(1c4e8c1f6ffa63f6e83891c2c71b7cf504b78d4438d0fb4a4538a88dda04018b), addrs: {Ip(100.68.35.65:52544), Ip(192.168.1.81:52544)} }\n*158|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 wall_ms=1784235721418 mono_ms=25652 event=stream-sub-attach stream=14 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*159|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 wall_ms=1784235721575 mono_ms=25808 event=stream-sub-attach stream=17 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*160|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 wall_ms=1784235721949 mono_ms=26183 event=stream-sub-attach stream=20 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 161|CONN_LIFECYCLE: conn=48 role=brain wall_ms=1784235723941 mono_ms=28174 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 162|CONN_LIFECYCLE: conn=48 role=brain wall_ms=1784235723941 mono_ms=28174 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 163|CONN_LIFECYCLE: conn=49 role=brain wall_ms=1784235728987 mono_ms=33221 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 167|CONN_LIFECYCLE: conn=50 role=brain wall_ms=1784235729828 mono_ms=34062 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*168|CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729828 mono_ms=34062 event=stream-sub-attach stream=21 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 169|CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729828 mono_ms=34062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 170|CONN_LIFECYCLE: conn=51 role=brain stream-subscriber stream=21 wall_ms=1784235729829 mono_ms=34062 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 171|CONN_LIFECYCLE: conn=52 role=brain wall_ms=1784235729829 mono_ms=34062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 178|CONN_LIFECYCLE: conn=54 role=brain wall_ms=1784235730129 mono_ms=34362 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*179|CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=22 wall_ms=1784235730129 mono_ms=34363 event=stream-sub-attach stream=22 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 180|CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=22 wall_ms=1784235730129 mono_ms=34363 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 181|CONN_LIFECYCLE: conn=56 role=brain wall_ms=1784235730130 mono_ms=34363 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*182|CONN_LIFECYCLE: conn=56 role=brain stream-subscriber stream=23 wall_ms=1784235730130 mono_ms=34363 event=stream-sub-attach stream=23 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 183|CONN_LIFECYCLE: conn=55 role=brain stream-subscriber stream=22 wall_ms=1784235730134 mono_ms=34368 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 184|CONN_LIFECYCLE: conn=57 role=brain wall_ms=1784235730134 mono_ms=34368 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 185|CONN_LIFECYCLE: conn=57 role=brain wall_ms=1784235730134 mono_ms=34368 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 190|CONN_LIFECYCLE: conn=59 role=brain wall_ms=1784235730531 mono_ms=34764 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*191|CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=24 wall_ms=1784235730531 mono_ms=34765 event=stream-sub-attach stream=24 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 192|CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=24 wall_ms=1784235730531 mono_ms=34765 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 193|CONN_LIFECYCLE: conn=60 role=brain stream-subscriber stream=24 wall_ms=1784235730531 mono_ms=34765 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 194|CONN_LIFECYCLE: conn=61 role=brain wall_ms=1784235730531 mono_ms=34765 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 197|CONN_LIFECYCLE: conn=62 role=brain wall_ms=1784235730631 mono_ms=34865 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*198|CONN_LIFECYCLE: conn=63 role=brain stream-subscriber stream=25 wall_ms=1784235730631 mono_ms=34865 event=stream-sub-attach stream=25 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 199|CONN_LIFECYCLE: conn=63 role=brain stream-subscriber stream=25 wall_ms=1784235730632 mono_ms=34865 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 200|CONN_LIFECYCLE: conn=63 role=brain stream-subscriber stream=25 wall_ms=1784235730632 mono_ms=34865 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 201|CONN_LIFECYCLE: conn=64 role=brain wall_ms=1784235730632 mono_ms=34866 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 210|CONN_LIFECYCLE: conn=68 role=brain wall_ms=1784235730732 mono_ms=34965 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*211|CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=28 wall_ms=1784235730732 mono_ms=34966 event=stream-sub-attach stream=28 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*212|CONN_LIFECYCLE: conn=71 role=brain stream-subscriber stream=26 wall_ms=1784235730732 mono_ms=34966 event=stream-sub-attach stream=26 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 213|CONN_LIFECYCLE: conn=71 role=brain stream-subscriber stream=26 wall_ms=1784235730732 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 214|CONN_LIFECYCLE: conn=70 role=brain stream-subscriber stream=28 wall_ms=1784235730732 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 215|CONN_LIFECYCLE: conn=72 role=brain wall_ms=1784235730733 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 216|CONN_LIFECYCLE: conn=69 role=brain wall_ms=1784235730733 mono_ms=34966 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*217|CONN_LIFECYCLE: conn=72 role=brain stream-subscriber stream=29 wall_ms=1784235730733 mono_ms=34967 event=stream-sub-attach stream=29 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*218|CONN_LIFECYCLE: conn=69 role=brain stream-subscriber stream=27 wall_ms=1784235730733 mono_ms=34967 event=stream-sub-attach stream=27 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 219|CONN_LIFECYCLE: conn=71 role=brain stream-subscriber stream=26 wall_ms=1784235730737 mono_ms=34971 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 220|CONN_LIFECYCLE: conn=73 role=brain wall_ms=1784235730737 mono_ms=34971 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 221|CONN_LIFECYCLE: conn=73 role=brain wall_ms=1784235730737 mono_ms=34971 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 232|CONN_LIFECYCLE: conn=77 role=brain wall_ms=1784235731535 mono_ms=35769 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*233|CONN_LIFECYCLE: conn=78 role=brain stream-subscriber stream=30 wall_ms=1784235731536 mono_ms=35769 event=stream-sub-attach stream=30 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 234|CONN_LIFECYCLE: conn=78 role=brain stream-subscriber stream=30 wall_ms=1784235731536 mono_ms=35769 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 235|CONN_LIFECYCLE: conn=79 role=brain wall_ms=1784235731636 mono_ms=35870 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 236|CONN_LIFECYCLE: conn=79 role=brain wall_ms=1784235731636 mono_ms=35870 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*237|CONN_LIFECYCLE: conn=80 role=brain stream-subscriber stream=31 wall_ms=1784235731637 mono_ms=35870 event=stream-sub-attach stream=31 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 238|CONN_LIFECYCLE: conn=80 role=brain stream-subscriber stream=31 wall_ms=1784235731637 mono_ms=35870 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 239|CONN_LIFECYCLE: conn=80 role=brain stream-subscriber stream=31 wall_ms=1784235731637 mono_ms=35871 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 240|CONN_LIFECYCLE: conn=81 role=brain wall_ms=1784235731637 mono_ms=35871 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 246|CONN_LIFECYCLE: conn=84 role=brain wall_ms=1784235734549 mono_ms=38783 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*247|CONN_LIFECYCLE: conn=84 role=brain stream-subscriber stream=32 wall_ms=1784235734549 mono_ms=38783 event=stream-sub-attach stream=32 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 248|CONN_LIFECYCLE: conn=84 role=brain stream-subscriber stream=32 wall_ms=1784235734558 mono_ms=38792 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 249|CONN_LIFECYCLE: conn=85 role=brain wall_ms=1784235734558 mono_ms=38792 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 250|CONN_LIFECYCLE: conn=85 role=brain wall_ms=1784235734558 mono_ms=38792 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 254|CONN_LIFECYCLE: conn=87 role=brain wall_ms=1784235739768 mono_ms=44002 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*255|CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=33 wall_ms=1784235739768 mono_ms=44002 event=stream-sub-attach stream=33 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 256|CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=33 wall_ms=1784235739768 mono_ms=44002 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 257|CONN_LIFECYCLE: conn=88 role=brain stream-subscriber stream=33 wall_ms=1784235739769 mono_ms=44002 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 258|CONN_LIFECYCLE: conn=89 role=brain wall_ms=1784235739769 mono_ms=44002 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 264|CONN_LIFECYCLE: conn=92 role=brain wall_ms=1784235745292 mono_ms=49526 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*265|CONN_LIFECYCLE: conn=92 role=brain stream-subscriber stream=34 wall_ms=1784235745292 mono_ms=49526 event=stream-sub-attach stream=34 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 266|CONN_LIFECYCLE: conn=92 role=brain stream-subscriber stream=34 wall_ms=1784235745294 mono_ms=49528 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 267|CONN_LIFECYCLE: conn=93 role=brain wall_ms=1784235745294 mono_ms=49528 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 268|CONN_LIFECYCLE: conn=93 role=brain wall_ms=1784235745294 mono_ms=49528 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 271|CONN_LIFECYCLE: conn=94 role=brain wall_ms=1784235747691 mono_ms=51925 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*272|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 wall_ms=1784235747807 mono_ms=52041 event=stream-sub-attach stream=38 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 273|CONN_LIFECYCLE: conn=95 role=brain wall_ms=1784235749167 mono_ms=53400 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 274|CONN_LIFECYCLE: conn=95 role=brain wall_ms=1784235749167 mono_ms=53401 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 275|CONN_LIFECYCLE: conn=96 role=brain wall_ms=1784235749710 mono_ms=53944 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 278|CONN_LIFECYCLE: conn=97 role=brain wall_ms=1784235749710 mono_ms=53944 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*279|CONN_LIFECYCLE: conn=98 role=brain stream-subscriber stream=39 wall_ms=1784235749710 mono_ms=53944 event=stream-sub-attach stream=39 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 280|CONN_LIFECYCLE: conn=98 role=brain stream-subscriber stream=39 wall_ms=1784235749710 mono_ms=53944 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 281|CONN_LIFECYCLE: conn=99 role=brain wall_ms=1784235749712 mono_ms=53945 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*282|CONN_LIFECYCLE: conn=99 role=brain stream-subscriber stream=40 wall_ms=1784235749712 mono_ms=53945 event=stream-sub-attach stream=40 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 283|CONN_LIFECYCLE: conn=98 role=brain stream-subscriber stream=39 wall_ms=1784235749720 mono_ms=53953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 284|CONN_LIFECYCLE: conn=100 role=brain wall_ms=1784235749720 mono_ms=53953 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 285|CONN_LIFECYCLE: conn=100 role=brain wall_ms=1784235749720 mono_ms=53953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 299|CONN_LIFECYCLE: conn=106 role=brain wall_ms=1784235755838 mono_ms=60072 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*300|CONN_LIFECYCLE: conn=106 role=brain stream-subscriber stream=42 wall_ms=1784235755838 mono_ms=60072 event=stream-sub-attach stream=42 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 301|CONN_LIFECYCLE: conn=106 role=brain stream-subscriber stream=42 wall_ms=1784235755840 mono_ms=60074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 302|CONN_LIFECYCLE: conn=107 role=brain wall_ms=1784235755840 mono_ms=60074 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 303|CONN_LIFECYCLE: conn=107 role=brain wall_ms=1784235755840 mono_ms=60074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 304|CONN_LIFECYCLE: conn=105 role=brain wall_ms=1784235755851 mono_ms=60085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*305|CONN_LIFECYCLE: conn=105 role=brain stream-subscriber stream=41 wall_ms=1784235755851 mono_ms=60085 event=stream-sub-attach stream=41 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 306|CONN_LIFECYCLE: conn=105 role=brain stream-subscriber stream=41 wall_ms=1784235755855 mono_ms=60089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 307|CONN_LIFECYCLE: conn=108 role=brain wall_ms=1784235755855 mono_ms=60089 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 308|CONN_LIFECYCLE: conn=108 role=brain wall_ms=1784235755855 mono_ms=60089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 316|CONN_LIFECYCLE: conn=111 role=brain wall_ms=1784235760357 mono_ms=64590 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*317|CONN_LIFECYCLE: conn=111 role=brain stream-subscriber stream=46 wall_ms=1784235760357 mono_ms=64591 event=stream-sub-attach stream=46 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 318|CONN_LIFECYCLE: conn=111 role=brain stream-subscriber stream=46 wall_ms=1784235760359 mono_ms=64592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 319|CONN_LIFECYCLE: conn=112 role=brain wall_ms=1784235760359 mono_ms=64593 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 320|CONN_LIFECYCLE: conn=112 role=brain wall_ms=1784235760359 mono_ms=64593 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 322|CONN_LIFECYCLE: conn=113 role=brain wall_ms=1784235762063 mono_ms=66297 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*323|CONN_LIFECYCLE: conn=114 role=brain stream-subscriber stream=47 wall_ms=1784235762063 mono_ms=66297 event=stream-sub-attach stream=47 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 324|CONN_LIFECYCLE: conn=114 role=brain stream-subscriber stream=47 wall_ms=1784235762063 mono_ms=66297 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 325|CONN_LIFECYCLE: conn=114 role=brain stream-subscriber stream=47 wall_ms=1784235762068 mono_ms=66302 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 326|CONN_LIFECYCLE: conn=115 role=brain wall_ms=1784235762068 mono_ms=66302 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 332|CONN_LIFECYCLE: conn=118 role=brain wall_ms=1784235764677 mono_ms=68910 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*333|CONN_LIFECYCLE: conn=118 role=brain stream-subscriber stream=48 wall_ms=1784235764677 mono_ms=68910 event=stream-sub-attach stream=48 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 334|CONN_LIFECYCLE: conn=118 role=brain stream-subscriber stream=48 wall_ms=1784235764686 mono_ms=68920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 335|CONN_LIFECYCLE: conn=119 role=brain wall_ms=1784235764686 mono_ms=68920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 336|CONN_LIFECYCLE: conn=119 role=brain wall_ms=1784235764686 mono_ms=68920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 348|CONN_LIFECYCLE: conn=124 role=brain wall_ms=1784235770903 mono_ms=75136 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*349|CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=49 wall_ms=1784235770903 mono_ms=75136 event=stream-sub-attach stream=49 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 350|CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=49 wall_ms=1784235770903 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*351|CONN_LIFECYCLE: conn=128 role=brain stream-subscriber stream=51 wall_ms=1784235770903 mono_ms=75136 event=stream-sub-attach stream=51 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 352|CONN_LIFECYCLE: conn=128 role=brain stream-subscriber stream=51 wall_ms=1784235770903 mono_ms=75136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 353|CONN_LIFECYCLE: conn=125 role=brain wall_ms=1784235770904 mono_ms=75138 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*354|CONN_LIFECYCLE: conn=125 role=brain stream-subscriber stream=50 wall_ms=1784235770904 mono_ms=75138 event=stream-sub-attach stream=50 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 355|CONN_LIFECYCLE: conn=126 role=brain stream-subscriber stream=49 wall_ms=1784235770908 mono_ms=75142 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 356|CONN_LIFECYCLE: conn=129 role=brain wall_ms=1784235770908 mono_ms=75142 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 357|CONN_LIFECYCLE: conn=129 role=brain wall_ms=1784235770908 mono_ms=75142 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 361|CONN_LIFECYCLE: conn=127 role=brain wall_ms=1784235770919 mono_ms=75153 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*362|CONN_LIFECYCLE: conn=127 role=brain stream-subscriber stream=52 wall_ms=1784235770919 mono_ms=75153 event=stream-sub-attach stream=52 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 363|CONN_LIFECYCLE: conn=125 role=brain stream-subscriber stream=50 wall_ms=1784235770921 mono_ms=75155 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 364|CONN_LIFECYCLE: conn=131 role=brain wall_ms=1784235770921 mono_ms=75155 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 365|CONN_LIFECYCLE: conn=131 role=brain wall_ms=1784235770921 mono_ms=75155 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 373|CONN_LIFECYCLE: conn=135 role=brain wall_ms=1784235775522 mono_ms=79756 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*374|CONN_LIFECYCLE: conn=135 role=brain stream-subscriber stream=53 wall_ms=1784235775522 mono_ms=79756 event=stream-sub-attach stream=53 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 375|CONN_LIFECYCLE: conn=135 role=brain stream-subscriber stream=53 wall_ms=1784235775524 mono_ms=79758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 376|CONN_LIFECYCLE: conn=136 role=brain wall_ms=1784235775524 mono_ms=79758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 377|CONN_LIFECYCLE: conn=136 role=brain wall_ms=1784235775524 mono_ms=79758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 383|CONN_LIFECYCLE: conn=139 role=brain wall_ms=1784235779741 mono_ms=83974 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*384|CONN_LIFECYCLE: conn=140 role=brain stream-subscriber stream=54 wall_ms=1784235779741 mono_ms=83975 event=stream-sub-attach stream=54 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 385|CONN_LIFECYCLE: conn=140 role=brain stream-subscriber stream=54 wall_ms=1784235779741 mono_ms=83975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 386|CONN_LIFECYCLE: conn=141 role=brain wall_ms=1784235779742 mono_ms=83975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*387|CONN_LIFECYCLE: conn=141 role=brain stream-subscriber stream=55 wall_ms=1784235779742 mono_ms=83975 event=stream-sub-attach stream=55 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 388|CONN_LIFECYCLE: conn=140 role=brain stream-subscriber stream=54 wall_ms=1784235779748 mono_ms=83982 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 389|CONN_LIFECYCLE: conn=142 role=brain wall_ms=1784235779748 mono_ms=83982 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 390|CONN_LIFECYCLE: conn=142 role=brain wall_ms=1784235779748 mono_ms=83982 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 404|CONN_LIFECYCLE: conn=148 role=brain wall_ms=1784235785968 mono_ms=90202 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*405|CONN_LIFECYCLE: conn=148 role=brain stream-subscriber stream=56 wall_ms=1784235785968 mono_ms=90202 event=stream-sub-attach stream=56 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 406|CONN_LIFECYCLE: conn=148 role=brain stream-subscriber stream=56 wall_ms=1784235785973 mono_ms=90206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 407|CONN_LIFECYCLE: conn=149 role=brain wall_ms=1784235785973 mono_ms=90206 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 408|CONN_LIFECYCLE: conn=149 role=brain wall_ms=1784235785973 mono_ms=90206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 409|CONN_LIFECYCLE: conn=147 role=brain wall_ms=1784235785979 mono_ms=90213 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*410|CONN_LIFECYCLE: conn=147 role=brain stream-subscriber stream=57 wall_ms=1784235785979 mono_ms=90213 event=stream-sub-attach stream=57 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 411|CONN_LIFECYCLE: conn=147 role=brain stream-subscriber stream=57 wall_ms=1784235785981 mono_ms=90214 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 412|CONN_LIFECYCLE: conn=150 role=brain wall_ms=1784235785981 mono_ms=90214 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 413|CONN_LIFECYCLE: conn=150 role=brain wall_ms=1784235785981 mono_ms=90214 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 418|CONN_LIFECYCLE: conn=153 role=brain wall_ms=1784235790488 mono_ms=94722 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*419|CONN_LIFECYCLE: conn=153 role=brain stream-subscriber stream=61 wall_ms=1784235790488 mono_ms=94722 event=stream-sub-attach stream=61 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 420|CONN_LIFECYCLE: conn=153 role=brain stream-subscriber stream=61 wall_ms=1784235790490 mono_ms=94724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 421|CONN_LIFECYCLE: conn=154 role=brain wall_ms=1784235790490 mono_ms=94724 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 422|CONN_LIFECYCLE: conn=154 role=brain wall_ms=1784235790490 mono_ms=94724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 424|CONN_LIFECYCLE: conn=155 role=brain wall_ms=1784235791491 mono_ms=95725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*425|CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=62 wall_ms=1784235791491 mono_ms=95725 event=stream-sub-attach stream=62 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 426|CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=62 wall_ms=1784235791491 mono_ms=95725 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 427|CONN_LIFECYCLE: conn=156 role=brain stream-subscriber stream=62 wall_ms=1784235791492 mono_ms=95725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 428|CONN_LIFECYCLE: conn=157 role=brain wall_ms=1784235791492 mono_ms=95725 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 431|CONN_LIFECYCLE: conn=158 role=brain wall_ms=1784235791592 mono_ms=95825 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*432|CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=63 wall_ms=1784235791592 mono_ms=95825 event=stream-sub-attach stream=63 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 433|CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=63 wall_ms=1784235791592 mono_ms=95825 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 434|CONN_LIFECYCLE: conn=159 role=brain stream-subscriber stream=63 wall_ms=1784235791592 mono_ms=95826 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 435|CONN_LIFECYCLE: conn=160 role=brain wall_ms=1784235791592 mono_ms=95826 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 438|CONN_LIFECYCLE: conn=161 role=brain wall_ms=1784235792797 mono_ms=97031 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*439|CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=64 wall_ms=1784235792798 mono_ms=97031 event=stream-sub-attach stream=64 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 440|CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=64 wall_ms=1784235792798 mono_ms=97031 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 441|CONN_LIFECYCLE: conn=162 role=brain stream-subscriber stream=64 wall_ms=1784235792798 mono_ms=97031 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 442|CONN_LIFECYCLE: conn=163 role=brain wall_ms=1784235792798 mono_ms=97032 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 445|CONN_LIFECYCLE: conn=164 role=brain wall_ms=1784235793099 mono_ms=97332 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*446|CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=65 wall_ms=1784235793099 mono_ms=97333 event=stream-sub-attach stream=65 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 447|CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=65 wall_ms=1784235793099 mono_ms=97333 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 448|CONN_LIFECYCLE: conn=165 role=brain stream-subscriber stream=65 wall_ms=1784235793103 mono_ms=97337 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 449|CONN_LIFECYCLE: conn=166 role=brain wall_ms=1784235793103 mono_ms=97337 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 455|CONN_LIFECYCLE: conn=169 role=brain wall_ms=1784235794808 mono_ms=99041 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*456|CONN_LIFECYCLE: conn=169 role=brain stream-subscriber stream=66 wall_ms=1784235794808 mono_ms=99041 event=stream-sub-attach stream=66 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 457|CONN_LIFECYCLE: conn=169 role=brain stream-subscriber stream=66 wall_ms=1784235794817 mono_ms=99050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 458|CONN_LIFECYCLE: conn=170 role=brain wall_ms=1784235794817 mono_ms=99050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 459|CONN_LIFECYCLE: conn=170 role=brain wall_ms=1784235794817 mono_ms=99050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 465|CONN_LIFECYCLE: conn=172 role=brain wall_ms=1784235800029 mono_ms=104263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*466|CONN_LIFECYCLE: conn=173 role=brain stream-subscriber stream=67 wall_ms=1784235800030 mono_ms=104263 event=stream-sub-attach stream=67 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 467|CONN_LIFECYCLE: conn=173 role=brain stream-subscriber stream=67 wall_ms=1784235800030 mono_ms=104263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 468|CONN_LIFECYCLE: conn=173 role=brain stream-subscriber stream=67 wall_ms=1784235800030 mono_ms=104263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 469|CONN_LIFECYCLE: conn=174 role=brain wall_ms=1784235800030 mono_ms=104263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 478|CONN_LIFECYCLE: conn=178 role=brain wall_ms=1784235801135 mono_ms=105368 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*479|CONN_LIFECYCLE: conn=180 role=brain stream-subscriber stream=68 wall_ms=1784235801135 mono_ms=105369 event=stream-sub-attach stream=68 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*480|CONN_LIFECYCLE: conn=182 role=brain stream-subscriber stream=70 wall_ms=1784235801135 mono_ms=105369 event=stream-sub-attach stream=70 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 481|CONN_LIFECYCLE: conn=182 role=brain stream-subscriber stream=70 wall_ms=1784235801135 mono_ms=105369 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 482|CONN_LIFECYCLE: conn=180 role=brain stream-subscriber stream=68 wall_ms=1784235801135 mono_ms=105369 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 483|CONN_LIFECYCLE: conn=179 role=brain wall_ms=1784235801136 mono_ms=105370 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 484|CONN_LIFECYCLE: conn=181 role=brain wall_ms=1784235801136 mono_ms=105370 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*485|CONN_LIFECYCLE: conn=179 role=brain stream-subscriber stream=71 wall_ms=1784235801136 mono_ms=105370 event=stream-sub-attach stream=71 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*486|CONN_LIFECYCLE: conn=181 role=brain stream-subscriber stream=69 wall_ms=1784235801136 mono_ms=105370 event=stream-sub-attach stream=69 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 487|CONN_LIFECYCLE: conn=179 role=brain stream-subscriber stream=71 wall_ms=1784235801138 mono_ms=105372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 488|CONN_LIFECYCLE: conn=183 role=brain wall_ms=1784235801139 mono_ms=105372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 489|CONN_LIFECYCLE: conn=183 role=brain wall_ms=1784235801139 mono_ms=105372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 497|CONN_LIFECYCLE: conn=187 role=brain wall_ms=1784235805555 mono_ms=109789 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*498|CONN_LIFECYCLE: conn=187 role=brain stream-subscriber stream=72 wall_ms=1784235805555 mono_ms=109789 event=stream-sub-attach stream=72 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 499|CONN_LIFECYCLE: conn=187 role=brain stream-subscriber stream=72 wall_ms=1784235805557 mono_ms=109791 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 500|CONN_LIFECYCLE: conn=188 role=brain wall_ms=1784235805557 mono_ms=109791 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 501|CONN_LIFECYCLE: conn=188 role=brain wall_ms=1784235805558 mono_ms=109791 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 507|CONN_LIFECYCLE: conn=191 role=brain wall_ms=1784235809976 mono_ms=114210 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*508|CONN_LIFECYCLE: conn=192 role=brain stream-subscriber stream=73 wall_ms=1784235809976 mono_ms=114210 event=stream-sub-attach stream=73 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 509|CONN_LIFECYCLE: conn=192 role=brain stream-subscriber stream=73 wall_ms=1784235809976 mono_ms=114210 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 510|CONN_LIFECYCLE: conn=193 role=brain wall_ms=1784235809978 mono_ms=114211 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*511|CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=74 wall_ms=1784235809978 mono_ms=114211 event=stream-sub-attach stream=74 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 512|CONN_LIFECYCLE: conn=193 role=brain stream-subscriber stream=74 wall_ms=1784235809987 mono_ms=114221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 513|CONN_LIFECYCLE: conn=194 role=brain wall_ms=1784235809987 mono_ms=114221 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 514|CONN_LIFECYCLE: conn=194 role=brain wall_ms=1784235809987 mono_ms=114221 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 534|CONN_LIFECYCLE: conn=202 role=brain wall_ms=1784235816197 mono_ms=120431 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*535|CONN_LIFECYCLE: conn=202 role=brain stream-subscriber stream=79 wall_ms=1784235816197 mono_ms=120431 event=stream-sub-attach stream=79 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 536|CONN_LIFECYCLE: conn=202 role=brain stream-subscriber stream=79 wall_ms=1784235816199 mono_ms=120433 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 537|CONN_LIFECYCLE: conn=203 role=brain wall_ms=1784235816199 mono_ms=120433 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 538|CONN_LIFECYCLE: conn=203 role=brain wall_ms=1784235816199 mono_ms=120433 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 539|CONN_LIFECYCLE: conn=201 role=brain wall_ms=1784235816206 mono_ms=120439 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*540|CONN_LIFECYCLE: conn=201 role=brain stream-subscriber stream=78 wall_ms=1784235816206 mono_ms=120439 event=stream-sub-attach stream=78 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 541|CONN_LIFECYCLE: conn=201 role=brain stream-subscriber stream=78 wall_ms=1784235816210 mono_ms=120443 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 542|CONN_LIFECYCLE: conn=204 role=brain wall_ms=1784235816210 mono_ms=120444 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 543|CONN_LIFECYCLE: conn=204 role=brain wall_ms=1784235816210 mono_ms=120444 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 548|CONN_LIFECYCLE: conn=207 role=brain wall_ms=1784235820618 mono_ms=124851 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*549|CONN_LIFECYCLE: conn=207 role=brain stream-subscriber stream=80 wall_ms=1784235820618 mono_ms=124851 event=stream-sub-attach stream=80 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 550|CONN_LIFECYCLE: conn=207 role=brain stream-subscriber stream=80 wall_ms=1784235820620 mono_ms=124853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 551|CONN_LIFECYCLE: conn=208 role=brain wall_ms=1784235820620 mono_ms=124853 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 552|CONN_LIFECYCLE: conn=208 role=brain wall_ms=1784235820620 mono_ms=124853 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 555|CONN_LIFECYCLE: conn=209 role=brain wall_ms=1784235823428 mono_ms=127661 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*556|CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823428 mono_ms=127662 event=stream-sub-attach stream=81 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 557|CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823428 mono_ms=127662 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 558|CONN_LIFECYCLE: conn=210 role=brain stream-subscriber stream=81 wall_ms=1784235823433 mono_ms=127666 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 559|CONN_LIFECYCLE: conn=211 role=brain wall_ms=1784235823433 mono_ms=127666 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 562|CONN_LIFECYCLE: conn=212 role=brain wall_ms=1784235824762 mono_ms=128996 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*563|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 wall_ms=1784235824840 mono_ms=129074 event=stream-sub-attach stream=83 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 564|CONN_LIFECYCLE: conn=213 role=brain wall_ms=1784235824934 mono_ms=129167 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 565|CONN_LIFECYCLE: conn=213 role=brain wall_ms=1784235824934 mono_ms=129167 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 566|CONN_LIFECYCLE: conn=214 role=brain wall_ms=1784235824935 mono_ms=129169 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*567|CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=84 wall_ms=1784235824935 mono_ms=129169 event=stream-sub-attach stream=84 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 568|CONN_LIFECYCLE: conn=214 role=brain stream-subscriber stream=84 wall_ms=1784235824944 mono_ms=129178 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]","truncated":true,"truncatedBy":"bytes","totalLines":971,"totalBytes":137476,"outputLines":353,"outputBytes":51116,"lastLinePartial":false,"firstLineExceedsLimit":false},"meta":{"truncation":{"direction":"head","truncatedBy":"bytes","totalLines":971,"totalBytes":137476,"outputLines":353,"outputBytes":51116,"shownRange":{"start":1,"end":353},"nextOffset":354}}},"isError":false,"timestamp":1784247390457}}
{"type":"message","id":"a38d4131","parentId":"79d459f0","timestamp":"2026-07-17T00:16:30.459Z","message":{"role":"toolResult","toolCallId":"call_jR7NWLndcKYzt2FMOWUHIDwr|fc_05a4d8ea8a10ef0b016a59745e611c819888f5ff25d0d83215","toolName":"grep","content":[{"type":"text","text":"# crates/\n\n## spt-daemon/\n\n### src/\n#### brain.rs\n 236|            .spawn(move || {\n*237|                eprintln!(\"PUMP_IPC_READER: spawned\");\n 238|                loop {\n 239|                    let framed = read_frame(&mut recv);\n 240|                    let was_err = framed.is_err();\n...\n 251|                }\n*252|                eprintln!(\"PUMP_IPC_READER: exited\");\n 253|            })\n 254|            .expect(\"spawn pump-ipc-reader thread\");\n 255|        BrainConn::Split {\n#### brainproc.rs\n 204|            eprintln!(\n*205|                \"BRAIN_RESUMED: re-established {} session cursor(s): {ids:?}\",\n 206|                ids.len()\n 207|            )\n 208|        }\n#### broker.rs\n 2050|            eprintln!(\n*2051|                \"INJECT_SETTLE_TIMEOUT:{endpoint}: no PTY readiness echo within {}ms — proceeding (echo-verify guards head loss)\",\n 2052|                inject_settle_deadline().as_millis()\n 2053|            );\n 2054|            return false;\n#### conn.rs\n 272|        eprintln!(\n*273|            \"CONN_LIFECYCLE: {} event={event}{sep}{extra} [REQ-CONN-POISON-ATTRIBUTION]\",\n 274|            self.attribution()\n 275|        );\n 276|    }\n#### dispatch.rs\n 353|                } else {\n*354|                    eprintln!(\"DISPATCH:{stream_id}:{outcome:?}\");\n 355|                }\n 356|                let mut c = claims_done.lock().unwrap();\n 357|                c.insert(\n#### endpoint.rs\n 91|pub fn pump_heartbeat_path() -> PathBuf {\n*92|    spt_home().join(\"identity\").join(\"pump-heartbeat.json\")\n 93|}\n 94|\n 95|/// Read the pump's last-tick heartbeat (epoch ms). `None` = never written\n\n#### pump/\n##### mod.rs\n 663|                            eprintln!(\n*664|                                \"PUMP_PEER_FAIL:{peer_hex}:{e} wall_ms={} mono_ms={}\",\n 665|                                now_ms(),\n 666|                                mono_ms()\n 667|                            );\n...\n 684|                        eprintln!(\n*685|                            \"PUMP_PEER_FAIL:{peer_hex}:stage={}: no route (cache/roster/discovery all empty) wall_ms={} mono_ms={}\",\n 686|                            crate::seedproofx::STAGE_RESOLVE,\n 687|                            now_ms(),\n 688|                            mono_ms()\n...\n 800|        Err(e) => {\n*801|            eprintln!(\"PUMP_PEER_FAIL:{peer_hex}:{e}\");\n 802|            conns.remove(peer_hex); // ordinary per-peer failure → drop conn\n 803|            let prev = sched.get(peer_hex).copied();\n 804|            sched.insert(peer_hex.to_string(), next_peer_backoff(prev, now)); // + back off (Q3)\n...\n 930|            // the stamps make cross-node incident timelines line up (the\n*931|            // 2026-07-14 PUMP_PEER_FAIL-unstamped seed, folded here).\n 932|            // [impl->REQ-PUMP-STAGE-TRUTH]\n 933|            eprintln!(\n*934|                \"PUMP_PEER_FAIL:{}:{} wall_ms={} mono_ms={}\",\n 935|                ev.remote_id_hex,\n 936|                ev.reason.as_deref().unwrap_or(\"dial failed\"),\n 937|                now_ms(),\n...\n 1807|        let dir = tempfile::tempdir().unwrap();\n*1808|        let path = dir.path().join(\"identity\").join(\"pump-heartbeat.json\");\n 1809|        write_heartbeat(&path);\n 1810|        let first: u64 = std::fs::read_to_string(&path)\n 1811|            .expect(\"heartbeat written\")\n...\n 1943|            peer_addrs: root.join(\"peer-addrs.json\"),\n*1944|            heartbeat: root.join(\"pump-heartbeat.json\"),\n 1945|            rotations: root.join(\"rotation-pending.json\"),\n 1946|        };\n 1947|        // Roster: a validated address for \"ab\"; nothing for \"5f\".\n\n### tests/\n#### inject_control_wedge.rs\n 861|    // every abandoned reader observes its read error and exits before the harness\n*862|    // moves on. Verified by `PUMP_IPC_READER: exited` printing within this window.\n 863|    // This is purely teardown hygiene; the assertions below are unchanged.\n 864|    thread::sleep(Duration::from_millis(750));\n 865|\n#### mesh.rs\n 181|            peer_addrs: root.join(\"noseed\").join(\"peer-addrs.json\"),\n*182|            heartbeat: root.join(\"pump-heartbeat.json\"),\n 183|            rotations: root.join(\"rotation-pending.json\"),\n 184|        };\n 185|        std::fs::create_dir_all(root).unwrap();\n#### mesh_recovery.rs\n 144|        peer_addrs: root.join(\"peer-addrs.json\"),\n*145|        heartbeat: root.join(\"pump-heartbeat.json\"),\n 146|        rotations: root.join(\"rotation-pending.json\"),\n 147|    };\n 148|    std::fs::create_dir_all(root).unwrap();\n#### pump.rs\n 98|        peer_addrs: root.join(\"peer-addrs.json\"),\n*99|        heartbeat: root.join(\"pump-heartbeat.json\"),\n 100|        rotations: root.join(\"rotation-pending.json\"),\n 101|    }\n 102|}\n...\n 259|        peer_addrs: a_root.join(\"peer-addrs.json\"),\n*260|        heartbeat: a_root.join(\"pump-heartbeat.json\"),\n 261|        rotations: a_root.join(\"rotation-pending.json\"),\n 262|    };\n 263|    // A trusts B's release signer — the update leg's production gate.\n...\n 604|    // ADVANCE while dead-peer rounds run.\n*605|    let hb = a_root.join(\"pump-heartbeat.json\");\n 606|    let mut first = None;\n 607|    for _ in 0..100 {\n 608|        if let Some(v) = read_heartbeat(&hb) {\n...\n 804|    // round; the point is the heartbeat DOES advance (the pump never froze).\n*805|    let hb = a_root.join(\"pump-heartbeat.json\");\n 806|    let mut first = None;\n 807|    for _ in 0..150 {\n 808|        if let Some(v) = read_heartbeat(&hb) {\n#### redispatch.rs\n 289|    // The fresh generation never touched the historical stream id — the\n*290|    // DISPATCH:<id> replay-storm line (the field evidence class) must be\n 291|    // absent for s1, while s2's re-serve is expected work, not noise.\n 292|    let gen2_log = gen2.stderr_log();\n 293|    assert!(\n*294|        !gen2_log.contains(&format!(\"DISPATCH:{s1_a}:\")),\n 295|        \"generation 2 replayed the retired historical stream {s1_a}: {gen2_log}\"\n 296|    );\n 297|    let _ = s2_a;\n...\n 313|// viewport keeps flowing across several polls, sees no EOF, and gen2's log\n*314|// never carries a DISPATCH:<s1> line; the s1 row leaves the table without\n 315|// ever being served (retire-on-sight drains the backlog).\n 316|// [int->REQ-REDISPATCH-FINISHED-RETIRE]\n 317|#[test]\n...\n 405|    assert!(\n*406|        !gen2_log.contains(&format!(\"DISPATCH:{s1_a}:\")),\n 407|        \"gen2 replayed the finished-unretired stream {s1_a}: {gen2_log}\"\n 408|    );\n 409|\n...\n 562|    assert!(\n*563|        !gen2_log.contains(&format!(\"DISPATCH:{s1_a}:Unknown\")),\n 564|        \"gen2 classified the rolled-opener stream Unknown — durable classification failed: {gen2_log}\"\n 565|    );\n 566|\n#### twohost.rs\n 307|        peer_addrs: home.join(\"identity\").join(\"peer-addrs.json\"),\n*308|        heartbeat: home.join(\"identity\").join(\"pump-heartbeat.json\"),\n 309|        rotations: home.join(\"identity\").join(\"rotation-pending.json\"),\n 310|    }\n 311|}\n\n## spt/src/\n### cli.rs\n 18035|        assert!(!line.contains(\"REQ-\"), \"no internal req tag: {line}\");\n*18036|        assert!(!line.contains(\"PUMP_PEER_FAIL\"), \"no internal CODE marker: {line}\");\n 18037|    }\n 18038|\n 18039|    // [unit->REQ-PROJECT-INDEX-WRITER] the project-index observability line: a"}],"details":{"scopePath":"crates/spt-daemon/src, crates/spt-daemon/tests, crates/spt/src","searchPath":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":28,"fileCount":14,"files":["crates/spt-daemon/src/brain.rs","crates/spt-daemon/src/brainproc.rs","crates/spt-daemon/src/broker.rs","crates/spt-daemon/src/conn.rs","crates/spt-daemon/src/dispatch.rs","crates/spt-daemon/src/endpoint.rs","crates/spt-daemon/src/pump/mod.rs","crates/spt-daemon/tests/inject_control_wedge.rs","crates/spt-daemon/tests/mesh.rs","crates/spt-daemon/tests/mesh_recovery.rs","crates/spt-daemon/tests/pump.rs","crates/spt-daemon/tests/redispatch.rs","crates/spt-daemon/tests/twohost.rs","crates/spt/src/cli.rs"],"fileMatches":[{"path":"crates/spt-daemon/src/brain.rs","count":2},{"path":"crates/spt-daemon/src/brainproc.rs","count":1},{"path":"crates/spt-daemon/src/broker.rs","count":1},{"path":"crates/spt-daemon/src/conn.rs","count":1},{"path":"crates/spt-daemon/src/dispatch.rs","count":1},{"path":"crates/spt-daemon/src/endpoint.rs","count":1},{"path":"crates/spt-daemon/src/pump/mod.rs","count":7},{"path":"crates/spt-daemon/tests/inject_control_wedge.rs","count":1},{"path":"crates/spt-daemon/tests/mesh.rs","count":1},{"path":"crates/spt-daemon/tests/mesh_recovery.rs","count":1},{"path":"crates/spt-daemon/tests/pump.rs","count":4},{"path":"crates/spt-daemon/tests/redispatch.rs","count":5},{"path":"crates/spt-daemon/tests/twohost.rs","count":1},{"path":"crates/spt/src/cli.rs","count":1}],"truncated":false,"displayContent":"# crates/\n\n## spt-daemon/\n\n### src/\n#### brain.rs\n 236│            .spawn(move || {\n*237│                eprintln!(\"PUMP_IPC_READER: spawned\");\n 238│                loop {\n 239│                    let framed = read_frame(&mut recv);\n 240│                    let was_err = framed.is_err();\n    │...\n 251│                }\n*252│                eprintln!(\"PUMP_IPC_READER: exited\");\n 253│            })\n 254│            .expect(\"spawn pump-ipc-reader thread\");\n 255│        BrainConn::Split {\n#### brainproc.rs\n 204│            eprintln!(\n*205│                \"BRAIN_RESUMED: re-established {} session cursor(s): {ids:?}\",\n 206│                ids.len()\n 207│            )\n 208│        }\n#### broker.rs\n 2050│            eprintln!(\n*2051│                \"INJECT_SETTLE_TIMEOUT:{endpoint}: no PTY readiness echo within {}ms — proceeding (echo-verify guards head loss)\",\n 2052│                inject_settle_deadline().as_millis()\n 2053│            );\n 2054│            return false;\n#### conn.rs\n 272│        eprintln!(\n*273│            \"CONN_LIFECYCLE: {} event={event}{sep}{extra} [REQ-CONN-POISON-ATTRIBUTION]\",\n 274│            self.attribution()\n 275│        );\n 276│    }\n#### dispatch.rs\n 353│                } else {\n*354│                    eprintln!(\"DISPATCH:{stream_id}:{outcome:?}\");\n 355│                }\n 356│                let mut c = claims_done.lock().unwrap();\n 357│                c.insert(\n#### endpoint.rs\n 91│pub fn pump_heartbeat_path() -> PathBuf {\n*92│    spt_home().join(\"identity\").join(\"pump-heartbeat.json\")\n 93│}\n 94│\n 95│/// Read the pump's last-tick heartbeat (epoch ms). `None` = never written\n\n#### pump/\n##### mod.rs\n  663│                            eprintln!(\n *664│                                \"PUMP_PEER_FAIL:{peer_hex}:{e} wall_ms={} mono_ms={}\",\n  665│                                now_ms(),\n  666│                                mono_ms()\n  667│                            );\n     │...\n  684│                        eprintln!(\n *685│                            \"PUMP_PEER_FAIL:{peer_hex}:stage={}: no route (cache/roster/discovery all empty) wall_ms={} mono_ms={}\",\n  686│                            crate::seedproofx::STAGE_RESOLVE,\n  687│                            now_ms(),\n  688│                            mono_ms()\n     │...\n  800│        Err(e) => {\n *801│            eprintln!(\"PUMP_PEER_FAIL:{peer_hex}:{e}\");\n  802│            conns.remove(peer_hex); // ordinary per-peer failure → drop conn\n  803│            let prev = sched.get(peer_hex).copied();\n  804│            sched.insert(peer_hex.to_string(), next_peer_backoff(prev, now)); // + back off (Q3)\n     │...\n  930│            // the stamps make cross-node incident timelines line up (the\n *931│            // 2026-07-14 PUMP_PEER_FAIL-unstamped seed, folded here).\n  932│            // [impl->REQ-PUMP-STAGE-TRUTH]\n  933│            eprintln!(\n *934│                \"PUMP_PEER_FAIL:{}:{} wall_ms={} mono_ms={}\",\n  935│                ev.remote_id_hex,\n  936│                ev.reason.as_deref().unwrap_or(\"dial failed\"),\n  937│                now_ms(),\n     │...\n 1807│        let dir = tempfile::tempdir().unwrap();\n*1808│        let path = dir.path().join(\"identity\").join(\"pump-heartbeat.json\");\n 1809│        write_heartbeat(&path);\n 1810│        let first: u64 = std::fs::read_to_string(&path)\n 1811│            .expect(\"heartbeat written\")\n     │...\n 1943│            peer_addrs: root.join(\"peer-addrs.json\"),\n*1944│            heartbeat: root.join(\"pump-heartbeat.json\"),\n 1945│            rotations: root.join(\"rotation-pending.json\"),\n 1946│        };\n 1947│        // Roster: a validated address for \"ab\"; nothing for \"5f\".\n\n### tests/\n#### inject_control_wedge.rs\n 861│    // every abandoned reader observes its read error and exits before the harness\n*862│    // moves on. Verified by `PUMP_IPC_READER: exited` printing within this window.\n 863│    // This is purely teardown hygiene; the assertions below are unchanged.\n 864│    thread::sleep(Duration::from_millis(750));\n 865│\n#### mesh.rs\n 181│            peer_addrs: root.join(\"noseed\").join(\"peer-addrs.json\"),\n*182│            heartbeat: root.join(\"pump-heartbeat.json\"),\n 183│            rotations: root.join(\"rotation-pending.json\"),\n 184│        };\n 185│        std::fs::create_dir_all(root).unwrap();\n#### mesh_recovery.rs\n 144│        peer_addrs: root.join(\"peer-addrs.json\"),\n*145│        heartbeat: root.join(\"pump-heartbeat.json\"),\n 146│        rotations: root.join(\"rotation-pending.json\"),\n 147│    };\n 148│    std::fs::create_dir_all(root).unwrap();\n#### pump.rs\n  98│        peer_addrs: root.join(\"peer-addrs.json\"),\n *99│        heartbeat: root.join(\"pump-heartbeat.json\"),\n 100│        rotations: root.join(\"rotation-pending.json\"),\n 101│    }\n 102│}\n    │...\n 259│        peer_addrs: a_root.join(\"peer-addrs.json\"),\n*260│        heartbeat: a_root.join(\"pump-heartbeat.json\"),\n 261│        rotations: a_root.join(\"rotation-pending.json\"),\n 262│    };\n 263│    // A trusts B's release signer — the update leg's production gate.\n    │...\n 604│    // ADVANCE while dead-peer rounds run.\n*605│    let hb = a_root.join(\"pump-heartbeat.json\");\n 606│    let mut first = None;\n 607│    for _ in 0..100 {\n 608│        if let Some(v) = read_heartbeat(&hb) {\n    │...\n 804│    // round; the point is the heartbeat DOES advance (the pump never froze).\n*805│    let hb = a_root.join(\"pump-heartbeat.json\");\n 806│    let mut first = None;\n 807│    for _ in 0..150 {\n 808│        if let Some(v) = read_heartbeat(&hb) {\n#### redispatch.rs\n 289│    // The fresh generation never touched the historical stream id — the\n*290│    // DISPATCH:<id> replay-storm line (the field evidence class) must be\n 291│    // absent for s1, while s2's re-serve is expected work, not noise.\n 292│    let gen2_log = gen2.stderr_log();\n 293│    assert!(\n*294│        !gen2_log.contains(&format!(\"DISPATCH:{s1_a}:\")),\n 295│        \"generation 2 replayed the retired historical stream {s1_a}: {gen2_log}\"\n 296│    );\n 297│    let _ = s2_a;\n    │...\n 313│// viewport keeps flowing across several polls, sees no EOF, and gen2's log\n*314│// never carries a DISPATCH:<s1> line; the s1 row leaves the table without\n 315│// ever being served (retire-on-sight drains the backlog).\n 316│// [int->REQ-REDISPATCH-FINISHED-RETIRE]\n 317│#[test]\n    │...\n 405│    assert!(\n*406│        !gen2_log.contains(&format!(\"DISPATCH:{s1_a}:\")),\n 407│        \"gen2 replayed the finished-unretired stream {s1_a}: {gen2_log}\"\n 408│    );\n 409│\n    │...\n 562│    assert!(\n*563│        !gen2_log.contains(&format!(\"DISPATCH:{s1_a}:Unknown\")),\n 564│        \"gen2 classified the rolled-opener stream Unknown — durable classification failed: {gen2_log}\"\n 565│    );\n 566│\n#### twohost.rs\n 307│        peer_addrs: home.join(\"identity\").join(\"peer-addrs.json\"),\n*308│        heartbeat: home.join(\"identity\").join(\"pump-heartbeat.json\"),\n 309│        rotations: home.join(\"identity\").join(\"rotation-pending.json\"),\n 310│    }\n 311│}\n\n## spt/src/\n### cli.rs\n 18035│        assert!(!line.contains(\"REQ-\"), \"no internal req tag: {line}\");\n*18036│        assert!(!line.contains(\"PUMP_PEER_FAIL\"), \"no internal CODE marker: {line}\");\n 18037│    }\n 18038│\n 18039│    // [unit->REQ-PROJECT-INDEX-WRITER] the project-index observability line: a"},"isError":false,"timestamp":1784247390459}}
{"type":"message","id":"d5a85417","parentId":"a38d4131","timestamp":"2026-07-17T00:16:30.485Z","message":{"role":"toolResult","toolCallId":"call_WlahUnOOFBKVNcUbngv1aeSm|fc_05a4d8ea8a10ef0b016a59745e61008198a7c002322a2d8a85","toolName":"read","content":[{"type":"text","text":"Line 50000 is beyond end of file (36407 lines total). Use :1 to read from the start, or :36407 to read the last line."}],"details":{"resolvedPath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"isError":false,"timestamp":1784247390485}}
{"type":"custom_message","customType":"irc:incoming","content":"<irc>\nIncoming IRC message from agent `PtyPathRca`:\n\nSource markers/timeouts: broker conn watchdog 15s default `BRAIN_WRITE_DEADLINE`, events include CONN lifecycle/poison (conn.rs), `BRAIN_SUBSCRIBER_STALL_EVICT`, global stall-evicts tally. Controller output queue full continuously 5s causes detach; viewer queue full immediate eviction. Brain heartbeat comments say first heartbeat drives sessions to drain dead controller. Please correlate any 15s boundary, CONN_WRITE_POISONED/DEADLINE, BRAIN_SUBSCRIBER_STALL_EVICT.\n\nAn agent sent this while you were waiting or working. Any active interruptible wait was stopped early so you can read it now.\n\nIf a response is expected, reply with the `irc` tool (`op: \"send\"`, `to: \"PtyPathRca\"`) — you may finish your current step first. Nobody replies on your behalf.\n</irc>","display":true,"details":{"id":"1532a8eb405c5f12","from":"PtyPathRca","message":"Source markers/timeouts: broker conn watchdog 15s default `BRAIN_WRITE_DEADLINE`, events include CONN lifecycle/poison (conn.rs), `BRAIN_SUBSCRIBER_STALL_EVICT`, global stall-evicts tally. Controller output queue full continuously 5s causes detach; viewer queue full immediate eviction. Brain heartbeat comments say first heartbeat drives sessions to drain dead controller. Please correlate any 15s boundary, CONN_WRITE_POISONED/DEADLINE, BRAIN_SUBSCRIBER_STALL_EVICT."},"attribution":"agent","id":"eb9b4c60","parentId":"d5a85417","timestamp":"2026-07-17T00:16:30.519Z"}
{"type":"message","id":"6dfa2572","parentId":"eb9b4c60","timestamp":"2026-07-17T00:16:41.056Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Inspecting log tail and gaps**"},{"type":"toolCall","id":"call_QHzVV1areKQVG61NYTK26Cre|fc_05a4d8ea8a10ef0b016a59746901cc8198926666d0ba013139","name":"read","arguments":{"i":"Reading current daemon tail","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":"36000-36407"}},{"type":"toolCall","id":"call_AvlTwhKhqkeJxtEW7JCRfgIZ|fc_05a4d8ea8a10ef0b016a59746901e88198b4768409ec25a64a","name":"grep","arguments":{"i":"Finding broker stall telemetry","pattern":"BRAIN_SUBSCRIBER_STALL_EVICT|STALL_EVICT|CONN_WRITE_POISONED|CONN_WRITE_RETIRED|write-deadline|writer-exit|timed_out=true|queue-full|queue full|stalled","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":null,"case":false,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_uOHB9EUqJsn5ccAVrfMv0687|fc_05a4d8ea8a10ef0b016a59746901f08198aaa637dcb2659827","name":"grep","arguments":{"i":"Locating status CLI surfaces","pattern":"Status|status|health|heartbeat|daemon.*pid|brain.*pid|list.*json|diagnos","path":"crates/spt/src/cli.rs;crates/spt/src/roster.rs;crates/spt/src/api/reporting.rs;crates/spt-daemon/src/endpoint.rs","selector":null,"case":false,"gitignore":true,"skip":null}},{"type":"toolCall","id":"call_oVZmdalPOM8vtVjjL7gHbdOq|fc_05a4d8ea8a10ef0b016a59746901f88198a7f6caf81e53efda","name":"read","arguments":{"i":"Reading heartbeat implementation","path":"crates/spt-daemon/src/endpoint.rs","selector":"70-135"}},{"type":"toolCall","id":"call_vSSwqkkI1j6SmptTh9qJE3Tw|fc_05a4d8ea8a10ef0b016a597469020081988173b43c0ade5a92","name":"read","arguments":{"i":"Reading pump scheduling loop","path":"crates/spt-daemon/src/pump/mod.rs","selector":"580-730"}},{"type":"toolCall","id":"call_ie2XzNUqa3H1X0fVHbQDRAwG|fc_05a4d8ea8a10ef0b016a597469020c819897eb41ccdb98404c","name":"read","arguments":{"i":"Reading brain IPC reader","path":"crates/spt-daemon/src/brain.rs","selector":"190-275"}},{"type":"toolCall","id":"call_M5AcnUVboKL3dGwntsIsK9r8|fc_05a4d8ea8a10ef0b016a59746902108198b154417635461d11","name":"read","arguments":{"i":"Reading dispatch failure semantics","path":"crates/spt-daemon/src/dispatch.rs","selector":"300-375"}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":26513,"output":494,"cacheRead":43520,"cacheWrite":0,"totalTokens":70527,"reasoningTokens":72,"cost":{"input":0.13256500000000002,"output":0.01482,"cacheRead":0.021759999999999998,"cacheWrite":0,"total":0.16914500000000002}},"stopReason":"toolUse","timestamp":1784247390535,"responseId":"resp_05a4d8ea8a10ef0b016a59745eb4688198a6eb674c3b375efa","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a59746013808198a6568a894deeb674","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXRp-UjhuBu3OzK2nEiLFtTwlReBSTKLvCdlgKcVMu3X0axDOIR_NYf2SeeGUhnYl3XFpTPnxf2TDZaMmjlGNBrzbOqUR4DLLQPKZHMRrPNNfmshs02nGvDtyETGVA8nUtWoINGjtIOFJ-3sIJMU3OtyXajtWIu3hm7FOBhPtgx6lW_FK5Ce9WZrGP-NEXcWrJwJk9yq9CasHyKBYJXXBuHWLEzBGLfRzFhQByN_LmEul0Szkhl40HlWVIgaa9kq140o5o-cOSCaKXM2yfecCYUvNpbyEzKBuMSZUxnRx4Le-KLiVu-FH2vT1LfTSDGkYtnFkilQnI-uHE4j3BOIPnxd-NSeRy-8d9k1T83Vwy6_ypl9DIjdG5O936pHoloNdRQ14zQgZvwd0CUdYGV215LL3BVEWCEeOQ9yNVNvc1MNZuXwrG2ZXjRnd0sDzWYK65vFAhAwMUCcskM0HQHnRE0rMXb0VDerjCzbyx4jeBhTPRC_0vuFb-cPl_BYoKA5Y-cQ35JYzYONkBWLH-SmtkVh6_AW_j6LM_Ww3x8eMYZeNjyNJ03ITeY5_W1BsQ0sAI9AneOog4mHSjTfU8WLlpPZxUSGufyc6nc3AtFpUwfckt-_QHjnDKdjMN2fyyNCbY4ptMiqR0YpZ8sYpMcv4ME43EfutrPqgYEFbmuCyNjgJ0kBnQRtcWPBnfFNdT9ts6SKe9mGvmG42slbIY3PfwDLWI8GgI91kI06s1sn7jQ_POZvY9HUi4MkhzjfJJx3sT4y6QgnoJUOxEhTkeS2Tw6tnpicAflV-4JKC5ofmOIqf920UWNEKqgdNkS3MZao4LQneZFmXZXkSY4ulCZJL-odLDe2hF2aaawm6Asqff3pW1Y86efxs49WOcEwvKijsVqduPEjvqkQDREft2tXsnb62tgJ49tZdqznqSCbiAtAKT1BGBvzdCcxn5y1Z_puF48f5yOY1cysN0W1sh5Wb0k60DtWu-ZfF7owIWBhHRE8PByWxk65Um6q5CPa7clCMuqz25xObWsPFHCRHASxXrQJlvC9F9GkwtPb4o2Ql2kMn8IUAz-aJEI1FoC7uw0Dx9FufNmMczMZ14q7FmB3seBA14bqISGzl3H_7vJ3XWjsNEMFVm56b8IY3kjhDsVG-rhLe09PvApENSh5NrnrpvAPx1oXuOefUajEygTwfN83j1ZuMQahKhDCCJQxtOAi3OdJ8-eaKQS9WL0ptGKa5jStGN2ok11oqxbD7O-pDJvrTCwrT2JJCNya1B83RHew0yhmmARBh6JcjHFPq8j9D3vtqteymaaet6DxWlrF79OXO3U=","summary":[{"type":"summary_text","text":"**Inspecting log tail and gaps**"}]},{"id":"fc_05a4d8ea8a10ef0b016a59746901cc8198926666d0ba013139","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading current daemon tail\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":\"36000-36407\"}","call_id":"call_QHzVV1areKQVG61NYTK26Cre","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59746901e88198b4768409ec25a64a","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding broker stall telemetry\",\"pattern\":\"BRAIN_SUBSCRIBER_STALL_EVICT|STALL_EVICT|CONN_WRITE_POISONED|CONN_WRITE_RETIRED|write-deadline|writer-exit|timed_out=true|queue-full|queue full|stalled\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":null,\"case\":false,\"gitignore\":false,\"skip\":null}","call_id":"call_AvlTwhKhqkeJxtEW7JCRfgIZ","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59746901f08198aaa637dcb2659827","type":"function_call","status":"completed","arguments":"{\"i\":\"Locating status CLI surfaces\",\"pattern\":\"Status|status|health|heartbeat|daemon.*pid|brain.*pid|list.*json|diagnos\",\"path\":\"crates/spt/src/cli.rs;crates/spt/src/roster.rs;crates/spt/src/api/reporting.rs;crates/spt-daemon/src/endpoint.rs\",\"selector\":null,\"case\":false,\"gitignore\":true,\"skip\":null}","call_id":"call_uOHB9EUqJsn5ccAVrfMv0687","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59746901f88198a7f6caf81e53efda","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading heartbeat implementation\",\"path\":\"crates/spt-daemon/src/endpoint.rs\",\"selector\":\"70-135\"}","call_id":"call_oVZmdalPOM8vtVjjL7gHbdOq","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a597469020081988173b43c0ade5a92","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading pump scheduling loop\",\"path\":\"crates/spt-daemon/src/pump/mod.rs\",\"selector\":\"580-730\"}","call_id":"call_vSSwqkkI1j6SmptTh9qJE3Tw","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a597469020c819897eb41ccdb98404c","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading brain IPC reader\",\"path\":\"crates/spt-daemon/src/brain.rs\",\"selector\":\"190-275\"}","call_id":"call_ie2XzNUqa3H1X0fVHbQDRAwG","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59746902108198b154417635461d11","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading dispatch failure semantics\",\"path\":\"crates/spt-daemon/src/dispatch.rs\",\"selector\":\"300-375\"}","call_id":"call_M5AcnUVboKL3dGwntsIsK9r8","name":"read"}]},"duration":10519.722799994051,"ttft":1535.1278999969363,"contextSnapshot":{"promptTokens":70033,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_QHzVV1areKQVG61NYTK26Cre|fc_05a4d8ea8a10ef0b016a59746901cc8198926666d0ba013139","toolName":"read","startedAt":"2026-07-17T00:16:41.056Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Reading current daemon tail"},"id":"9315d593","parentId":"6dfa2572","timestamp":"2026-07-17T00:16:41.056Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_AvlTwhKhqkeJxtEW7JCRfgIZ|fc_05a4d8ea8a10ef0b016a59746901e88198b4768409ec25a64a","toolName":"grep","startedAt":"2026-07-17T00:16:41.056Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Finding broker stall telemetry"},"id":"4357db6e","parentId":"9315d593","timestamp":"2026-07-17T00:16:41.056Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_uOHB9EUqJsn5ccAVrfMv0687|fc_05a4d8ea8a10ef0b016a59746901f08198aaa637dcb2659827","toolName":"grep","startedAt":"2026-07-17T00:16:41.056Z","args":{"path":"crates/spt/src/cli.rs;crates/spt/src/roster.rs;crates/spt/src/api/reporting.rs;crates/spt-daemon/src/endpoint.rs"},"intent":"Locating status CLI surfaces"},"id":"32b441bc","parentId":"4357db6e","timestamp":"2026-07-17T00:16:41.056Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_oVZmdalPOM8vtVjjL7gHbdOq|fc_05a4d8ea8a10ef0b016a59746901f88198a7f6caf81e53efda","toolName":"read","startedAt":"2026-07-17T00:16:41.056Z","args":{"path":"crates/spt-daemon/src/endpoint.rs"},"intent":"Reading heartbeat implementation"},"id":"de124fc3","parentId":"32b441bc","timestamp":"2026-07-17T00:16:41.056Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_vSSwqkkI1j6SmptTh9qJE3Tw|fc_05a4d8ea8a10ef0b016a597469020081988173b43c0ade5a92","toolName":"read","startedAt":"2026-07-17T00:16:41.056Z","args":{"path":"crates/spt-daemon/src/pump/mod.rs"},"intent":"Reading pump scheduling loop"},"id":"011a6581","parentId":"de124fc3","timestamp":"2026-07-17T00:16:41.056Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_ie2XzNUqa3H1X0fVHbQDRAwG|fc_05a4d8ea8a10ef0b016a597469020c819897eb41ccdb98404c","toolName":"read","startedAt":"2026-07-17T00:16:41.056Z","args":{"path":"crates/spt-daemon/src/brain.rs"},"intent":"Reading brain IPC reader"},"id":"fb6c2a48","parentId":"011a6581","timestamp":"2026-07-17T00:16:41.056Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_M5AcnUVboKL3dGwntsIsK9r8|fc_05a4d8ea8a10ef0b016a59746902108198b154417635461d11","toolName":"read","startedAt":"2026-07-17T00:16:41.056Z","args":{"path":"crates/spt-daemon/src/dispatch.rs"},"intent":"Reading dispatch failure semantics"},"id":"d235d94c","parentId":"fb6c2a48","timestamp":"2026-07-17T00:16:41.056Z"}
{"type":"message","id":"f83ee79d","parentId":"d235d94c","timestamp":"2026-07-17T00:16:41.059Z","message":{"role":"toolResult","toolCallId":"call_oVZmdalPOM8vtVjjL7gHbdOq|fc_05a4d8ea8a10ef0b016a59746901f88198a7f6caf81e53efda","toolName":"read","content":[{"type":"text","text":"/// harmless because callers probe the socket, never this file.\npub fn daemon_pid_path() -> PathBuf {\n    spt_home().join(\"daemon.pid\")\n}\n\n/// The brain child's readiness breadcrumb: `<spt_home>/brain.ready` (the brain\n/// child's pid, rewritten each heartbeat). The broker spawns the brain as a\n/// supervised child process (ADR-0018 Q2/Q3 — the two-process restoration); the\n/// child writes this once it has connected to the broker socket, and refreshes\n/// it while attached. A test (or a future readiness-gated rollback, ADR-0018\n/// Q7) reads it to confirm the brain came up and — on a pid change — that it\n/// respawned. Best-effort like the daemon pid breadcrumb; liveness of the\n/// *daemon* is still the seed-control ping, never this file.\n// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\npub fn brain_ready_path() -> PathBuf {\n    spt_home().join(\"brain.ready\")\n}\n\n/// Where the peer pump records its last-tick heartbeat (epoch ms, M8\n/// decision 23 / REQ-DAEMON-5): written each pump tick (D4), read by\n/// `spt daemon status` so a half-dead daemon (pump stalled, dispatcher\n/// alive — the 2026-06-07 hfenduleam shape) renders honestly.\npub fn pump_heartbeat_path() -> PathBuf {\n    spt_home().join(\"identity\").join(\"pump-heartbeat.json\")\n}\n\n/// Read the pump's last-tick heartbeat (epoch ms). `None` = never written\n/// (a pre-M8 daemon, or one that has not completed a first tick).\n// [impl->REQ-CLI-2]\npub fn read_pump_heartbeat() -> Option<u64> {\n    let s = std::fs::read_to_string(pump_heartbeat_path()).ok()?;\n    serde_json::from_str::<u64>(s.trim()).ok()\n}\n\n/// Read the pump's reachability health snapshot (`identity/pump-health.json`,\n/// ADR-0039 Decision 5, REQ-PUMP-STAGE-TRUTH). `None` = no pump has ever\n/// written one on this home (an older daemon, or none ran yet).\n// [impl->REQ-PUMP-STAGE-TRUTH]\npub fn read_pump_health() -> Option<crate::pump::health::PumpHealth> {\n    let path = crate::pump::health::PumpHealth::path_beside(&pump_heartbeat_path());\n    std::fs::metadata(&path).ok()?;\n    Some(crate::pump::health::PumpHealth::load_from(&path))\n}\n"}],"details":{"displayContent":{"text":"/// harmless because callers probe the socket, never this file.\r\npub fn daemon_pid_path() -> PathBuf {\r\n    spt_home().join(\"daemon.pid\")\r\n}\r\n\r\n/// The brain child's readiness breadcrumb: `<spt_home>/brain.ready` (the brain\r\n/// child's pid, rewritten each heartbeat). The broker spawns the brain as a\r\n/// supervised child process (ADR-0018 Q2/Q3 — the two-process restoration); the\r\n/// child writes this once it has connected to the broker socket, and refreshes\r\n/// it while attached. A test (or a future readiness-gated rollback, ADR-0018\r\n/// Q7) reads it to confirm the brain came up and — on a pid change — that it\r\n/// respawned. Best-effort like the daemon pid breadcrumb; liveness of the\r\n/// *daemon* is still the seed-control ping, never this file.\r\n// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\r\npub fn brain_ready_path() -> PathBuf {\r\n    spt_home().join(\"brain.ready\")\r\n}\r\n\r\n/// Where the peer pump records its last-tick heartbeat (epoch ms, M8\r\n/// decision 23 / REQ-DAEMON-5): written each pump tick (D4), read by\r\n/// `spt daemon status` so a half-dead daemon (pump stalled, dispatcher\r\n/// alive — the 2026-06-07 hfenduleam shape) renders honestly.\r\npub fn pump_heartbeat_path() -> PathBuf {\r\n    spt_home().join(\"identity\").join(\"pump-heartbeat.json\")\r\n}\r\n\r\n/// Read the pump's last-tick heartbeat (epoch ms). `None` = never written\r\n/// (a pre-M8 daemon, or one that has not completed a first tick).\r\n// [impl->REQ-CLI-2]\r\npub fn read_pump_heartbeat() -> Option<u64> {\r\n    let s = std::fs::read_to_string(pump_heartbeat_path()).ok()?;\r\n    serde_json::from_str::<u64>(s.trim()).ok()\r\n}\r\n\r\n/// Read the pump's reachability health snapshot (`identity/pump-health.json`,\r\n/// ADR-0039 Decision 5, REQ-PUMP-STAGE-TRUTH). `None` = no pump has ever\r\n/// written one on this home (an older daemon, or none ran yet).\r\n// [impl->REQ-PUMP-STAGE-TRUTH]\r\npub fn read_pump_health() -> Option<crate::pump::health::PumpHealth> {\r\n    let path = crate::pump::health::PumpHealth::path_beside(&pump_heartbeat_path());\r\n    std::fs::metadata(&path).ok()?;\r\n    Some(crate::pump::health::PumpHealth::load_from(&path))\r\n}\r\n","startLine":69,"lineNumbers":[69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\endpoint.rs"}}},"isError":false,"timestamp":1784247401058}}
{"type":"message","id":"cbe3899f","parentId":"f83ee79d","timestamp":"2026-07-17T00:16:41.069Z","message":{"role":"toolResult","toolCallId":"call_M5AcnUVboKL3dGwntsIsK9r8|fc_05a4d8ea8a10ef0b016a59746902108198b154417635461d11","toolName":"read","content":[{"type":"text","text":"pub fn run_dispatch_loop(\n    broker_name: &str,\n    paths: &DispatchPaths,\n    registry: Arc<RegistryHost>,\n    stop: &AtomicBool,\n    poll: Duration,\n) -> io::Result<()> {\n    let mut brain = connect(broker_name)?;\n    // Claim lifecycle (ADR-0038 C): in-flight / terminal / retryable —\n    // replaces the pre-fix one-shot `HashSet` whose burned claims permanently\n    // abandoned a stream on the first transient failure.\n    let claims: Arc<Mutex<HashMap<u64, ClaimState>>> = Arc::new(Mutex::new(HashMap::new()));\n\n    while !stop.load(Ordering::Relaxed) {\n        let reply = brain.net_streams()?;\n        for s in reply.streams {\n            // Claim only peer-initiated rows with bytes (a QUIC stream is\n            // invisible until its first write anyway — gotcha #6 — but the\n            // next_seq guard also skips a row whose pump hasn't appended yet).\n            // Terminal rows never re-enter; a released (Retry) claim re-enters\n            // after its backoff (REQ-DISPATCH-CLAIM-RETRY).\n            if s.initiated_locally || s.next_seq == 0 {\n                continue;\n            }\n            let attempts = {\n                let mut c = claims.lock().unwrap();\n                match should_claim(c.get(&s.stream_id), Instant::now()) {\n                    Some(attempts) => {\n                        c.insert(s.stream_id, ClaimState::InFlight { attempts });\n                        attempts\n                    }\n                    None => continue,\n                }\n            };\n            let name = broker_name.to_string();\n            let origin = s.remote_id_hex.clone();\n            let stream_id = s.stream_id;\n            let floor_seq = s.floor_seq;\n            let finished = s.finished;\n            let p = paths.clone();\n            let reg = Arc::clone(&registry);\n            let claims_done = Arc::clone(&claims);\n            thread::spawn(move || {\n                let outcome = worker(&name, stream_id, &origin, floor_seq, finished, &p, &reg);\n                if matches!(outcome, DispatchOutcome::Served(_)) {\n                    // Retirement (ADR-0038 A, REQ-REDISPATCH-FINISHED-RETIRE):\n                    // this stream's exchange is over — take its row out of\n                    // every FUTURE dispatcher generation's enumeration (the\n                    // KNOWN-HAZARDS 7.41 control-steal class). Best-effort:\n                    // an older broker without the verb answers error (KH-2.3)\n                    // and the row retires when the broker cycles.\n                    if let Ok(mut retire_brain) = connect(&name) {\n                        let _ = retire_brain.net_stream_retire(stream_id);\n                    }\n                } else {\n                    eprintln!(\"DISPATCH:{stream_id}:{outcome:?}\");\n                }\n                let mut c = claims_done.lock().unwrap();\n                c.insert(\n                    stream_id,\n                    outcome_transition(&outcome, attempts, Instant::now()),\n                );\n            });\n        }\n        thread::sleep(poll);\n    }\n    Ok(())\n}\n\n/// Connect a fresh brain IPC client (retrying through broker startup).\nfn connect(broker_name: &str) -> io::Result<Brain> {\n    let mut last = io::Error::other(\"broker never answered\");\n    for _ in 0..300 {\n        match Brain::cold_start(broker_name, now_ms()) {\n            Ok(b) => return Ok(b),\n            Err(e) => last = e,\n        }\n        thread::sleep(Duration::from_millis(10));\n    }\n    Err(last)\n}\n\n[Showing lines 299-378 of 1034. Use :379 to continue]"}],"details":{"truncation":{"content":"pub fn run_dispatch_loop(\r\n    broker_name: &str,\r\n    paths: &DispatchPaths,\r\n    registry: Arc<RegistryHost>,\r\n    stop: &AtomicBool,\r\n    poll: Duration,\r\n) -> io::Result<()> {\r\n    let mut brain = connect(broker_name)?;\r\n    // Claim lifecycle (ADR-0038 C): in-flight / terminal / retryable —\r\n    // replaces the pre-fix one-shot `HashSet` whose burned claims permanently\r\n    // abandoned a stream on the first transient failure.\r\n    let claims: Arc<Mutex<HashMap<u64, ClaimState>>> = Arc::new(Mutex::new(HashMap::new()));\r\n\r\n    while !stop.load(Ordering::Relaxed) {\r\n        let reply = brain.net_streams()?;\r\n        for s in reply.streams {\r\n            // Claim only peer-initiated rows with bytes (a QUIC stream is\r\n            // invisible until its first write anyway — gotcha #6 — but the\r\n            // next_seq guard also skips a row whose pump hasn't appended yet).\r\n            // Terminal rows never re-enter; a released (Retry) claim re-enters\r\n            // after its backoff (REQ-DISPATCH-CLAIM-RETRY).\r\n            if s.initiated_locally || s.next_seq == 0 {\r\n                continue;\r\n            }\r\n            let attempts = {\r\n                let mut c = claims.lock().unwrap();\r\n                match should_claim(c.get(&s.stream_id), Instant::now()) {\r\n                    Some(attempts) => {\r\n                        c.insert(s.stream_id, ClaimState::InFlight { attempts });\r\n                        attempts\r\n                    }\r\n                    None => continue,\r\n                }\r\n            };\r\n            let name = broker_name.to_string();\r\n            let origin = s.remote_id_hex.clone();\r\n            let stream_id = s.stream_id;\r\n            let floor_seq = s.floor_seq;\r\n            let finished = s.finished;\r\n            let p = paths.clone();\r\n            let reg = Arc::clone(&registry);\r\n            let claims_done = Arc::clone(&claims);\r\n            thread::spawn(move || {\r\n                let outcome = worker(&name, stream_id, &origin, floor_seq, finished, &p, &reg);\r\n                if matches!(outcome, DispatchOutcome::Served(_)) {\r\n                    // Retirement (ADR-0038 A, REQ-REDISPATCH-FINISHED-RETIRE):\r\n                    // this stream's exchange is over — take its row out of\r\n                    // every FUTURE dispatcher generation's enumeration (the\r\n                    // KNOWN-HAZARDS 7.41 control-steal class). Best-effort:\r\n                    // an older broker without the verb answers error (KH-2.3)\r\n                    // and the row retires when the broker cycles.\r\n                    if let Ok(mut retire_brain) = connect(&name) {\r\n                        let _ = retire_brain.net_stream_retire(stream_id);\r\n                    }\r\n                } else {\r\n                    eprintln!(\"DISPATCH:{stream_id}:{outcome:?}\");\r\n                }\r\n                let mut c = claims_done.lock().unwrap();\r\n                c.insert(\r\n                    stream_id,\r\n                    outcome_transition(&outcome, attempts, Instant::now()),\r\n                );\r\n            });\r\n        }\r\n        thread::sleep(poll);\r\n    }\r\n    Ok(())\r\n}\r\n\r\n/// Connect a fresh brain IPC client (retrying through broker startup).\r\nfn connect(broker_name: &str) -> io::Result<Brain> {\r\n    let mut last = io::Error::other(\"broker never answered\");\r\n    for _ in 0..300 {\r\n        match Brain::cold_start(broker_name, now_ms()) {\r\n            Ok(b) => return Ok(b),\r\n            Err(e) => last = e,\r\n        }\r\n        thread::sleep(Duration::from_millis(10));\r\n    }\r\n    Err(last)\r","truncated":true,"truncatedBy":"lines","totalLines":736,"totalBytes":3571,"outputLines":80,"outputBytes":3571,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"pub fn run_dispatch_loop(\r\n    broker_name: &str,\r\n    paths: &DispatchPaths,\r\n    registry: Arc<RegistryHost>,\r\n    stop: &AtomicBool,\r\n    poll: Duration,\r\n) -> io::Result<()> {\r\n    let mut brain = connect(broker_name)?;\r\n    // Claim lifecycle (ADR-0038 C): in-flight / terminal / retryable —\r\n    // replaces the pre-fix one-shot `HashSet` whose burned claims permanently\r\n    // abandoned a stream on the first transient failure.\r\n    let claims: Arc<Mutex<HashMap<u64, ClaimState>>> = Arc::new(Mutex::new(HashMap::new()));\r\n\r\n    while !stop.load(Ordering::Relaxed) {\r\n        let reply = brain.net_streams()?;\r\n        for s in reply.streams {\r\n            // Claim only peer-initiated rows with bytes (a QUIC stream is\r\n            // invisible until its first write anyway — gotcha #6 — but the\r\n            // next_seq guard also skips a row whose pump hasn't appended yet).\r\n            // Terminal rows never re-enter; a released (Retry) claim re-enters\r\n            // after its backoff (REQ-DISPATCH-CLAIM-RETRY).\r\n            if s.initiated_locally || s.next_seq == 0 {\r\n                continue;\r\n            }\r\n            let attempts = {\r\n                let mut c = claims.lock().unwrap();\r\n                match should_claim(c.get(&s.stream_id), Instant::now()) {\r\n                    Some(attempts) => {\r\n                        c.insert(s.stream_id, ClaimState::InFlight { attempts });\r\n                        attempts\r\n                    }\r\n                    None => continue,\r\n                }\r\n            };\r\n            let name = broker_name.to_string();\r\n            let origin = s.remote_id_hex.clone();\r\n            let stream_id = s.stream_id;\r\n            let floor_seq = s.floor_seq;\r\n            let finished = s.finished;\r\n            let p = paths.clone();\r\n            let reg = Arc::clone(&registry);\r\n            let claims_done = Arc::clone(&claims);\r\n            thread::spawn(move || {\r\n                let outcome = worker(&name, stream_id, &origin, floor_seq, finished, &p, &reg);\r\n                if matches!(outcome, DispatchOutcome::Served(_)) {\r\n                    // Retirement (ADR-0038 A, REQ-REDISPATCH-FINISHED-RETIRE):\r\n                    // this stream's exchange is over — take its row out of\r\n                    // every FUTURE dispatcher generation's enumeration (the\r\n                    // KNOWN-HAZARDS 7.41 control-steal class). Best-effort:\r\n                    // an older broker without the verb answers error (KH-2.3)\r\n                    // and the row retires when the broker cycles.\r\n                    if let Ok(mut retire_brain) = connect(&name) {\r\n                        let _ = retire_brain.net_stream_retire(stream_id);\r\n                    }\r\n                } else {\r\n                    eprintln!(\"DISPATCH:{stream_id}:{outcome:?}\");\r\n                }\r\n                let mut c = claims_done.lock().unwrap();\r\n                c.insert(\r\n                    stream_id,\r\n                    outcome_transition(&outcome, attempts, Instant::now()),\r\n                );\r\n            });\r\n        }\r\n        thread::sleep(poll);\r\n    }\r\n    Ok(())\r\n}\r\n\r\n/// Connect a fresh brain IPC client (retrying through broker startup).\r\nfn connect(broker_name: &str) -> io::Result<Brain> {\r\n    let mut last = io::Error::other(\"broker never answered\");\r\n    for _ in 0..300 {\r\n        match Brain::cold_start(broker_name, now_ms()) {\r\n            Ok(b) => return Ok(b),\r\n            Err(e) => last = e,\r\n        }\r\n        thread::sleep(Duration::from_millis(10));\r\n    }\r\n    Err(last)\r\n}","startLine":299,"lineNumbers":[299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\dispatch.rs"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":1034,"totalBytes":3571,"outputLines":80,"outputBytes":3571,"shownRange":{"start":299,"end":378},"nextOffset":379}}},"isError":false,"timestamp":1784247401069}}
{"type":"message","id":"7572fafe","parentId":"cbe3899f","timestamp":"2026-07-17T00:16:41.095Z","message":{"role":"toolResult","toolCallId":"call_vSSwqkkI1j6SmptTh9qJE3Tw|fc_05a4d8ea8a10ef0b016a597469020081988173b43c0ade5a92","toolName":"read","content":[{"type":"text","text":"pub fn run_peer_pump(\n…\n) -> io::Result<()> {\n…\n    let mut sync_worker = SyncWorker::new(Arc::clone(&registry), paths, &cadence, hooks);\n    let mut update_worker = UpdateWorker::new(Arc::clone(&registry), paths, &cadence, full_auto_update);\n    let mut workers: [&mut dyn PumpWorker; 4] = [\n        &mut registry_worker,\n        &mut notif_worker,\n        &mut sync_worker,\n        &mut update_worker,\n    ];\n    // WorkerLasts (ADR-0018 §V4): RAM-only last-ran instants, parallel to\n    // `workers`. `None` = never run yet → due immediately, so the first tick\n    // primes every leg. Never `Instant - Duration` — the underflow panic on a\n    // sub-uptime monotonic clock (KH 5.9) lives nowhere in this path.\n    let mut last: [Option<Instant>; 4] = [None; 4];\n    let mut last_hb: Option<Instant> = None;\n\n    while !stop.load(Ordering::Relaxed) {\n        let now = Instant::now();\n        // Shell-owned liveness heartbeat (M8 decision 23, REQ-DAEMON-5): written\n        // while the loop is ALIVE — including idle ticks — never per work round,\n        // so a wedged step and a healthy quiet pump are distinguishable.\n        // Throttled; per-tick, never a worker (REQ-DAEMON-5), no wake.\n        // [impl->REQ-DAEMON-5]\n        if due(last_hb, false, now, HEARTBEAT_PERIOD) {\n            write_heartbeat(&paths.heartbeat);\n            last_hb = Some(now);\n        }\n        // Poll every worker's wake and decide due (the pure scheduler step):\n        // every wake is consumed EVERY tick so a marker is never stranded (the\n        // registry advertise-now, REQ-CONV-2; the sync freshness pull,\n        // REQ-INST-3). The take IS the remove — one wake claims exactly one\n        // forced round.\n        let (due_flags, any_due) = compute_due(&mut workers, &last, now);\n        if !any_due {\n            thread::sleep(TICK);\n            continue;\n        }\n\n        // Per-round shared loads (§Frozen-3): subnets / attachment /\n        // roster-backed policy, read ONCE and handed to every worker.\n        let ctx = RoundCtx::load(paths);\n\n        // Each due worker's node-local pre_round, once per round before ANY\n        // peer_step (only the registry leg does work here — its sweep +\n        // advertise; the rest default to a no-op).\n        pre_rounds(&mut workers, &due_flags, &ctx);\n\n        // ── PUMP-TRUTH W2 round (REQ-PUMP-PEER-ISOLATION) — concurrent dials +\n        // per-peer fault isolation. Group this round's fan-out targets by peer (a\n        // peer may target several subnets; one conn serves them all).\n        let mut peer_subnets: HashMap<String, Vec<String>> = HashMap::new();\n        for (sub_name, peer_hex) in fan_targets(&ctx, registry.node_hex()) {\n            peer_subnets.entry(peer_hex).or_default().push(sub_name);\n        }\n        // Health targets = this round's fan-out set; snapshot the registry\n        // host's last-admitted stamp while here (REQ-PUMP-STAGE-TRUTH).\n        health.set_targets(peer_subnets.keys().cloned(), now_ms());\n        health.note_registry_admit(registry.last_admit_ms());\n        let round_start = Instant::now();\n        let mut pending: HashSet<String> = HashSet::new();\n\n        // Submit NON-BLOCKING dials for eligible unconnected peers; run the due\n        // legs NOW for already-connected ones. The live peer advertises without\n        // waiting on a dead one (no head-of-line block) — a dead peer is only a\n        // pending outcome, never a serial blocker.\n        for (peer_hex, subs) in &peer_subnets {\n            if let Some(&conn_id) = conns.get(peer_hex) {\n                run_peer_subnets(\n                    &mut brain, &mut ops, &mut workers, &due_flags, &mut conns, &mut sched,\n                    conn_id, subs, peer_hex, &ctx, round_start,\n                )?;\n            } else if peer_eligible(&sched, peer_hex, round_start) {\n                if let Some(addr) =\n                    resolve_submit_addr(&resolver, peer_hex, &paths.peer_addrs, &ctx.policy.roster)\n                {\n                    match brain.submit_dial(addr) {\n                        Ok(()) => {\n                            pending.insert(peer_hex.clone());\n                        }\n                        // A raw carrier-op TimedOut on the submit IPC itself is a\n                        // genuine broker-IPC desync → bubble → supervised restart.\n                        Err(e) if e.kind() == io::ErrorKind::TimedOut => return Err(e),\n                        // The broker refused the submit (net disabled / bad addr):\n                        // an ordinary per-peer failure — back off, round continues.\n                        Err(e) => {\n                            eprintln!(\n                                \"PUMP_PEER_FAIL:{peer_hex}:{e} wall_ms={} mono_ms={}\",\n                                now_ms(),\n                                mono_ms()\n                            );\n                            health.note_failed(peer_hex, \"submit\", conns.len(), now_ms());\n                            let prev = sched.get(peer_hex).copied();\n                            sched.insert(peer_hex.clone(), next_peer_backoff(prev, round_start));\n                        }\n                    }\n                } else {\n                    // No route on any chain leg (REQ-PUMP-STAGE-TRUTH stage\n                    // `address-resolution`). Transition-logged: the first\n                    // unroutable round per peer is loud, repeats are quiet —\n                    // the peer retries on its own cadence like before.\n                    if health.note_failed(\n                        peer_hex,\n                        crate::seedproofx::STAGE_RESOLVE,\n                        conns.len(),\n                        now_ms(),\n                    ) {\n                        eprintln!(\n                            \"PUMP_PEER_FAIL:{peer_hex}:stage={}: no route (cache/roster/discovery all empty) wall_ms={} mono_ms={}\",\n                            crate::seedproofx::STAGE_RESOLVE,\n                            now_ms(),\n                            mono_ms()\n                        );\n                    }\n                }\n            }\n        }\n\n        // Drain dial outcomes on the DEDICATED event carrier until the round\n        // deadline (concurrent dials all land within ~one W1 bound). A CONNECTED\n        // runs that peer's legs in THIS round; a DIAL_FAILED backs the peer off; a\n        // peer unresolved at the deadline simply reschedules — NEVER a whole-round\n        // poison. `TimedOut` = quiet (drain done); any other read error = the\n        // broker stopped answering the stream (dead carrier) → bubble → supervised\n        // restart (the re-pointed REQ-HAZARD-PUMP-IPC-DEADLINE: a dead BROKER still\n        // restarts the pump; a dead PEER never does).\n        // [impl->REQ-HAZARD-PUMP-IPC-DEADLINE]\n        let round_deadline = round_start + PEER_REPLY_READ_BUDGET + ROUND_DRAIN_MARGIN;\n        loop {\n            let read_deadline = if pending.is_empty() {\n                Instant::now() // no outstanding submits — sweep only what is queued\n            } else {\n                round_deadline\n            };\n            match classify_drain_read(events.read_event_until(Some(read_deadline))) {\n                DrainStep::Apply(ev) => handle_presence_event(\n                    ev, &mut brain, &mut ops, &mut workers, &due_flags, &mut conns, &mut sched,\n                    &mut pending, &peer_subnets, &ctx, &paths.peer_addrs, &mut health, round_start,\n                )?,\n                DrainStep::Skip => continue, // the event carrier only carries presence\n                DrainStep::RoundDone => break, // quiet (TimedOut) — drain done\n                DrainStep::Restart(e) => return Err(e), // dead broker/carrier → restart\n            }\n        }\n\n        // Persist the round's reachability truth for the status surfaces\n        // (REQ-PUMP-STAGE-TRUTH: the acceptance surface of this contract).\n        health.save_to(&health_path);\n\n        // Mark-after-round with a POST-round instant (ADR-0018 §V4: the\n        // stagger — ran = ATTEMPTED, not succeeded; the next due is measured\n        // from here, not from the round's start).\n        mark_ran(&mut last, &due_flags, Instant::now());\n    }\n    Ok(())\n}\n\n\n[Showing lines 579-733 of 1982. Use :734 to continue]"}],"details":{"truncation":{"content":"    let mut sync_worker = SyncWorker::new(Arc::clone(&registry), paths, &cadence, hooks);\r\n    let mut update_worker = UpdateWorker::new(Arc::clone(&registry), paths, &cadence, full_auto_update);\r\n    let mut workers: [&mut dyn PumpWorker; 4] = [\r\n        &mut registry_worker,\r\n        &mut notif_worker,\r\n        &mut sync_worker,\r\n        &mut update_worker,\r\n    ];\r\n    // WorkerLasts (ADR-0018 §V4): RAM-only last-ran instants, parallel to\r\n    // `workers`. `None` = never run yet → due immediately, so the first tick\r\n    // primes every leg. Never `Instant - Duration` — the underflow panic on a\r\n    // sub-uptime monotonic clock (KH 5.9) lives nowhere in this path.\r\n    let mut last: [Option<Instant>; 4] = [None; 4];\r\n    let mut last_hb: Option<Instant> = None;\r\n\r\n    while !stop.load(Ordering::Relaxed) {\r\n        let now = Instant::now();\r\n        // Shell-owned liveness heartbeat (M8 decision 23, REQ-DAEMON-5): written\r\n        // while the loop is ALIVE — including idle ticks — never per work round,\r\n        // so a wedged step and a healthy quiet pump are distinguishable.\r\n        // Throttled; per-tick, never a worker (REQ-DAEMON-5), no wake.\r\n        // [impl->REQ-DAEMON-5]\r\n        if due(last_hb, false, now, HEARTBEAT_PERIOD) {\r\n            write_heartbeat(&paths.heartbeat);\r\n            last_hb = Some(now);\r\n        }\r\n        // Poll every worker's wake and decide due (the pure scheduler step):\r\n        // every wake is consumed EVERY tick so a marker is never stranded (the\r\n        // registry advertise-now, REQ-CONV-2; the sync freshness pull,\r\n        // REQ-INST-3). The take IS the remove — one wake claims exactly one\r\n        // forced round.\r\n        let (due_flags, any_due) = compute_due(&mut workers, &last, now);\r\n        if !any_due {\r\n            thread::sleep(TICK);\r\n            continue;\r\n        }\r\n\r\n        // Per-round shared loads (§Frozen-3): subnets / attachment /\r\n        // roster-backed policy, read ONCE and handed to every worker.\r\n        let ctx = RoundCtx::load(paths);\r\n\r\n        // Each due worker's node-local pre_round, once per round before ANY\r\n        // peer_step (only the registry leg does work here — its sweep +\r\n        // advertise; the rest default to a no-op).\r\n        pre_rounds(&mut workers, &due_flags, &ctx);\r\n\r\n        // ── PUMP-TRUTH W2 round (REQ-PUMP-PEER-ISOLATION) — concurrent dials +\r\n        // per-peer fault isolation. Group this round's fan-out targets by peer (a\r\n        // peer may target several subnets; one conn serves them all).\r\n        let mut peer_subnets: HashMap<String, Vec<String>> = HashMap::new();\r\n        for (sub_name, peer_hex) in fan_targets(&ctx, registry.node_hex()) {\r\n            peer_subnets.entry(peer_hex).or_default().push(sub_name);\r\n        }\r\n        // Health targets = this round's fan-out set; snapshot the registry\r\n        // host's last-admitted stamp while here (REQ-PUMP-STAGE-TRUTH).\r\n        health.set_targets(peer_subnets.keys().cloned(), now_ms());\r\n        health.note_registry_admit(registry.last_admit_ms());\r\n        let round_start = Instant::now();\r\n        let mut pending: HashSet<String> = HashSet::new();\r\n\r\n        // Submit NON-BLOCKING dials for eligible unconnected peers; run the due\r\n        // legs NOW for already-connected ones. The live peer advertises without\r\n        // waiting on a dead one (no head-of-line block) — a dead peer is only a\r\n        // pending outcome, never a serial blocker.\r\n        for (peer_hex, subs) in &peer_subnets {\r\n            if let Some(&conn_id) = conns.get(peer_hex) {\r\n                run_peer_subnets(\r\n                    &mut brain, &mut ops, &mut workers, &due_flags, &mut conns, &mut sched,\r\n                    conn_id, subs, peer_hex, &ctx, round_start,\r\n                )?;\r\n            } else if peer_eligible(&sched, peer_hex, round_start) {\r\n                if let Some(addr) =\r\n                    resolve_submit_addr(&resolver, peer_hex, &paths.peer_addrs, &ctx.policy.roster)\r\n                {\r\n                    match brain.submit_dial(addr) {\r\n                        Ok(()) => {\r\n                            pending.insert(peer_hex.clone());\r\n                        }\r\n                        // A raw carrier-op TimedOut on the submit IPC itself is a\r\n                        // genuine broker-IPC desync → bubble → supervised restart.\r\n                        Err(e) if e.kind() == io::ErrorKind::TimedOut => return Err(e),\r\n                        // The broker refused the submit (net disabled / bad addr):\r\n                        // an ordinary per-peer failure — back off, round continues.\r\n                        Err(e) => {\r\n                            eprintln!(\r\n                                \"PUMP_PEER_FAIL:{peer_hex}:{e} wall_ms={} mono_ms={}\",\r\n                                now_ms(),\r\n                                mono_ms()\r\n                            );\r\n                            health.note_failed(peer_hex, \"submit\", conns.len(), now_ms());\r\n                            let prev = sched.get(peer_hex).copied();\r\n                            sched.insert(peer_hex.clone(), next_peer_backoff(prev, round_start));\r\n                        }\r\n                    }\r\n                } else {\r\n                    // No route on any chain leg (REQ-PUMP-STAGE-TRUTH stage\r\n                    // `address-resolution`). Transition-logged: the first\r\n                    // unroutable round per peer is loud, repeats are quiet —\r\n                    // the peer retries on its own cadence like before.\r\n                    if health.note_failed(\r\n                        peer_hex,\r\n                        crate::seedproofx::STAGE_RESOLVE,\r\n                        conns.len(),\r\n                        now_ms(),\r\n                    ) {\r\n                        eprintln!(\r\n                            \"PUMP_PEER_FAIL:{peer_hex}:stage={}: no route (cache/roster/discovery all empty) wall_ms={} mono_ms={}\",\r\n                            crate::seedproofx::STAGE_RESOLVE,\r\n                            now_ms(),\r\n                            mono_ms()\r\n                        );\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        // Drain dial outcomes on the DEDICATED event carrier until the round\r\n        // deadline (concurrent dials all land within ~one W1 bound). A CONNECTED\r\n        // runs that peer's legs in THIS round; a DIAL_FAILED backs the peer off; a\r\n        // peer unresolved at the deadline simply reschedules — NEVER a whole-round\r\n        // poison. `TimedOut` = quiet (drain done); any other read error = the\r\n        // broker stopped answering the stream (dead carrier) → bubble → supervised\r\n        // restart (the re-pointed REQ-HAZARD-PUMP-IPC-DEADLINE: a dead BROKER still\r\n        // restarts the pump; a dead PEER never does).\r\n        // [impl->REQ-HAZARD-PUMP-IPC-DEADLINE]\r\n        let round_deadline = round_start + PEER_REPLY_READ_BUDGET + ROUND_DRAIN_MARGIN;\r\n        loop {\r\n            let read_deadline = if pending.is_empty() {\r\n                Instant::now() // no outstanding submits — sweep only what is queued\r\n            } else {\r\n                round_deadline\r\n            };\r\n            match classify_drain_read(events.read_event_until(Some(read_deadline))) {\r\n                DrainStep::Apply(ev) => handle_presence_event(\r\n                    ev, &mut brain, &mut ops, &mut workers, &due_flags, &mut conns, &mut sched,\r\n                    &mut pending, &peer_subnets, &ctx, &paths.peer_addrs, &mut health, round_start,\r\n                )?,\r\n                DrainStep::Skip => continue, // the event carrier only carries presence\r\n                DrainStep::RoundDone => break, // quiet (TimedOut) — drain done\r\n                DrainStep::Restart(e) => return Err(e), // dead broker/carrier → restart\r\n            }\r\n        }\r\n\r\n        // Persist the round's reachability truth for the status surfaces\r\n        // (REQ-PUMP-STAGE-TRUTH: the acceptance surface of this contract).\r\n        health.save_to(&health_path);\r\n\r\n        // Mark-after-round with a POST-round instant (ADR-0018 §V4: the\r\n        // stagger — ran = ATTEMPTED, not succeeded; the next due is measured\r\n        // from here, not from the round's start).\r\n        mark_ran(&mut last, &due_flags, Instant::now());\r\n    }\r\n    Ok(())\r\n}\r\n\r","truncated":true,"truncatedBy":"lines","totalLines":1404,"totalBytes":8386,"outputLines":155,"outputBytes":8386,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"pub fn run_peer_pump(\n…\n) -> io::Result<()> {\n…\n    let mut sync_worker = SyncWorker::new(Arc::clone(&registry), paths, &cadence, hooks);\r\n    let mut update_worker = UpdateWorker::new(Arc::clone(&registry), paths, &cadence, full_auto_update);\r\n    let mut workers: [&mut dyn PumpWorker; 4] = [\r\n        &mut registry_worker,\r\n        &mut notif_worker,\r\n        &mut sync_worker,\r\n        &mut update_worker,\r\n    ];\r\n    // WorkerLasts (ADR-0018 §V4): RAM-only last-ran instants, parallel to\r\n    // `workers`. `None` = never run yet → due immediately, so the first tick\r\n    // primes every leg. Never `Instant - Duration` — the underflow panic on a\r\n    // sub-uptime monotonic clock (KH 5.9) lives nowhere in this path.\r\n    let mut last: [Option<Instant>; 4] = [None; 4];\r\n    let mut last_hb: Option<Instant> = None;\r\n\r\n    while !stop.load(Ordering::Relaxed) {\r\n        let now = Instant::now();\r\n        // Shell-owned liveness heartbeat (M8 decision 23, REQ-DAEMON-5): written\r\n        // while the loop is ALIVE — including idle ticks — never per work round,\r\n        // so a wedged step and a healthy quiet pump are distinguishable.\r\n        // Throttled; per-tick, never a worker (REQ-DAEMON-5), no wake.\r\n        // [impl->REQ-DAEMON-5]\r\n        if due(last_hb, false, now, HEARTBEAT_PERIOD) {\r\n            write_heartbeat(&paths.heartbeat);\r\n            last_hb = Some(now);\r\n        }\r\n        // Poll every worker's wake and decide due (the pure scheduler step):\r\n        // every wake is consumed EVERY tick so a marker is never stranded (the\r\n        // registry advertise-now, REQ-CONV-2; the sync freshness pull,\r\n        // REQ-INST-3). The take IS the remove — one wake claims exactly one\r\n        // forced round.\r\n        let (due_flags, any_due) = compute_due(&mut workers, &last, now);\r\n        if !any_due {\r\n            thread::sleep(TICK);\r\n            continue;\r\n        }\r\n\r\n        // Per-round shared loads (§Frozen-3): subnets / attachment /\r\n        // roster-backed policy, read ONCE and handed to every worker.\r\n        let ctx = RoundCtx::load(paths);\r\n\r\n        // Each due worker's node-local pre_round, once per round before ANY\r\n        // peer_step (only the registry leg does work here — its sweep +\r\n        // advertise; the rest default to a no-op).\r\n        pre_rounds(&mut workers, &due_flags, &ctx);\r\n\r\n        // ── PUMP-TRUTH W2 round (REQ-PUMP-PEER-ISOLATION) — concurrent dials +\r\n        // per-peer fault isolation. Group this round's fan-out targets by peer (a\r\n        // peer may target several subnets; one conn serves them all).\r\n        let mut peer_subnets: HashMap<String, Vec<String>> = HashMap::new();\r\n        for (sub_name, peer_hex) in fan_targets(&ctx, registry.node_hex()) {\r\n            peer_subnets.entry(peer_hex).or_default().push(sub_name);\r\n        }\r\n        // Health targets = this round's fan-out set; snapshot the registry\r\n        // host's last-admitted stamp while here (REQ-PUMP-STAGE-TRUTH).\r\n        health.set_targets(peer_subnets.keys().cloned(), now_ms());\r\n        health.note_registry_admit(registry.last_admit_ms());\r\n        let round_start = Instant::now();\r\n        let mut pending: HashSet<String> = HashSet::new();\r\n\r\n        // Submit NON-BLOCKING dials for eligible unconnected peers; run the due\r\n        // legs NOW for already-connected ones. The live peer advertises without\r\n        // waiting on a dead one (no head-of-line block) — a dead peer is only a\r\n        // pending outcome, never a serial blocker.\r\n        for (peer_hex, subs) in &peer_subnets {\r\n            if let Some(&conn_id) = conns.get(peer_hex) {\r\n                run_peer_subnets(\r\n                    &mut brain, &mut ops, &mut workers, &due_flags, &mut conns, &mut sched,\r\n                    conn_id, subs, peer_hex, &ctx, round_start,\r\n                )?;\r\n            } else if peer_eligible(&sched, peer_hex, round_start) {\r\n                if let Some(addr) =\r\n                    resolve_submit_addr(&resolver, peer_hex, &paths.peer_addrs, &ctx.policy.roster)\r\n                {\r\n                    match brain.submit_dial(addr) {\r\n                        Ok(()) => {\r\n                            pending.insert(peer_hex.clone());\r\n                        }\r\n                        // A raw carrier-op TimedOut on the submit IPC itself is a\r\n                        // genuine broker-IPC desync → bubble → supervised restart.\r\n                        Err(e) if e.kind() == io::ErrorKind::TimedOut => return Err(e),\r\n                        // The broker refused the submit (net disabled / bad addr):\r\n                        // an ordinary per-peer failure — back off, round continues.\r\n                        Err(e) => {\r\n                            eprintln!(\r\n                                \"PUMP_PEER_FAIL:{peer_hex}:{e} wall_ms={} mono_ms={}\",\r\n                                now_ms(),\r\n                                mono_ms()\r\n                            );\r\n                            health.note_failed(peer_hex, \"submit\", conns.len(), now_ms());\r\n                            let prev = sched.get(peer_hex).copied();\r\n                            sched.insert(peer_hex.clone(), next_peer_backoff(prev, round_start));\r\n                        }\r\n                    }\r\n                } else {\r\n                    // No route on any chain leg (REQ-PUMP-STAGE-TRUTH stage\r\n                    // `address-resolution`). Transition-logged: the first\r\n                    // unroutable round per peer is loud, repeats are quiet —\r\n                    // the peer retries on its own cadence like before.\r\n                    if health.note_failed(\r\n                        peer_hex,\r\n                        crate::seedproofx::STAGE_RESOLVE,\r\n                        conns.len(),\r\n                        now_ms(),\r\n                    ) {\r\n                        eprintln!(\r\n                            \"PUMP_PEER_FAIL:{peer_hex}:stage={}: no route (cache/roster/discovery all empty) wall_ms={} mono_ms={}\",\r\n                            crate::seedproofx::STAGE_RESOLVE,\r\n                            now_ms(),\r\n                            mono_ms()\r\n                        );\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        // Drain dial outcomes on the DEDICATED event carrier until the round\r\n        // deadline (concurrent dials all land within ~one W1 bound). A CONNECTED\r\n        // runs that peer's legs in THIS round; a DIAL_FAILED backs the peer off; a\r\n        // peer unresolved at the deadline simply reschedules — NEVER a whole-round\r\n        // poison. `TimedOut` = quiet (drain done); any other read error = the\r\n        // broker stopped answering the stream (dead carrier) → bubble → supervised\r\n        // restart (the re-pointed REQ-HAZARD-PUMP-IPC-DEADLINE: a dead BROKER still\r\n        // restarts the pump; a dead PEER never does).\r\n        // [impl->REQ-HAZARD-PUMP-IPC-DEADLINE]\r\n        let round_deadline = round_start + PEER_REPLY_READ_BUDGET + ROUND_DRAIN_MARGIN;\r\n        loop {\r\n            let read_deadline = if pending.is_empty() {\r\n                Instant::now() // no outstanding submits — sweep only what is queued\r\n            } else {\r\n                round_deadline\r\n            };\r\n            match classify_drain_read(events.read_event_until(Some(read_deadline))) {\r\n                DrainStep::Apply(ev) => handle_presence_event(\r\n                    ev, &mut brain, &mut ops, &mut workers, &due_flags, &mut conns, &mut sched,\r\n                    &mut pending, &peer_subnets, &ctx, &paths.peer_addrs, &mut health, round_start,\r\n                )?,\r\n                DrainStep::Skip => continue, // the event carrier only carries presence\r\n                DrainStep::RoundDone => break, // quiet (TimedOut) — drain done\r\n                DrainStep::Restart(e) => return Err(e), // dead broker/carrier → restart\r\n            }\r\n        }\r\n\r\n        // Persist the round's reachability truth for the status surfaces\r\n        // (REQ-PUMP-STAGE-TRUTH: the acceptance surface of this contract).\r\n        health.save_to(&health_path);\r\n\r\n        // Mark-after-round with a POST-round instant (ADR-0018 §V4: the\r\n        // stagger — ran = ATTEMPTED, not succeeded; the next due is measured\r\n        // from here, not from the round's start).\r\n        mark_ran(&mut last, &due_flags, Instant::now());\r\n    }\r\n    Ok(())\r\n}\r\n\r","startLine":519,"lineNumbers":[519,null,527,null,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\pump\\mod.rs"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":1982,"totalBytes":8386,"outputLines":155,"outputBytes":8386,"shownRange":{"start":579,"end":733},"nextOffset":734}}},"isError":false,"timestamp":1784247401095}}
{"type":"message","id":"ae877ec3","parentId":"7572fafe","timestamp":"2026-07-17T00:16:41.095Z","message":{"role":"toolResult","toolCallId":"call_ie2XzNUqa3H1X0fVHbQDRAwG|fc_05a4d8ea8a10ef0b016a597469020c819897eb41ccdb98404c","toolName":"read","content":[{"type":"text","text":"pub enum MetOutcome {\n…\n}\n\n/// The brain's IPC carrier — either the ordinary whole [`Stream`] (every\n/// non-pump client: blocking, unbounded reads, correct everywhere) or a\n/// **split** carrier for the peer pump.\n///\n/// **Why the split exists (REQ-HAZARD-PUMP-IPC-DEADLINE).** The pump is\n/// single-threaded; a brain-IPC read that blocks forever on a black-holed peer\n/// wedges the whole loop (the 2.2h hfenduleam stall). The deadline must be\n/// cross-platform, and on Windows named pipes interprocess 2.4.2 offers NEITHER\n/// portable read timeout (`set_recv_timeout` → `no_timeouts()`; `set_nonblocking`\n/// → deprecated `PIPE_NOWAIT`, which corrupts mid-stream — proven by the mesh\n/// E2E). So the pump carrier instead **splits** the stream: a dedicated reader\n/// thread does blocking [`read_frame`] on the [`RecvHalf`] and forwards each\n/// framed result down a channel; the main thread writes on the [`SendHalf`] and\n/// reads with [`Receiver::recv_timeout`]. Blocking reads work on both OSes; the\n/// channel supplies the deadline. On a timeout the pump bubbles out to a\n/// supervised restart (a fresh [`Brain`] → fresh split → fresh reader thread);\n/// the old reader, parked in `read_frame`, is abandoned (KH 7.6 leak watch — the\n/// old conn's drop eventually errors its read and the thread exits).\nenum BrainConn {\n    /// The ordinary blocking carrier — every non-pump brain.\n    Whole(Stream),\n    /// The pump carrier: writes go out [`SendHalf`]; framed reads arrive over\n    /// `frames` from the reader thread (`_reader`, named `pump-ipc-reader`).\n    Split {\n        send: SendHalf,\n        frames: Receiver<io::Result<Envelope>>,\n        /// The reader-thread handle — held so the thread is owned, not detached\n        /// silently. On a supervised restart the whole [`Brain`] drops; this\n        /// handle drops with it (the thread, blocked in `read_frame`, is\n        /// abandoned and exits when the old conn closes — KH 7.6).\n        _reader: JoinHandle<()>,\n    },\n}\n\nimpl BrainConn {\n    /// Split a connected+handshaked stream into the pump carrier: spawn the\n    /// `pump-ipc-reader` thread (blocking [`read_frame`] → channel) and keep the\n    /// [`SendHalf`] for writes. The reader logs spawn/exit so a leaked (parked)\n    /// reader is diagnosable in the field (KH 7.6).\n    // [impl->REQ-HAZARD-PUMP-IPC-DEADLINE]\n    fn split_with_reader(stream: Stream) -> BrainConn {\n        let (mut recv, send) = stream.split();\n        let (tx, frames) = mpsc::channel();\n        let reader = thread::Builder::new()\n            .name(\"pump-ipc-reader\".to_string())\n            .spawn(move || {\n                eprintln!(\"PUMP_IPC_READER: spawned\");\n                loop {\n                    let framed = read_frame(&mut recv);\n                    let was_err = framed.is_err();\n                    // Receiver gone (Brain dropped) → stop reading.\n                    if tx.send(framed).is_err() {\n                        break;\n                    }\n                    // A transport error (conn closed / hung up) is terminal —\n                    // forward it once (above), then exit so the thread never\n                    // spins on a dead half.\n                    if was_err {\n                        break;\n                    }\n                }\n                eprintln!(\"PUMP_IPC_READER: exited\");\n            })\n            .expect(\"spawn pump-ipc-reader thread\");\n        BrainConn::Split {\n            send,\n            frames,\n            _reader: reader,\n        }\n    }\n}\n\n/// A live brain attached to a broker.\npub struct Brain {\n    conn: BrainConn,\n    generation: u64,\n    gen_start_ms: u64,\n    session_id: Option<u64>,\n    /// The next output sequence still needed (resume cursor / dedup floor).\n    next_seq: u64,\n    /// Per-net-stream resume cursors (D4b) — the stream-read siblings of\n    /// `next_seq`, set by [`Brain::net_stream_subscribe`] and advanced by\n    /// [`Brain::read_event`] under the same accept/dedup/gap discipline.\n    /// Durability across a handoff is the logic layer's job (a re-attaching\n    /// brain queries `net-streams` and re-subscribes from its durable cursors).\n    net_cursors: std::collections::HashMap<u64, u64>,\n    /// The presence resume cursor (D4c) — the conn-liveness sibling of\n    /// `net_cursors`, set by [`Brain::net_presence_subscribe`] and advanced by\n…\n}\n\n[Showing lines 189-278 of 2236. Use :279 to continue]"}],"details":{"truncation":{"content":"}\r\n\r\n/// The brain's IPC carrier — either the ordinary whole [`Stream`] (every\r\n/// non-pump client: blocking, unbounded reads, correct everywhere) or a\r\n/// **split** carrier for the peer pump.\r\n///\r\n/// **Why the split exists (REQ-HAZARD-PUMP-IPC-DEADLINE).** The pump is\r\n/// single-threaded; a brain-IPC read that blocks forever on a black-holed peer\r\n/// wedges the whole loop (the 2.2h hfenduleam stall). The deadline must be\r\n/// cross-platform, and on Windows named pipes interprocess 2.4.2 offers NEITHER\r\n/// portable read timeout (`set_recv_timeout` → `no_timeouts()`; `set_nonblocking`\r\n/// → deprecated `PIPE_NOWAIT`, which corrupts mid-stream — proven by the mesh\r\n/// E2E). So the pump carrier instead **splits** the stream: a dedicated reader\r\n/// thread does blocking [`read_frame`] on the [`RecvHalf`] and forwards each\r\n/// framed result down a channel; the main thread writes on the [`SendHalf`] and\r\n/// reads with [`Receiver::recv_timeout`]. Blocking reads work on both OSes; the\r\n/// channel supplies the deadline. On a timeout the pump bubbles out to a\r\n/// supervised restart (a fresh [`Brain`] → fresh split → fresh reader thread);\r\n/// the old reader, parked in `read_frame`, is abandoned (KH 7.6 leak watch — the\r\n/// old conn's drop eventually errors its read and the thread exits).\r\nenum BrainConn {\r\n    /// The ordinary blocking carrier — every non-pump brain.\r\n    Whole(Stream),\r\n    /// The pump carrier: writes go out [`SendHalf`]; framed reads arrive over\r\n    /// `frames` from the reader thread (`_reader`, named `pump-ipc-reader`).\r\n    Split {\r\n        send: SendHalf,\r\n        frames: Receiver<io::Result<Envelope>>,\r\n        /// The reader-thread handle — held so the thread is owned, not detached\r\n        /// silently. On a supervised restart the whole [`Brain`] drops; this\r\n        /// handle drops with it (the thread, blocked in `read_frame`, is\r\n        /// abandoned and exits when the old conn closes — KH 7.6).\r\n        _reader: JoinHandle<()>,\r\n    },\r\n}\r\n\r\nimpl BrainConn {\r\n    /// Split a connected+handshaked stream into the pump carrier: spawn the\r\n    /// `pump-ipc-reader` thread (blocking [`read_frame`] → channel) and keep the\r\n    /// [`SendHalf`] for writes. The reader logs spawn/exit so a leaked (parked)\r\n    /// reader is diagnosable in the field (KH 7.6).\r\n    // [impl->REQ-HAZARD-PUMP-IPC-DEADLINE]\r\n    fn split_with_reader(stream: Stream) -> BrainConn {\r\n        let (mut recv, send) = stream.split();\r\n        let (tx, frames) = mpsc::channel();\r\n        let reader = thread::Builder::new()\r\n            .name(\"pump-ipc-reader\".to_string())\r\n            .spawn(move || {\r\n                eprintln!(\"PUMP_IPC_READER: spawned\");\r\n                loop {\r\n                    let framed = read_frame(&mut recv);\r\n                    let was_err = framed.is_err();\r\n                    // Receiver gone (Brain dropped) → stop reading.\r\n                    if tx.send(framed).is_err() {\r\n                        break;\r\n                    }\r\n                    // A transport error (conn closed / hung up) is terminal —\r\n                    // forward it once (above), then exit so the thread never\r\n                    // spins on a dead half.\r\n                    if was_err {\r\n                        break;\r\n                    }\r\n                }\r\n                eprintln!(\"PUMP_IPC_READER: exited\");\r\n            })\r\n            .expect(\"spawn pump-ipc-reader thread\");\r\n        BrainConn::Split {\r\n            send,\r\n            frames,\r\n            _reader: reader,\r\n        }\r\n    }\r\n}\r\n\r\n/// A live brain attached to a broker.\r\npub struct Brain {\r\n    conn: BrainConn,\r\n    generation: u64,\r\n    gen_start_ms: u64,\r\n    session_id: Option<u64>,\r\n    /// The next output sequence still needed (resume cursor / dedup floor).\r\n    next_seq: u64,\r\n    /// Per-net-stream resume cursors (D4b) — the stream-read siblings of\r\n    /// `next_seq`, set by [`Brain::net_stream_subscribe`] and advanced by\r\n    /// [`Brain::read_event`] under the same accept/dedup/gap discipline.\r\n    /// Durability across a handoff is the logic layer's job (a re-attaching\r\n    /// brain queries `net-streams` and re-subscribes from its durable cursors).\r\n    net_cursors: std::collections::HashMap<u64, u64>,\r\n    /// The presence resume cursor (D4c) — the conn-liveness sibling of\r\n    /// `net_cursors`, set by [`Brain::net_presence_subscribe`] and advanced by\r","truncated":true,"truncatedBy":"lines","totalLines":2048,"totalBytes":4451,"outputLines":90,"outputBytes":4451,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"pub enum MetOutcome {\n…\n}\r\n\r\n/// The brain's IPC carrier — either the ordinary whole [`Stream`] (every\r\n/// non-pump client: blocking, unbounded reads, correct everywhere) or a\r\n/// **split** carrier for the peer pump.\r\n///\r\n/// **Why the split exists (REQ-HAZARD-PUMP-IPC-DEADLINE).** The pump is\r\n/// single-threaded; a brain-IPC read that blocks forever on a black-holed peer\r\n/// wedges the whole loop (the 2.2h hfenduleam stall). The deadline must be\r\n/// cross-platform, and on Windows named pipes interprocess 2.4.2 offers NEITHER\r\n/// portable read timeout (`set_recv_timeout` → `no_timeouts()`; `set_nonblocking`\r\n/// → deprecated `PIPE_NOWAIT`, which corrupts mid-stream — proven by the mesh\r\n/// E2E). So the pump carrier instead **splits** the stream: a dedicated reader\r\n/// thread does blocking [`read_frame`] on the [`RecvHalf`] and forwards each\r\n/// framed result down a channel; the main thread writes on the [`SendHalf`] and\r\n/// reads with [`Receiver::recv_timeout`]. Blocking reads work on both OSes; the\r\n/// channel supplies the deadline. On a timeout the pump bubbles out to a\r\n/// supervised restart (a fresh [`Brain`] → fresh split → fresh reader thread);\r\n/// the old reader, parked in `read_frame`, is abandoned (KH 7.6 leak watch — the\r\n/// old conn's drop eventually errors its read and the thread exits).\r\nenum BrainConn {\r\n    /// The ordinary blocking carrier — every non-pump brain.\r\n    Whole(Stream),\r\n    /// The pump carrier: writes go out [`SendHalf`]; framed reads arrive over\r\n    /// `frames` from the reader thread (`_reader`, named `pump-ipc-reader`).\r\n    Split {\r\n        send: SendHalf,\r\n        frames: Receiver<io::Result<Envelope>>,\r\n        /// The reader-thread handle — held so the thread is owned, not detached\r\n        /// silently. On a supervised restart the whole [`Brain`] drops; this\r\n        /// handle drops with it (the thread, blocked in `read_frame`, is\r\n        /// abandoned and exits when the old conn closes — KH 7.6).\r\n        _reader: JoinHandle<()>,\r\n    },\r\n}\r\n\r\nimpl BrainConn {\r\n    /// Split a connected+handshaked stream into the pump carrier: spawn the\r\n    /// `pump-ipc-reader` thread (blocking [`read_frame`] → channel) and keep the\r\n    /// [`SendHalf`] for writes. The reader logs spawn/exit so a leaked (parked)\r\n    /// reader is diagnosable in the field (KH 7.6).\r\n    // [impl->REQ-HAZARD-PUMP-IPC-DEADLINE]\r\n    fn split_with_reader(stream: Stream) -> BrainConn {\r\n        let (mut recv, send) = stream.split();\r\n        let (tx, frames) = mpsc::channel();\r\n        let reader = thread::Builder::new()\r\n            .name(\"pump-ipc-reader\".to_string())\r\n            .spawn(move || {\r\n                eprintln!(\"PUMP_IPC_READER: spawned\");\r\n                loop {\r\n                    let framed = read_frame(&mut recv);\r\n                    let was_err = framed.is_err();\r\n                    // Receiver gone (Brain dropped) → stop reading.\r\n                    if tx.send(framed).is_err() {\r\n                        break;\r\n                    }\r\n                    // A transport error (conn closed / hung up) is terminal —\r\n                    // forward it once (above), then exit so the thread never\r\n                    // spins on a dead half.\r\n                    if was_err {\r\n                        break;\r\n                    }\r\n                }\r\n                eprintln!(\"PUMP_IPC_READER: exited\");\r\n            })\r\n            .expect(\"spawn pump-ipc-reader thread\");\r\n        BrainConn::Split {\r\n            send,\r\n            frames,\r\n            _reader: reader,\r\n        }\r\n    }\r\n}\r\n\r\n/// A live brain attached to a broker.\r\npub struct Brain {\r\n    conn: BrainConn,\r\n    generation: u64,\r\n    gen_start_ms: u64,\r\n    session_id: Option<u64>,\r\n    /// The next output sequence still needed (resume cursor / dedup floor).\r\n    next_seq: u64,\r\n    /// Per-net-stream resume cursors (D4b) — the stream-read siblings of\r\n    /// `next_seq`, set by [`Brain::net_stream_subscribe`] and advanced by\r\n    /// [`Brain::read_event`] under the same accept/dedup/gap discipline.\r\n    /// Durability across a handoff is the logic layer's job (a re-attaching\r\n    /// brain queries `net-streams` and re-subscribes from its durable cursors).\r\n    net_cursors: std::collections::HashMap<u64, u64>,\r\n    /// The presence resume cursor (D4c) — the conn-liveness sibling of\r\n    /// `net_cursors`, set by [`Brain::net_presence_subscribe`] and advanced by\r\n…\n}","startLine":183,"lineNumbers":[183,null,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,null,314]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\brain.rs"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":2236,"totalBytes":4451,"outputLines":90,"outputBytes":4451,"shownRange":{"start":189,"end":278},"nextOffset":279}}},"isError":false,"timestamp":1784247401095}}
{"type":"message","id":"d45b5b25","parentId":"ae877ec3","timestamp":"2026-07-17T00:16:41.114Z","message":{"role":"toolResult","toolCallId":"call_AvlTwhKhqkeJxtEW7JCRfgIZ|fc_05a4d8ea8a10ef0b016a59746901e88198b4768409ec25a64a","toolName":"grep","content":[{"type":"text","text":" 44|ENDPOINT_AUTOSTART:mobile-gw adapter=mobile session=ff56c92af30ecd3e pid=43680 (startup default)\n*45|CONN_WRITE_RETIRED: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 — organic write failure (BrokenPipe: The pipe is being closed. (os error 232)); physical broker conn poisoned + retired, never reused (same retire behavior as POISONED — only the failure class differs) [REQ-CONN-POISON-DIAL-SCOPE]\n*46|CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 event=writer-exit role=controller session=1 reason=write-failed kind=BrokenPipe [REQ-CONN-POISON-ATTRIBUTION]\n 47|DRIVEN_BY_SELFHEAL_OFFLINE:deployah: cleared stale driven_by (no session)\n 48|LIVENESS_RECONCILE_OFFLINE:deployah: no live broker session (dead harness)\n 49|CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=session-detach session=1 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n...\n 54|ENDPOINT_AUTOSTART:lia adapter=claude-spt session=eedd44363fd38392 pid=50824 (startup default)\n*55|CONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698264 mono_ms=2498 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 56|DRIVEN_BY_SELFHEAL_OFFLINE:doyle: cleared stale driven_by (no session)\n 57|LIVENESS_RECONCILE_OFFLINE:doyle: no live broker session (dead harness)\n 58|CONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698291 mono_ms=2524 event=session-detach session=2 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n...\n 64|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698363 mono_ms=2597 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*65|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698366 mono_ms=2600 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 66|WAKE_RESUME:deployah: resuming session 89cc9038-e5d9-429e-b4a9-40fba8af71ee under claude-spt:ccs (pid 40376) — online at bind\n 67|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=session-detach session=3 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 68|CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 70|CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698419 mono_ms=2653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*71|CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698422 mono_ms=2656 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 72|WAKE_RESUME:doyle: resuming session a2fdb848-6643-4e10-b221-6baee7e91b7b under claude-spt:ccs (pid 60892) — online at bind\n 73|CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698447 mono_ms=2681 event=session-detach session=4 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 74|CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698447 mono_ms=2681 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 80|CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698582 mono_ms=2816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*81|CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698586 mono_ms=2819 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 82|WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 58672) — online at bind\n 83|CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698610 mono_ms=2844 event=session-detach session=5 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 84|CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698610 mono_ms=2844 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 114|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*115|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 116|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698862 mono_ms=3096 event=controller-replaced session=2 new_conn=30 [REQ-CONN-POISON-ATTRIBUTION]\n 117|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*118|CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 119|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=3 new_conn=32 [REQ-CONN-POISON-ATTRIBUTION]\n 120|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*121|CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 122|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=4 new_conn=31 [REQ-CONN-POISON-ATTRIBUTION]\n 123|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*124|CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 125|CONN_LIFECYCLE: conn=37 role=brain wall_ms=1784235703719 mono_ms=7953 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 126|CONN_LIFECYCLE: conn=37 role=brain wall_ms=1784235703719 mono_ms=7953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 127|CONN_LIFECYCLE: conn=38 role=brain wall_ms=1784235708770 mono_ms=13004 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 1308|CONN_LIFECYCLE: conn=519 role=brain wall_ms=1784236024652 mono_ms=328885 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1309|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236024682 mono_ms=328915 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 1310|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236024697 mono_ms=328930 event=session-detach session=5 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1311|CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236024697 mono_ms=328930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 1312|CONN_LIFECYCLE: conn=519 role=brain wall_ms=1784236024697 mono_ms=328930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 1333|CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026371 mono_ms=330604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*1334|CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026374 mono_ms=330607 event=writer-exit role=controller session=6 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 1335|WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 60448) — online at bind\n 1336|CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026395 mono_ms=330628 event=session-detach session=6 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 1337|CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026395 mono_ms=330628 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 2295|CONN_LIFECYCLE: conn=922 role=brain stream-subscriber stream=357 controller session=6 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236306915 mono_ms=611147 event=controller-attach session=6 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*2296|CONN_LIFECYCLE: conn=922 role=brain stream-subscriber stream=357 controller session=6 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236306915 mono_ms=611147 event=writer-exit role=controller session=6 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 2297|CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784236307094 mono_ms=611327 event=stream-sub-attach stream=362 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n 2298|CONN_LIFECYCLE: conn=924 role=brain wall_ms=1784236308644 mono_ms=612876 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 2299|CONN_LIFECYCLE: conn=924 role=brain wall_ms=1784236308644 mono_ms=612876 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 2384|CONN_LIFECYCLE: conn=957 role=brain wall_ms=1784236350683 mono_ms=654915 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*2385|CONN_LIFECYCLE: conn=922 role=brain stream-subscriber stream=357 controller session=6 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236350710 mono_ms=654942 event=writer-exit role=controller session=6 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 2386|CONN_LIFECYCLE: conn=922 role=brain stream-subscriber stream=357 controller session=6 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236350724 mono_ms=654956 event=session-detach session=6 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 2387|CONN_LIFECYCLE: conn=922 role=brain stream-subscriber stream=357 controller session=6 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236350724 mono_ms=654956 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 2388|CONN_LIFECYCLE: conn=957 role=brain wall_ms=1784236350724 mono_ms=654956 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 2408|CONN_LIFECYCLE: conn=965 role=brain controller session=7 endpoint=perri by=local wall_ms=1784236354125 mono_ms=658357 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*2409|CONN_LIFECYCLE: conn=965 role=brain controller session=7 endpoint=perri by=local wall_ms=1784236354130 mono_ms=658362 event=writer-exit role=controller session=7 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 2410|WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 3504) — online at bind\n 2411|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n 2412|CONN_LIFECYCLE: conn=965 role=brain controller session=7 endpoint=perri by=local wall_ms=1784236354152 mono_ms=658384 event=session-detach session=7 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n...\n 2653|CONN_LIFECYCLE: conn=1063 role=brain stream-subscriber stream=420 controller session=7 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236466131 mono_ms=770363 event=controller-attach session=7 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*2654|CONN_LIFECYCLE: conn=1063 role=brain stream-subscriber stream=420 controller session=7 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236466131 mono_ms=770363 event=writer-exit role=controller session=7 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 2655|CONN_LIFECYCLE: conn=1065 role=brain wall_ms=1784236467827 mono_ms=772059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 2656|CONN_LIFECYCLE: conn=1065 role=brain wall_ms=1784236467827 mono_ms=772059 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 2657|CONN_LIFECYCLE: conn=1066 role=brain wall_ms=1784236467828 mono_ms=772060 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 2707|CONN_LIFECYCLE: conn=1085 role=brain wall_ms=1784236493773 mono_ms=798005 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*2708|CONN_LIFECYCLE: conn=1063 role=brain stream-subscriber stream=420 controller session=7 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236493795 mono_ms=798027 event=writer-exit role=controller session=7 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 2709|CONN_LIFECYCLE: conn=1063 role=brain stream-subscriber stream=420 controller session=7 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236493809 mono_ms=798041 event=session-detach session=7 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 2710|CONN_LIFECYCLE: conn=1063 role=brain stream-subscriber stream=420 controller session=7 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236493809 mono_ms=798041 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 2711|CONN_LIFECYCLE: conn=1085 role=brain wall_ms=1784236493809 mono_ms=798041 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 2731|CONN_LIFECYCLE: conn=1093 role=brain controller session=8 endpoint=perri by=local wall_ms=1784236495485 mono_ms=799717 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*2732|CONN_LIFECYCLE: conn=1093 role=brain controller session=8 endpoint=perri by=local wall_ms=1784236495488 mono_ms=799720 event=writer-exit role=controller session=8 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 2733|WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 74216) — online at bind\n 2734|CONN_LIFECYCLE: conn=1093 role=brain controller session=8 endpoint=perri by=local wall_ms=1784236495509 mono_ms=799741 event=session-detach session=8 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 2735|CONN_LIFECYCLE: conn=1093 role=brain controller session=8 endpoint=perri by=local wall_ms=1784236495509 mono_ms=799741 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 2901|CONN_LIFECYCLE: conn=1158 role=brain stream-subscriber stream=461 controller session=8 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236576022 mono_ms=880254 event=controller-attach session=8 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*2902|CONN_LIFECYCLE: conn=1158 role=brain stream-subscriber stream=461 controller session=8 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236576022 mono_ms=880254 event=writer-exit role=controller session=8 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 2903|CONN_LIFECYCLE: conn=1160 role=brain wall_ms=1784236576127 mono_ms=880359 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 2904|CONN_LIFECYCLE: conn=1160 role=brain wall_ms=1784236576127 mono_ms=880359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 2905|PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n...\n 2921|CONN_LIFECYCLE: conn=1167 role=brain wall_ms=1784236580228 mono_ms=884460 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*2922|CONN_LIFECYCLE: conn=1158 role=brain stream-subscriber stream=461 controller session=8 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236580255 mono_ms=884487 event=writer-exit role=controller session=8 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 2923|CONN_LIFECYCLE: conn=1158 role=brain stream-subscriber stream=461 controller session=8 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236580269 mono_ms=884501 event=session-detach session=8 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 2924|CONN_LIFECYCLE: conn=1158 role=brain stream-subscriber stream=461 controller session=8 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236580269 mono_ms=884501 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 2925|CONN_LIFECYCLE: conn=1167 role=brain wall_ms=1784236580269 mono_ms=884501 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 2931|CONN_LIFECYCLE: conn=1169 role=brain controller session=9 endpoint=perri by=local wall_ms=1784236581192 mono_ms=885423 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*2932|CONN_LIFECYCLE: conn=1169 role=brain controller session=9 endpoint=perri by=local wall_ms=1784236581194 mono_ms=885426 event=writer-exit role=controller session=9 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 2933|WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 76408) — online at bind\n 2934|CONN_LIFECYCLE: conn=1169 role=brain controller session=9 endpoint=perri by=local wall_ms=1784236581216 mono_ms=885447 event=session-detach session=9 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 2935|CONN_LIFECYCLE: conn=1169 role=brain controller session=9 endpoint=perri by=local wall_ms=1784236581216 mono_ms=885447 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 3036|CONN_LIFECYCLE: conn=1210 role=brain controller session=10 endpoint=todlando by=local wall_ms=1784236622568 mono_ms=926800 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n*3037|CONN_LIFECYCLE: conn=1210 role=brain controller session=10 endpoint=todlando by=local wall_ms=1784236622571 mono_ms=926803 event=writer-exit role=controller session=10 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 3038|CONN_LIFECYCLE: conn=1210 role=brain controller session=10 endpoint=todlando by=local wall_ms=1784236622586 mono_ms=926817 event=session-detach session=10 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n 3039|CONN_LIFECYCLE: conn=1210 role=brain controller session=10 endpoint=todlando by=local wall_ms=1784236622586 mono_ms=926817 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 3040|CONN_LIFECYCLE: conn=1211 role=brain wall_ms=1784236622591 mono_ms=926823 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 3049|CONN_LIFECYCLE: conn=1214 role=brain stream-subscriber stream=485 controller session=10 endpoint=todlando by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236622665 mono_ms=926897 event=controller-attach session=10 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n*3050|CONN_LIFECYCLE: conn=1214 role=brain stream-subscriber stream=485 controller session=10 endpoint=todlando by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236622665 mono_ms=926897 event=writer-exit role=controller session=10 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n 3051|CONN_LIFECYCLE: conn=1216 role=brain wall_ms=1784236623350 mono_ms=927581 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 3052|CONN_LIFECYCLE: conn=1216 role=brain wall_ms=1784236623350 mono_ms=927581 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 3053|CONN_LIFECYCLE: conn=1217 role=brain wall_ms=1784236623351 mono_ms=927583 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 3459|CONN_LIFECYCLE: conn=1374 role=brain wall_ms=1784236893391 mono_ms=1197623 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*3460|CONN_WRITE_POISONED: conn=1369 role=brain stream-subscriber stream=549 wall_ms=1784236894832 mono_ms=1199063 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*3461|CONN_LIFECYCLE: conn=1369 role=brain stream-subscriber stream=549 wall_ms=1784236894832 mono_ms=1199063 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 3462|CONN_LIFECYCLE: conn=1375 role=brain wall_ms=1784236895011 mono_ms=1199243 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 3463|CONN_LIFECYCLE: conn=1375 role=brain wall_ms=1784236895012 mono_ms=1199243 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 3464|CONN_LIFECYCLE: conn=1376 role=brain wall_ms=1784236895025 mono_ms=1199256 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 3502|CONN_LIFECYCLE: conn=1391 role=brain wall_ms=1784236924882 mono_ms=1229113 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*3503|CONN_WRITE_POISONED: conn=1387 role=brain stream-subscriber stream=553 wall_ms=1784236924927 mono_ms=1229158 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*3504|CONN_LIFECYCLE: conn=1387 role=brain stream-subscriber stream=553 wall_ms=1784236924928 mono_ms=1229159 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 3505|CONN_LIFECYCLE: conn=1392 role=brain wall_ms=1784236925034 mono_ms=1229265 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 3506|CONN_LIFECYCLE: conn=1392 role=brain wall_ms=1784236925034 mono_ms=1229265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 3507|CONN_LIFECYCLE: conn=1393 role=brain wall_ms=1784236925036 mono_ms=1229267 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 3640|CONN_LIFECYCLE: conn=1444 role=brain wall_ms=1784237011271 mono_ms=1315502 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*3641|CONN_WRITE_POISONED: conn=1438 role=brain stream-subscriber stream=573 wall_ms=1784237015097 mono_ms=1319328 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*3642|CONN_LIFECYCLE: conn=1438 role=brain stream-subscriber stream=573 wall_ms=1784237015098 mono_ms=1319328 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 3643|CONN_LIFECYCLE: conn=1445 role=brain wall_ms=1784237015199 mono_ms=1319430 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 3644|CONN_LIFECYCLE: conn=1445 role=brain wall_ms=1784237015199 mono_ms=1319430 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 3645|CONN_LIFECYCLE: conn=1446 role=brain wall_ms=1784237016503 mono_ms=1320733 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 3683|CONN_LIFECYCLE: conn=1461 role=brain wall_ms=1784237042986 mono_ms=1347217 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*3684|CONN_WRITE_POISONED: conn=1455 role=brain stream-subscriber stream=577 wall_ms=1784237045271 mono_ms=1349502 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*3685|CONN_LIFECYCLE: conn=1455 role=brain stream-subscriber stream=577 wall_ms=1784237045271 mono_ms=1349502 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 3686|CONN_LIFECYCLE: conn=1462 role=brain wall_ms=1784237045375 mono_ms=1349606 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 3687|CONN_LIFECYCLE: conn=1462 role=brain wall_ms=1784237045375 mono_ms=1349606 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 3688|CONN_LIFECYCLE: conn=1463 role=brain wall_ms=1784237045379 mono_ms=1349610 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 4321|CONN_LIFECYCLE: conn=1707 role=brain wall_ms=1784237505722 mono_ms=1809952 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*4322|CONN_WRITE_POISONED: conn=1702 role=brain stream-subscriber stream=693 wall_ms=1784237506955 mono_ms=1811184 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*4323|CONN_LIFECYCLE: conn=1702 role=brain stream-subscriber stream=693 wall_ms=1784237506955 mono_ms=1811185 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 4324|CONN_LIFECYCLE: conn=1708 role=brain wall_ms=1784237507057 mono_ms=1811287 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 4325|CONN_LIFECYCLE: conn=1708 role=brain wall_ms=1784237507057 mono_ms=1811287 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 4326|CONN_LIFECYCLE: conn=1709 role=brain wall_ms=1784237507059 mono_ms=1811288 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 9159|CONN_LIFECYCLE: conn=3660 role=brain wall_ms=1784239512972 mono_ms=3817197 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*9160|CONN_WRITE_POISONED: conn=3656 role=brain stream-subscriber stream=1439 wall_ms=1784239515929 mono_ms=3820154 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*9161|CONN_LIFECYCLE: conn=3656 role=brain stream-subscriber stream=1439 wall_ms=1784239515929 mono_ms=3820154 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 9162|CONN_LIFECYCLE: conn=3661 role=brain wall_ms=1784239516034 mono_ms=3820259 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 9163|CONN_LIFECYCLE: conn=3662 role=brain wall_ms=1784239516034 mono_ms=3820259 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 9164|CONN_LIFECYCLE: conn=3661 role=brain wall_ms=1784239516034 mono_ms=3820259 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 9797|CONN_LIFECYCLE: conn=3920 role=brain wall_ms=1784239728142 mono_ms=4032366 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*9798|CONN_WRITE_POISONED: conn=3916 role=brain stream-subscriber stream=1532 wall_ms=1784239732662 mono_ms=4036887 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*9799|CONN_LIFECYCLE: conn=3916 role=brain stream-subscriber stream=1532 wall_ms=1784239732667 mono_ms=4036891 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 9800|CONN_LIFECYCLE: conn=3921 role=brain wall_ms=1784239732789 mono_ms=4037014 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 9801|CONN_LIFECYCLE: conn=3921 role=brain wall_ms=1784239732789 mono_ms=4037014 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 9802|CONN_LIFECYCLE: conn=3922 role=brain wall_ms=1784239732791 mono_ms=4037016 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 10056|CONN_LIFECYCLE: conn=4025 role=brain wall_ms=1784239818787 mono_ms=4123012 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*10057|CONN_WRITE_POISONED: conn=4020 role=brain stream-subscriber stream=1567 wall_ms=1784239822958 mono_ms=4127183 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*10058|CONN_LIFECYCLE: conn=4020 role=brain stream-subscriber stream=1567 wall_ms=1784239822959 mono_ms=4127183 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 10059|CONN_LIFECYCLE: conn=4026 role=brain wall_ms=1784239823063 mono_ms=4127288 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 10060|CONN_LIFECYCLE: conn=4026 role=brain wall_ms=1784239823064 mono_ms=4127288 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 10061|CONN_LIFECYCLE: conn=4027 role=brain wall_ms=1784239823064 mono_ms=4127288 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 13145|CONN_LIFECYCLE: conn=5294 role=brain wall_ms=1784240769118 mono_ms=5073340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*13146|CONN_WRITE_POISONED: conn=5292 role=brain stream-subscriber stream=2042 wall_ms=1784240774137 mono_ms=5078360 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*13147|CONN_LIFECYCLE: conn=5292 role=brain stream-subscriber stream=2042 wall_ms=1784240774138 mono_ms=5078360 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 13148|CONN_LIFECYCLE: conn=5295 role=brain wall_ms=1784240774242 mono_ms=5078464 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 13149|CONN_LIFECYCLE: conn=5296 role=brain wall_ms=1784240774242 mono_ms=5078464 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 13150|CONN_LIFECYCLE: conn=5295 role=brain wall_ms=1784240774242 mono_ms=5078464 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 19833|CONN_LIFECYCLE: conn=8053 role=brain wall_ms=1784242633667 mono_ms=6937881 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*19834|CONN_WRITE_POISONED: conn=8050 role=brain stream-subscriber stream=3118 wall_ms=1784242636577 mono_ms=6940791 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*19835|CONN_LIFECYCLE: conn=8050 role=brain stream-subscriber stream=3118 wall_ms=1784242636577 mono_ms=6940791 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 19836|CONN_LIFECYCLE: conn=8054 role=brain wall_ms=1784242636683 mono_ms=6940897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 19837|CONN_LIFECYCLE: conn=8055 role=brain wall_ms=1784242636683 mono_ms=6940897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 19838|CONN_LIFECYCLE: conn=8056 role=brain wall_ms=1784242636683 mono_ms=6940897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 22554|CONN_LIFECYCLE: conn=9175 role=brain wall_ms=1784243363658 mono_ms=7667865 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*22555|CONN_WRITE_POISONED: conn=9171 role=brain stream-subscriber stream=3549 wall_ms=1784243364218 mono_ms=7668425 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*22556|CONN_LIFECYCLE: conn=9171 role=brain stream-subscriber stream=3549 wall_ms=1784243364219 mono_ms=7668426 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 22557|CONN_LIFECYCLE: conn=9176 role=brain wall_ms=1784243364325 mono_ms=7668532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 22558|CONN_LIFECYCLE: conn=9177 role=brain wall_ms=1784243364325 mono_ms=7668532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 22559|CONN_LIFECYCLE: conn=9178 role=brain wall_ms=1784243364325 mono_ms=7668532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 23494|CONN_LIFECYCLE: conn=9563 role=brain wall_ms=1784243610304 mono_ms=7914509 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*23495|CONN_WRITE_POISONED: conn=9558 role=brain stream-subscriber stream=3694 wall_ms=1784243610315 mono_ms=7914520 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*23496|CONN_LIFECYCLE: conn=9558 role=brain stream-subscriber stream=3694 wall_ms=1784243610317 mono_ms=7914521 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 23497|CONN_LIFECYCLE: conn=9564 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 23498|CONN_LIFECYCLE: conn=9565 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 23499|CONN_LIFECYCLE: conn=9566 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 23621|PSYCHE_TURN_FAIL:lia (strike 1/3): commune-sync: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id lia --session-id bf353802-556c-46ce-9865-e74a3092bbe9\n*23622|CONN_WRITE_POISONED: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243641012 mono_ms=7945216 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*23623|CONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243641131 mono_ms=7945335 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 23624|CONN_LIFECYCLE: conn=9618 role=brain wall_ms=1784243641238 mono_ms=7945442 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 23625|CONN_LIFECYCLE: conn=9618 role=brain wall_ms=1784243641238 mono_ms=7945442 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 23626|CONN_LIFECYCLE: conn=9619 role=brain wall_ms=1784243641285 mono_ms=7945489 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 23693|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*23694|CONN_WRITE_POISONED: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243670679 mono_ms=7974883 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n 23695|NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*23696|CONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243670680 mono_ms=7974884 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 23697|PAIR_MEET_UP:SPT_DEV step=59474789 id=a1726c12566a6670ec5dccabb73088578cff957e1ad7a373d364fcdee169b865 addr=EndpointAddr { id: PublicKey(a1726c12566a6670ec5dccabb73088578cff957e1ad7a373d364fcdee169b865), addrs: {Ip(100.68.35.65:59121), Ip(192.168.1.81:59121)} }\n 23698|PAIR_MEET_UP:BIGNET step=59474789 id=91cef822678b84c77ccf4ac94a67ea615e3527f2c1c387c7d4704b33b7fb2a00 addr=EndpointAddr { id: PublicKey(91cef822678b84c77ccf4ac94a67ea615e3527f2c1c387c7d4704b33b7fb2a00), addrs: {Ip(100.68.35.65:59125), Ip(192.168.1.81:59125)} }\n 23699|CONN_LIFECYCLE: conn=9647 role=brain wall_ms=1784243670832 mono_ms=7975036 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 24031|PAIR_MEET_UP:SPT_DEV step=59474792 id=746c534af628051cfc3ff935755ab4af3b34a29120db3a2bb1a3e08586265828 addr=EndpointAddr { id: PublicKey(746c534af628051cfc3ff935755ab4af3b34a29120db3a2bb1a3e08586265828), addrs: {Ip(100.68.35.65:57677), Ip(192.168.1.81:57677)} }\n*24032|CONN_WRITE_POISONED: conn=9776 role=brain stream-subscriber stream=3765 wall_ms=1784243761019 mono_ms=8065222 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*24033|CONN_LIFECYCLE: conn=9776 role=brain stream-subscriber stream=3765 wall_ms=1784243761019 mono_ms=8065223 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 24034|CONN_LIFECYCLE: conn=9780 role=brain wall_ms=1784243761083 mono_ms=8065286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24035|CONN_LIFECYCLE: conn=9780 role=brain wall_ms=1784243761084 mono_ms=8065287 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24036|CONN_LIFECYCLE: conn=9781 role=brain wall_ms=1784243761127 mono_ms=8065330 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 24103|PAIR_MEET_UP:BIGNET step=59474793 id=c99f4dddf22de732e852b31acc6a88564d70854db8366bfbf796e1f7f32f90a0 addr=EndpointAddr { id: PublicKey(c99f4dddf22de732e852b31acc6a88564d70854db8366bfbf796e1f7f32f90a0), addrs: {Ip(100.68.35.65:65036), Ip(192.168.1.81:65036)} }\n*24104|CONN_WRITE_POISONED: conn=9804 role=brain stream-subscriber stream=3774 wall_ms=1784243791130 mono_ms=8095333 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*24105|CONN_LIFECYCLE: conn=9804 role=brain stream-subscriber stream=3774 wall_ms=1784243791131 mono_ms=8095334 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 24106|CONN_LIFECYCLE: conn=9810 role=brain wall_ms=1784243791237 mono_ms=8095440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24107|CONN_LIFECYCLE: conn=9811 role=brain wall_ms=1784243791237 mono_ms=8095440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24108|CONN_LIFECYCLE: conn=9812 role=brain wall_ms=1784243791237 mono_ms=8095440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 24416|CONN_LIFECYCLE: conn=9937 role=brain wall_ms=1784243883812 mono_ms=8188014 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24417|CONN_WRITE_POISONED: conn=9932 role=brain stream-subscriber stream=3818 wall_ms=1784243886384 mono_ms=8190586 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*24418|CONN_LIFECYCLE: conn=9932 role=brain stream-subscriber stream=3818 wall_ms=1784243886385 mono_ms=8190587 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 24419|CONN_LIFECYCLE: conn=9938 role=brain wall_ms=1784243886491 mono_ms=8190693 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24420|CONN_LIFECYCLE: conn=9938 role=brain wall_ms=1784243886491 mono_ms=8190693 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24421|CONN_LIFECYCLE: conn=9939 role=brain wall_ms=1784243886491 mono_ms=8190693 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 24678|CONN_LIFECYCLE: conn=10044 role=brain wall_ms=1784243976464 mono_ms=8280665 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24679|CONN_WRITE_POISONED: conn=10041 role=brain stream-subscriber stream=3858 wall_ms=1784243976705 mono_ms=8280906 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*24680|CONN_LIFECYCLE: conn=10041 role=brain stream-subscriber stream=3858 wall_ms=1784243976706 mono_ms=8280907 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 24681|CONN_LIFECYCLE: conn=10045 role=brain wall_ms=1784243976819 mono_ms=8281020 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24682|CONN_LIFECYCLE: conn=10045 role=brain wall_ms=1784243976819 mono_ms=8281020 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24683|CONN_LIFECYCLE: conn=10046 role=brain wall_ms=1784243976820 mono_ms=8281021 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 24946|CONN_LIFECYCLE: conn=10152 role=brain wall_ms=1784244063056 mono_ms=8367256 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24947|CONN_WRITE_POISONED: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244067399 mono_ms=8371599 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*24948|CONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244067399 mono_ms=8371599 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 24949|CONN_LIFECYCLE: conn=10153 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24950|CONN_LIFECYCLE: conn=10154 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24951|CONN_LIFECYCLE: conn=10155 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n...\n 25018|CONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25019|CONN_WRITE_POISONED: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*25020|CONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 25021|CONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25022|CONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25023|CONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n\nSearched only the first 4MB of large files (matches past the 4MB window are not shown; use `read` for the rest): ..\\..\\..\\AppData\\Local\\spt-core\\logs\\daemon.stderr.log"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":63,"fileCount":1,"files":["C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"],"fileMatches":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","count":63}],"truncated":false,"displayContent":"    44│ENDPOINT_AUTOSTART:mobile-gw adapter=mobile session=ff56c92af30ecd3e pid=43680 (startup default)\n   *45│CONN_WRITE_RETIRED: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 — organic write failure (BrokenPipe: The pipe is being closed. (os error 232)); physical broker conn poisoned + retired, never reused (same retire behavior as POISONED — only the failure class differs) [REQ-CONN-POISON-DIAL-SCOPE]\n   *46│CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698184 mono_ms=2418 event=writer-exit role=controller session=1 reason=write-failed kind=BrokenPipe [REQ-CONN-POISON-ATTRIBUTION]\n    47│DRIVEN_BY_SELFHEAL_OFFLINE:deployah: cleared stale driven_by (no session)\n    48│LIVENESS_RECONCILE_OFFLINE:deployah: no live broker session (dead harness)\n    49│CONN_LIFECYCLE: conn=1 role=brain controller session=1 endpoint=mobile-gw by=local wall_ms=1784235698216 mono_ms=2450 event=session-detach session=1 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n    54│ENDPOINT_AUTOSTART:lia adapter=claude-spt session=eedd44363fd38392 pid=50824 (startup default)\n   *55│CONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698264 mono_ms=2498 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n    56│DRIVEN_BY_SELFHEAL_OFFLINE:doyle: cleared stale driven_by (no session)\n    57│LIVENESS_RECONCILE_OFFLINE:doyle: no live broker session (dead harness)\n    58│CONN_LIFECYCLE: conn=16 role=brain controller session=2 endpoint=lia by=local wall_ms=1784235698291 mono_ms=2524 event=session-detach session=2 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n    64│CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698363 mono_ms=2597 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   *65│CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698366 mono_ms=2600 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n    66│WAKE_RESUME:deployah: resuming session 89cc9038-e5d9-429e-b4a9-40fba8af71ee under claude-spt:ccs (pid 40376) — online at bind\n    67│CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=session-detach session=3 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n    68│CONN_LIFECYCLE: conn=17 role=brain controller session=3 endpoint=deployah by=local wall_ms=1784235698390 mono_ms=2624 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n    70│CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698419 mono_ms=2653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   *71│CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698422 mono_ms=2656 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n    72│WAKE_RESUME:doyle: resuming session a2fdb848-6643-4e10-b221-6baee7e91b7b under claude-spt:ccs (pid 60892) — online at bind\n    73│CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698447 mono_ms=2681 event=session-detach session=4 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n    74│CONN_LIFECYCLE: conn=18 role=brain controller session=4 endpoint=doyle by=local wall_ms=1784235698447 mono_ms=2681 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n    80│CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698582 mono_ms=2816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   *81│CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698586 mono_ms=2819 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n    82│WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 58672) — online at bind\n    83│CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698610 mono_ms=2844 event=session-detach session=5 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n    84│CONN_LIFECYCLE: conn=20 role=brain controller session=5 endpoint=perri by=local wall_ms=1784235698610 mono_ms=2844 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n   114│CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=controller-attach session=5 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  *115│CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698849 mono_ms=3082 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n   116│CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698862 mono_ms=3096 event=controller-replaced session=2 new_conn=30 [REQ-CONN-POISON-ATTRIBUTION]\n   117│CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=controller-attach session=2 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  *118│CONN_LIFECYCLE: conn=30 role=brain stream-subscriber stream=5 controller session=2 endpoint=lia by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698862 mono_ms=3096 event=writer-exit role=controller session=2 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n   119│CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=3 new_conn=32 [REQ-CONN-POISON-ATTRIBUTION]\n   120│CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=3 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  *121│CONN_LIFECYCLE: conn=32 role=brain stream-subscriber stream=1 controller session=3 endpoint=deployah by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=3 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n   122│CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d wall_ms=1784235698863 mono_ms=3097 event=controller-replaced session=4 new_conn=31 [REQ-CONN-POISON-ATTRIBUTION]\n   123│CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=controller-attach session=4 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  *124│CONN_LIFECYCLE: conn=31 role=brain stream-subscriber stream=3 controller session=4 endpoint=doyle by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784235698863 mono_ms=3097 event=writer-exit role=controller session=4 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n   125│CONN_LIFECYCLE: conn=37 role=brain wall_ms=1784235703719 mono_ms=7953 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n   126│CONN_LIFECYCLE: conn=37 role=brain wall_ms=1784235703719 mono_ms=7953 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n   127│CONN_LIFECYCLE: conn=38 role=brain wall_ms=1784235708770 mono_ms=13004 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  1308│CONN_LIFECYCLE: conn=519 role=brain wall_ms=1784236024652 mono_ms=328885 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *1309│CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236024682 mono_ms=328915 event=writer-exit role=controller session=5 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  1310│CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236024697 mono_ms=328930 event=session-detach session=5 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n  1311│CONN_LIFECYCLE: conn=29 role=brain stream-subscriber stream=7 controller session=5 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236024697 mono_ms=328930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  1312│CONN_LIFECYCLE: conn=519 role=brain wall_ms=1784236024697 mono_ms=328930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  1333│CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026371 mono_ms=330604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *1334│CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026374 mono_ms=330607 event=writer-exit role=controller session=6 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  1335│WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 60448) — online at bind\n  1336│CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026395 mono_ms=330628 event=session-detach session=6 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n  1337│CONN_LIFECYCLE: conn=527 role=brain controller session=6 endpoint=perri by=local wall_ms=1784236026395 mono_ms=330628 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  2295│CONN_LIFECYCLE: conn=922 role=brain stream-subscriber stream=357 controller session=6 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236306915 mono_ms=611147 event=controller-attach session=6 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *2296│CONN_LIFECYCLE: conn=922 role=brain stream-subscriber stream=357 controller session=6 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236306915 mono_ms=611147 event=writer-exit role=controller session=6 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  2297│CONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784236307094 mono_ms=611327 event=stream-sub-attach stream=362 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n  2298│CONN_LIFECYCLE: conn=924 role=brain wall_ms=1784236308644 mono_ms=612876 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  2299│CONN_LIFECYCLE: conn=924 role=brain wall_ms=1784236308644 mono_ms=612876 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  2384│CONN_LIFECYCLE: conn=957 role=brain wall_ms=1784236350683 mono_ms=654915 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *2385│CONN_LIFECYCLE: conn=922 role=brain stream-subscriber stream=357 controller session=6 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236350710 mono_ms=654942 event=writer-exit role=controller session=6 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  2386│CONN_LIFECYCLE: conn=922 role=brain stream-subscriber stream=357 controller session=6 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236350724 mono_ms=654956 event=session-detach session=6 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n  2387│CONN_LIFECYCLE: conn=922 role=brain stream-subscriber stream=357 controller session=6 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236350724 mono_ms=654956 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  2388│CONN_LIFECYCLE: conn=957 role=brain wall_ms=1784236350724 mono_ms=654956 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  2408│CONN_LIFECYCLE: conn=965 role=brain controller session=7 endpoint=perri by=local wall_ms=1784236354125 mono_ms=658357 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *2409│CONN_LIFECYCLE: conn=965 role=brain controller session=7 endpoint=perri by=local wall_ms=1784236354130 mono_ms=658362 event=writer-exit role=controller session=7 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  2410│WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 3504) — online at bind\n  2411│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n  2412│CONN_LIFECYCLE: conn=965 role=brain controller session=7 endpoint=perri by=local wall_ms=1784236354152 mono_ms=658384 event=session-detach session=7 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  2653│CONN_LIFECYCLE: conn=1063 role=brain stream-subscriber stream=420 controller session=7 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236466131 mono_ms=770363 event=controller-attach session=7 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *2654│CONN_LIFECYCLE: conn=1063 role=brain stream-subscriber stream=420 controller session=7 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236466131 mono_ms=770363 event=writer-exit role=controller session=7 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  2655│CONN_LIFECYCLE: conn=1065 role=brain wall_ms=1784236467827 mono_ms=772059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  2656│CONN_LIFECYCLE: conn=1065 role=brain wall_ms=1784236467827 mono_ms=772059 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  2657│CONN_LIFECYCLE: conn=1066 role=brain wall_ms=1784236467828 mono_ms=772060 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  2707│CONN_LIFECYCLE: conn=1085 role=brain wall_ms=1784236493773 mono_ms=798005 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *2708│CONN_LIFECYCLE: conn=1063 role=brain stream-subscriber stream=420 controller session=7 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236493795 mono_ms=798027 event=writer-exit role=controller session=7 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  2709│CONN_LIFECYCLE: conn=1063 role=brain stream-subscriber stream=420 controller session=7 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236493809 mono_ms=798041 event=session-detach session=7 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n  2710│CONN_LIFECYCLE: conn=1063 role=brain stream-subscriber stream=420 controller session=7 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236493809 mono_ms=798041 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  2711│CONN_LIFECYCLE: conn=1085 role=brain wall_ms=1784236493809 mono_ms=798041 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  2731│CONN_LIFECYCLE: conn=1093 role=brain controller session=8 endpoint=perri by=local wall_ms=1784236495485 mono_ms=799717 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *2732│CONN_LIFECYCLE: conn=1093 role=brain controller session=8 endpoint=perri by=local wall_ms=1784236495488 mono_ms=799720 event=writer-exit role=controller session=8 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  2733│WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 74216) — online at bind\n  2734│CONN_LIFECYCLE: conn=1093 role=brain controller session=8 endpoint=perri by=local wall_ms=1784236495509 mono_ms=799741 event=session-detach session=8 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n  2735│CONN_LIFECYCLE: conn=1093 role=brain controller session=8 endpoint=perri by=local wall_ms=1784236495509 mono_ms=799741 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  2901│CONN_LIFECYCLE: conn=1158 role=brain stream-subscriber stream=461 controller session=8 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236576022 mono_ms=880254 event=controller-attach session=8 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *2902│CONN_LIFECYCLE: conn=1158 role=brain stream-subscriber stream=461 controller session=8 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236576022 mono_ms=880254 event=writer-exit role=controller session=8 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  2903│CONN_LIFECYCLE: conn=1160 role=brain wall_ms=1784236576127 mono_ms=880359 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  2904│CONN_LIFECYCLE: conn=1160 role=brain wall_ms=1784236576127 mono_ms=880359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  2905│PUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\n      │...\n  2921│CONN_LIFECYCLE: conn=1167 role=brain wall_ms=1784236580228 mono_ms=884460 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *2922│CONN_LIFECYCLE: conn=1158 role=brain stream-subscriber stream=461 controller session=8 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236580255 mono_ms=884487 event=writer-exit role=controller session=8 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  2923│CONN_LIFECYCLE: conn=1158 role=brain stream-subscriber stream=461 controller session=8 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236580269 mono_ms=884501 event=session-detach session=8 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n  2924│CONN_LIFECYCLE: conn=1158 role=brain stream-subscriber stream=461 controller session=8 endpoint=perri by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236580269 mono_ms=884501 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  2925│CONN_LIFECYCLE: conn=1167 role=brain wall_ms=1784236580269 mono_ms=884501 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  2931│CONN_LIFECYCLE: conn=1169 role=brain controller session=9 endpoint=perri by=local wall_ms=1784236581192 mono_ms=885423 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *2932│CONN_LIFECYCLE: conn=1169 role=brain controller session=9 endpoint=perri by=local wall_ms=1784236581194 mono_ms=885426 event=writer-exit role=controller session=9 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  2933│WAKE_RESUME:perri: resuming session anchor-int-proof under claude-spt:ccs (pid 76408) — online at bind\n  2934│CONN_LIFECYCLE: conn=1169 role=brain controller session=9 endpoint=perri by=local wall_ms=1784236581216 mono_ms=885447 event=session-detach session=9 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n  2935│CONN_LIFECYCLE: conn=1169 role=brain controller session=9 endpoint=perri by=local wall_ms=1784236581216 mono_ms=885447 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  3036│CONN_LIFECYCLE: conn=1210 role=brain controller session=10 endpoint=todlando by=local wall_ms=1784236622568 mono_ms=926800 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n *3037│CONN_LIFECYCLE: conn=1210 role=brain controller session=10 endpoint=todlando by=local wall_ms=1784236622571 mono_ms=926803 event=writer-exit role=controller session=10 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  3038│CONN_LIFECYCLE: conn=1210 role=brain controller session=10 endpoint=todlando by=local wall_ms=1784236622586 mono_ms=926817 event=session-detach session=10 was_controller=true viewers_dropped=0 [REQ-CONN-POISON-ATTRIBUTION]\n  3039│CONN_LIFECYCLE: conn=1210 role=brain controller session=10 endpoint=todlando by=local wall_ms=1784236622586 mono_ms=926817 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  3040│CONN_LIFECYCLE: conn=1211 role=brain wall_ms=1784236622591 mono_ms=926823 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  3049│CONN_LIFECYCLE: conn=1214 role=brain stream-subscriber stream=485 controller session=10 endpoint=todlando by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236622665 mono_ms=926897 event=controller-attach session=10 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n *3050│CONN_LIFECYCLE: conn=1214 role=brain stream-subscriber stream=485 controller session=10 endpoint=todlando by=14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d… wall_ms=1784236622665 mono_ms=926897 event=writer-exit role=controller session=10 reason=channel-closed [REQ-CONN-POISON-ATTRIBUTION]\n  3051│CONN_LIFECYCLE: conn=1216 role=brain wall_ms=1784236623350 mono_ms=927581 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  3052│CONN_LIFECYCLE: conn=1216 role=brain wall_ms=1784236623350 mono_ms=927581 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  3053│CONN_LIFECYCLE: conn=1217 role=brain wall_ms=1784236623351 mono_ms=927583 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  3459│CONN_LIFECYCLE: conn=1374 role=brain wall_ms=1784236893391 mono_ms=1197623 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *3460│CONN_WRITE_POISONED: conn=1369 role=brain stream-subscriber stream=549 wall_ms=1784236894832 mono_ms=1199063 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n *3461│CONN_LIFECYCLE: conn=1369 role=brain stream-subscriber stream=549 wall_ms=1784236894832 mono_ms=1199063 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n  3462│CONN_LIFECYCLE: conn=1375 role=brain wall_ms=1784236895011 mono_ms=1199243 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  3463│CONN_LIFECYCLE: conn=1375 role=brain wall_ms=1784236895012 mono_ms=1199243 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  3464│CONN_LIFECYCLE: conn=1376 role=brain wall_ms=1784236895025 mono_ms=1199256 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  3502│CONN_LIFECYCLE: conn=1391 role=brain wall_ms=1784236924882 mono_ms=1229113 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *3503│CONN_WRITE_POISONED: conn=1387 role=brain stream-subscriber stream=553 wall_ms=1784236924927 mono_ms=1229158 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n *3504│CONN_LIFECYCLE: conn=1387 role=brain stream-subscriber stream=553 wall_ms=1784236924928 mono_ms=1229159 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n  3505│CONN_LIFECYCLE: conn=1392 role=brain wall_ms=1784236925034 mono_ms=1229265 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  3506│CONN_LIFECYCLE: conn=1392 role=brain wall_ms=1784236925034 mono_ms=1229265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  3507│CONN_LIFECYCLE: conn=1393 role=brain wall_ms=1784236925036 mono_ms=1229267 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  3640│CONN_LIFECYCLE: conn=1444 role=brain wall_ms=1784237011271 mono_ms=1315502 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *3641│CONN_WRITE_POISONED: conn=1438 role=brain stream-subscriber stream=573 wall_ms=1784237015097 mono_ms=1319328 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n *3642│CONN_LIFECYCLE: conn=1438 role=brain stream-subscriber stream=573 wall_ms=1784237015098 mono_ms=1319328 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n  3643│CONN_LIFECYCLE: conn=1445 role=brain wall_ms=1784237015199 mono_ms=1319430 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  3644│CONN_LIFECYCLE: conn=1445 role=brain wall_ms=1784237015199 mono_ms=1319430 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  3645│CONN_LIFECYCLE: conn=1446 role=brain wall_ms=1784237016503 mono_ms=1320733 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  3683│CONN_LIFECYCLE: conn=1461 role=brain wall_ms=1784237042986 mono_ms=1347217 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *3684│CONN_WRITE_POISONED: conn=1455 role=brain stream-subscriber stream=577 wall_ms=1784237045271 mono_ms=1349502 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n *3685│CONN_LIFECYCLE: conn=1455 role=brain stream-subscriber stream=577 wall_ms=1784237045271 mono_ms=1349502 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n  3686│CONN_LIFECYCLE: conn=1462 role=brain wall_ms=1784237045375 mono_ms=1349606 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  3687│CONN_LIFECYCLE: conn=1462 role=brain wall_ms=1784237045375 mono_ms=1349606 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  3688│CONN_LIFECYCLE: conn=1463 role=brain wall_ms=1784237045379 mono_ms=1349610 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  4321│CONN_LIFECYCLE: conn=1707 role=brain wall_ms=1784237505722 mono_ms=1809952 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *4322│CONN_WRITE_POISONED: conn=1702 role=brain stream-subscriber stream=693 wall_ms=1784237506955 mono_ms=1811184 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n *4323│CONN_LIFECYCLE: conn=1702 role=brain stream-subscriber stream=693 wall_ms=1784237506955 mono_ms=1811185 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n  4324│CONN_LIFECYCLE: conn=1708 role=brain wall_ms=1784237507057 mono_ms=1811287 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  4325│CONN_LIFECYCLE: conn=1708 role=brain wall_ms=1784237507057 mono_ms=1811287 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  4326│CONN_LIFECYCLE: conn=1709 role=brain wall_ms=1784237507059 mono_ms=1811288 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  9159│CONN_LIFECYCLE: conn=3660 role=brain wall_ms=1784239512972 mono_ms=3817197 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *9160│CONN_WRITE_POISONED: conn=3656 role=brain stream-subscriber stream=1439 wall_ms=1784239515929 mono_ms=3820154 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n *9161│CONN_LIFECYCLE: conn=3656 role=brain stream-subscriber stream=1439 wall_ms=1784239515929 mono_ms=3820154 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n  9162│CONN_LIFECYCLE: conn=3661 role=brain wall_ms=1784239516034 mono_ms=3820259 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  9163│CONN_LIFECYCLE: conn=3662 role=brain wall_ms=1784239516034 mono_ms=3820259 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  9164│CONN_LIFECYCLE: conn=3661 role=brain wall_ms=1784239516034 mono_ms=3820259 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n  9797│CONN_LIFECYCLE: conn=3920 role=brain wall_ms=1784239728142 mono_ms=4032366 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n *9798│CONN_WRITE_POISONED: conn=3916 role=brain stream-subscriber stream=1532 wall_ms=1784239732662 mono_ms=4036887 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n *9799│CONN_LIFECYCLE: conn=3916 role=brain stream-subscriber stream=1532 wall_ms=1784239732667 mono_ms=4036891 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n  9800│CONN_LIFECYCLE: conn=3921 role=brain wall_ms=1784239732789 mono_ms=4037014 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n  9801│CONN_LIFECYCLE: conn=3921 role=brain wall_ms=1784239732789 mono_ms=4037014 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n  9802│CONN_LIFECYCLE: conn=3922 role=brain wall_ms=1784239732791 mono_ms=4037016 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 10056│CONN_LIFECYCLE: conn=4025 role=brain wall_ms=1784239818787 mono_ms=4123012 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*10057│CONN_WRITE_POISONED: conn=4020 role=brain stream-subscriber stream=1567 wall_ms=1784239822958 mono_ms=4127183 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*10058│CONN_LIFECYCLE: conn=4020 role=brain stream-subscriber stream=1567 wall_ms=1784239822959 mono_ms=4127183 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 10059│CONN_LIFECYCLE: conn=4026 role=brain wall_ms=1784239823063 mono_ms=4127288 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 10060│CONN_LIFECYCLE: conn=4026 role=brain wall_ms=1784239823064 mono_ms=4127288 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 10061│CONN_LIFECYCLE: conn=4027 role=brain wall_ms=1784239823064 mono_ms=4127288 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 13145│CONN_LIFECYCLE: conn=5294 role=brain wall_ms=1784240769118 mono_ms=5073340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*13146│CONN_WRITE_POISONED: conn=5292 role=brain stream-subscriber stream=2042 wall_ms=1784240774137 mono_ms=5078360 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*13147│CONN_LIFECYCLE: conn=5292 role=brain stream-subscriber stream=2042 wall_ms=1784240774138 mono_ms=5078360 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 13148│CONN_LIFECYCLE: conn=5295 role=brain wall_ms=1784240774242 mono_ms=5078464 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 13149│CONN_LIFECYCLE: conn=5296 role=brain wall_ms=1784240774242 mono_ms=5078464 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 13150│CONN_LIFECYCLE: conn=5295 role=brain wall_ms=1784240774242 mono_ms=5078464 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 19833│CONN_LIFECYCLE: conn=8053 role=brain wall_ms=1784242633667 mono_ms=6937881 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*19834│CONN_WRITE_POISONED: conn=8050 role=brain stream-subscriber stream=3118 wall_ms=1784242636577 mono_ms=6940791 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*19835│CONN_LIFECYCLE: conn=8050 role=brain stream-subscriber stream=3118 wall_ms=1784242636577 mono_ms=6940791 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 19836│CONN_LIFECYCLE: conn=8054 role=brain wall_ms=1784242636683 mono_ms=6940897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 19837│CONN_LIFECYCLE: conn=8055 role=brain wall_ms=1784242636683 mono_ms=6940897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 19838│CONN_LIFECYCLE: conn=8056 role=brain wall_ms=1784242636683 mono_ms=6940897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 22554│CONN_LIFECYCLE: conn=9175 role=brain wall_ms=1784243363658 mono_ms=7667865 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*22555│CONN_WRITE_POISONED: conn=9171 role=brain stream-subscriber stream=3549 wall_ms=1784243364218 mono_ms=7668425 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*22556│CONN_LIFECYCLE: conn=9171 role=brain stream-subscriber stream=3549 wall_ms=1784243364219 mono_ms=7668426 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 22557│CONN_LIFECYCLE: conn=9176 role=brain wall_ms=1784243364325 mono_ms=7668532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 22558│CONN_LIFECYCLE: conn=9177 role=brain wall_ms=1784243364325 mono_ms=7668532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 22559│CONN_LIFECYCLE: conn=9178 role=brain wall_ms=1784243364325 mono_ms=7668532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 23494│CONN_LIFECYCLE: conn=9563 role=brain wall_ms=1784243610304 mono_ms=7914509 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*23495│CONN_WRITE_POISONED: conn=9558 role=brain stream-subscriber stream=3694 wall_ms=1784243610315 mono_ms=7914520 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*23496│CONN_LIFECYCLE: conn=9558 role=brain stream-subscriber stream=3694 wall_ms=1784243610317 mono_ms=7914521 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 23497│CONN_LIFECYCLE: conn=9564 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 23498│CONN_LIFECYCLE: conn=9565 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 23499│CONN_LIFECYCLE: conn=9566 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 23621│PSYCHE_TURN_FAIL:lia (strike 1/3): commune-sync: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id lia --session-id bf353802-556c-46ce-9865-e74a3092bbe9\n*23622│CONN_WRITE_POISONED: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243641012 mono_ms=7945216 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*23623│CONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243641131 mono_ms=7945335 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 23624│CONN_LIFECYCLE: conn=9618 role=brain wall_ms=1784243641238 mono_ms=7945442 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 23625│CONN_LIFECYCLE: conn=9618 role=brain wall_ms=1784243641238 mono_ms=7945442 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 23626│CONN_LIFECYCLE: conn=9619 role=brain wall_ms=1784243641285 mono_ms=7945489 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 23693│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*23694│CONN_WRITE_POISONED: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243670679 mono_ms=7974883 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n 23695│NET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\n*23696│CONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243670680 mono_ms=7974884 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 23697│PAIR_MEET_UP:SPT_DEV step=59474789 id=a1726c12566a6670ec5dccabb73088578cff957e1ad7a373d364fcdee169b865 addr=EndpointAddr { id: PublicKey(a1726c12566a6670ec5dccabb73088578cff957e1ad7a373d364fcdee169b865), addrs: {Ip(100.68.35.65:59121), Ip(192.168.1.81:59121)} }\n 23698│PAIR_MEET_UP:BIGNET step=59474789 id=91cef822678b84c77ccf4ac94a67ea615e3527f2c1c387c7d4704b33b7fb2a00 addr=EndpointAddr { id: PublicKey(91cef822678b84c77ccf4ac94a67ea615e3527f2c1c387c7d4704b33b7fb2a00), addrs: {Ip(100.68.35.65:59125), Ip(192.168.1.81:59125)} }\n 23699│CONN_LIFECYCLE: conn=9647 role=brain wall_ms=1784243670832 mono_ms=7975036 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 24031│PAIR_MEET_UP:SPT_DEV step=59474792 id=746c534af628051cfc3ff935755ab4af3b34a29120db3a2bb1a3e08586265828 addr=EndpointAddr { id: PublicKey(746c534af628051cfc3ff935755ab4af3b34a29120db3a2bb1a3e08586265828), addrs: {Ip(100.68.35.65:57677), Ip(192.168.1.81:57677)} }\n*24032│CONN_WRITE_POISONED: conn=9776 role=brain stream-subscriber stream=3765 wall_ms=1784243761019 mono_ms=8065222 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*24033│CONN_LIFECYCLE: conn=9776 role=brain stream-subscriber stream=3765 wall_ms=1784243761019 mono_ms=8065223 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 24034│CONN_LIFECYCLE: conn=9780 role=brain wall_ms=1784243761083 mono_ms=8065286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24035│CONN_LIFECYCLE: conn=9780 role=brain wall_ms=1784243761084 mono_ms=8065287 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24036│CONN_LIFECYCLE: conn=9781 role=brain wall_ms=1784243761127 mono_ms=8065330 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 24103│PAIR_MEET_UP:BIGNET step=59474793 id=c99f4dddf22de732e852b31acc6a88564d70854db8366bfbf796e1f7f32f90a0 addr=EndpointAddr { id: PublicKey(c99f4dddf22de732e852b31acc6a88564d70854db8366bfbf796e1f7f32f90a0), addrs: {Ip(100.68.35.65:65036), Ip(192.168.1.81:65036)} }\n*24104│CONN_WRITE_POISONED: conn=9804 role=brain stream-subscriber stream=3774 wall_ms=1784243791130 mono_ms=8095333 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*24105│CONN_LIFECYCLE: conn=9804 role=brain stream-subscriber stream=3774 wall_ms=1784243791131 mono_ms=8095334 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 24106│CONN_LIFECYCLE: conn=9810 role=brain wall_ms=1784243791237 mono_ms=8095440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24107│CONN_LIFECYCLE: conn=9811 role=brain wall_ms=1784243791237 mono_ms=8095440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24108│CONN_LIFECYCLE: conn=9812 role=brain wall_ms=1784243791237 mono_ms=8095440 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 24416│CONN_LIFECYCLE: conn=9937 role=brain wall_ms=1784243883812 mono_ms=8188014 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24417│CONN_WRITE_POISONED: conn=9932 role=brain stream-subscriber stream=3818 wall_ms=1784243886384 mono_ms=8190586 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*24418│CONN_LIFECYCLE: conn=9932 role=brain stream-subscriber stream=3818 wall_ms=1784243886385 mono_ms=8190587 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 24419│CONN_LIFECYCLE: conn=9938 role=brain wall_ms=1784243886491 mono_ms=8190693 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24420│CONN_LIFECYCLE: conn=9938 role=brain wall_ms=1784243886491 mono_ms=8190693 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24421│CONN_LIFECYCLE: conn=9939 role=brain wall_ms=1784243886491 mono_ms=8190693 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 24678│CONN_LIFECYCLE: conn=10044 role=brain wall_ms=1784243976464 mono_ms=8280665 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24679│CONN_WRITE_POISONED: conn=10041 role=brain stream-subscriber stream=3858 wall_ms=1784243976705 mono_ms=8280906 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*24680│CONN_LIFECYCLE: conn=10041 role=brain stream-subscriber stream=3858 wall_ms=1784243976706 mono_ms=8280907 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 24681│CONN_LIFECYCLE: conn=10045 role=brain wall_ms=1784243976819 mono_ms=8281020 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24682│CONN_LIFECYCLE: conn=10045 role=brain wall_ms=1784243976819 mono_ms=8281020 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 24683│CONN_LIFECYCLE: conn=10046 role=brain wall_ms=1784243976820 mono_ms=8281021 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 24946│CONN_LIFECYCLE: conn=10152 role=brain wall_ms=1784244063056 mono_ms=8367256 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*24947│CONN_WRITE_POISONED: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244067399 mono_ms=8371599 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*24948│CONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244067399 mono_ms=8371599 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 24949│CONN_LIFECYCLE: conn=10153 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24950│CONN_LIFECYCLE: conn=10154 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 24951│CONN_LIFECYCLE: conn=10155 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 25018│CONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25019│CONN_WRITE_POISONED: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*25020│CONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 25021│CONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25022│CONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25023│CONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]"},"isError":false,"timestamp":1784247401114}}
{"type":"message","id":"26467dcf","parentId":"d45b5b25","timestamp":"2026-07-17T00:16:41.145Z","message":{"role":"toolResult","toolCallId":"call_uOHB9EUqJsn5ccAVrfMv0687|fc_05a4d8ea8a10ef0b016a59746901f08198aaa637dcb2659827","toolName":"grep","content":[{"type":"text","text":"# crates/\n\n## spt/src/\n### cli.rs\n 54|    /// Emit machine-readable JSON instead of the human view. Honored by the\n*55|    /// read/status commands (list, whoami, status, description, role, the *-list\n 56|    /// queries, how-to); action commands ignore it.\n 57|    // [impl->REQ-CLI-JSON]\n 58|    #[arg(long, global = true)]\n...\n 152|    Whoami,\n*153|    /// Subnet membership: status, create, show-code.\n 154|    ///\n 155|    /// A subnet is a private group of paired machines — your agents reach\n 156|    /// each other across every member node. Bare `spt subnet` shows the\n*157|    /// membership status view.\n 158|    Subnet {\n 159|        #[command(subcommand)]\n 160|        action: Option<SubnetCmd>,\n...\n 287|    Api(crate::api::ApiArgs),\n*288|    /// The per-machine daemon: run, stop, or read node status.\n 289|    ///\n*290|    /// Bare `spt daemon` renders the node status view — daemon state,\n 291|    /// member subnets, local endpoints (M8 decision 25).\n 292|    Daemon {\n 293|        #[command(subcommand)]\n...\n 300|    /// retained row with WHO took it (leg + sid + pid + take wall-ms). Hidden — a\n*301|    /// diagnostic surface, not a public verb (so no docs-drift).\n 302|    #[command(hide = true)]\n 303|    SpoolAudit {\n 304|        /// The endpoint id whose spool to read.\n...\n 581|    },\n*582|    /// Node status: daemon state, member subnets, local endpoints (the\n 583|    /// bare `spt daemon` view).\n*584|    Status,\n 585|    /// Restart the daemon's coordinator process in place — no binary change,\n 586|    /// no stop/start. Hosted terminals and the network layer keep running\n 587|    /// untouched; only the coordinator cycles. The recovery verb for a stuck\n...\n 882|    },\n*883|    /// List this owner's instances: canonical id, alias, adapter, status.\n 884|    List {\n 885|        #[arg(long)]\n 886|        owner: Option<String>,\n...\n 920|    /// daemon, and drained by the shell's `api drive-poll --link`. NEVER spooled\n*921|    /// — an offline shell drops the payload with a diagnostic (control is\n 922|    /// live-or-drop, never replayed).\n 923|    Drive {\n 924|        /// Canonical id or alias.\n...\n 1036|    /// the same view.\n*1037|    Status {\n 1038|        /// Limit to one subnet (all member subnets otherwise).\n 1039|        name: Option<String>,\n 1040|        /// Per-node rows: label, online/offline, [online endpoints/total].\n...\n 1078|        /// deadline, the last concrete error) when the search struggles or fails\n*1079|        /// — for diagnosing a join that can't find a member.\n 1080|        #[arg(long)]\n 1081|        verbose: bool,\n 1082|    },\n...\n 1279|    // [impl->REQ-CLI-JSON] the global `--json` (clap global = true) — captured\n*1280|    // before `cli.cmd` is consumed and threaded into the read/status handlers.\n 1281|    let json = cli.json;\n 1282|    // Bare `spt` (no subcommand): an interactive terminal opens the endpoint-run\n 1283|    // picker; a non-TTY (pipe / redirect / CI) NEVER launches the TUI (it would\n...\n 1319|            match action {\n*1320|                // Bare `spt subnet` = the flagless status view WITH the hint\n*1321|                // footer; explicit `status` drops it (M8 decision 12).\n*1322|                None => cmd_subnet_status(None, false, true, json),\n*1323|                Some(SubnetCmd::Status { name, nodes }) => cmd_subnet_status(name, nodes, false, json),\n 1324|                Some(SubnetCmd::Create { name }) => cmd_subnet_create(name),\n 1325|                Some(SubnetCmd::ShowCode { name }) => cmd_subnet_show_code(name, json),\n 1326|                Some(SubnetCmd::Join {\n...\n 1358|                workers,\n*1359|            } => cmd_endpoint_list(subnet, detail, show_all, workers, json),\n 1360|            EndpointCmd::Fork {\n 1361|                src,\n 1362|                new_id,\n...\n 1435|        Cmd::Notif { action } => match action {\n*1436|            NotifCmd::List { subnet } => cmd_notif_list(subnet, json),\n 1437|            NotifCmd::Dismiss { notif_id } => cmd_notif_dismiss(&notif_id),\n 1438|        },\n 1439|        Cmd::Update {\n...\n 1468|        Cmd::SpoolAudit { id, json } => cmd_spool_audit(&id, json),\n*1469|        // The daemon noun (M8 decisions 5, 25b): bare = the node status view.\n 1470|        // [impl->REQ-CLI-2]\n### roster.rs\n 20|    pub alive: bool,\n*21|    /// `true` when the perch is `STATUS_UNBOUND` — a live pre-bind session that is\n 22|    /// attachable but NOT message-addressable (REQ-ENDPOINT-UNBOUND-ATTACH). Such\n 23|    /// a perch reads `alive=false` (is_perch_alive is bound-gated), so the list\n 24|    /// renderers use this to distinguish it from a true offline perch.\n...\n 69|        let ready = perch::resolve_ready_file(&id, ParentHint::Infer).exists();\n*70|        // Single liveness resolver (2.5): daemon-authoritative `status` for\n*71|        // daemon-hosted perches, per-pid probe for external/interim ones.\n 72|        let alive = liveness::is_perch_alive(&perch_path);\n 73|        let unbound = liveness::is_perch_unbound(&perch_path);\n 74|        let address = registry::lookup_address(&id, &owlery);\n\n### api/\n#### reporting.rs\n 99|    // session on the same harness process, so readiness is TRUTH here, not a favor:\n*100|    // re-stamp it (+ status online, idempotent) regardless of which pre-boundary path\n 101|    // removed it. A REAL session end has NO subsequent boundary, so genuine teardown\n 102|    // is untouched.\n 103|    // [impl->REQ-HAZARD-BOUNDARY-READY-STRAND]\n 104|    let _ = std::fs::write(perch::resolve_ready_file(id, ParentHint::Infer), \"\");\n*105|    let _ = info::set_status(&perch_path, spt_store::liveness::STATUS_ONLINE);\n 106|    // Append the rotated session to the ledger (REQ-TERM-6) so the digest spans\n 107|    // this boundary — enumerating the last K sessions, not just the new one. An\n 108|    // unknown mode falls back to a `clear` trigger. Best-effort — a ledger\n...\n 259|        // deleting a live owner's row severs delivery unrecoverably (post-clear\n*260|        // sends hit NO_PERCH while the C-2 boundary re-stamp reads healthy).\n 261|        // Unregister ONLY a row whose owner is dead/offline per the ONE liveness\n 262|        // resolver (KH 2.5-aware); a wrongly-kept dead row still self-heals at\n 263|        // the delivery failed-dial sweep (REQ-HAZARD-REGISTRY-STALE-CLEAN).\n...\n 385|/// The record is **validated against the published contract at the door** — a\n*386|/// malformed/unknown-role line is refused with a diagnostic (unlike the\n 387|/// tail-projection, which leniently skips, the push door rejects bad input early).\n 388|// [impl->REQ-TERM-4]\n 389|pub fn cmd_digest_entry(id: &str) -> i32 {\n...\n 434|/// spool call on this path: a live TCP delivery is the only success, anything\n*435|/// else drops the payload with a diagnostic (exit 0 — a drop is the channel's\n 436|/// defined offline behavior, not a failure).\n 437|// [impl->REQ-SHELL-1]\n 438|// [impl->REQ-API-2]\n...\n 513|        Ok(Some(frame)) => {\n*514|            // The drive frame to stdout (the shell parses it); the diagnostic to\n 515|            // stderr, mirroring the relay command drain.\n 516|            println!(\"{frame}\");\n 517|            eprintln!(\"DRIVE_DELIVERED:{shell_id} owner={owner}\");\n...\n 1246|    // must NOT delete a row whose owner is still alive (the surviving poll listener),\n*1247|    // or every post-clear send misses the lookup → NO_PERCH while ready reads healthy.\n*1248|    // Registered under THIS test's pid = the live-owner shape (status absent → the\n 1249|    // resolver pid-probes the row, exactly the external listener case).\n 1250|    #[test]\n 1251|    fn soft_end_preserves_a_live_listeners_address() {\n\n## spt-daemon/src/\n### endpoint.rs\n*1|//! Canonical per-machine daemon endpoint names + pid path (B6).\n 2|//!\n 3|//! The daemon binds two local-IPC listeners — the broker (PTY hosting, B1/B2)\n 4|//! and the seed-control channel (B6) — under names derived from the active\n...\n 65|\n*66|/// The daemon's pid file: `<spt_home>/daemon.pid`. Best-effort breadcrumb the\n 67|/// running daemon writes on start — discoverable for management/cleanup. Not a\n 68|/// liveness signal (liveness is the seed-control ping); a stale pid here is\n 69|/// harmless because callers probe the socket, never this file.\n*70|pub fn daemon_pid_path() -> PathBuf {\n*71|    spt_home().join(\"daemon.pid\")\n 72|}\n 73|\n 74|/// The brain child's readiness breadcrumb: `<spt_home>/brain.ready` (the brain\n*75|/// child's pid, rewritten each heartbeat). The broker spawns the brain as a\n 76|/// supervised child process (ADR-0018 Q2/Q3 — the two-process restoration); the\n 77|/// child writes this once it has connected to the broker socket, and refreshes\n 78|/// it while attached. A test (or a future readiness-gated rollback, ADR-0018\n*79|/// Q7) reads it to confirm the brain came up and — on a pid change — that it\n*80|/// respawned. Best-effort like the daemon pid breadcrumb; liveness of the\n 81|/// *daemon* is still the seed-control ping, never this file.\n 82|// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\n 83|pub fn brain_ready_path() -> PathBuf {\n...\n 86|\n*87|/// Where the peer pump records its last-tick heartbeat (epoch ms, M8\n 88|/// decision 23 / REQ-DAEMON-5): written each pump tick (D4), read by\n*89|/// `spt daemon status` so a half-dead daemon (pump stalled, dispatcher\n 90|/// alive — the 2026-06-07 hfenduleam shape) renders honestly.\n*91|pub fn pump_heartbeat_path() -> PathBuf {\n*92|    spt_home().join(\"identity\").join(\"pump-heartbeat.json\")\n 93|}\n 94|\n*95|/// Read the pump's last-tick heartbeat (epoch ms). `None` = never written\n 96|/// (a pre-M8 daemon, or one that has not completed a first tick).\n 97|// [impl->REQ-CLI-2]\n*98|pub fn read_pump_heartbeat() -> Option<u64> {\n*99|    let s = std::fs::read_to_string(pump_heartbeat_path()).ok()?;\n 100|    serde_json::from_str::<u64>(s.trim()).ok()\n 101|}\n 102|\n*103|/// Read the pump's reachability health snapshot (`identity/pump-health.json`,\n 104|/// ADR-0039 Decision 5, REQ-PUMP-STAGE-TRUTH). `None` = no pump has ever\n 105|/// written one on this home (an older daemon, or none ran yet).\n 106|// [impl->REQ-PUMP-STAGE-TRUTH]\n*107|pub fn read_pump_health() -> Option<crate::pump::health::PumpHealth> {\n*108|    let path = crate::pump::health::PumpHealth::path_beside(&pump_heartbeat_path());\n 109|    std::fs::metadata(&path).ok()?;\n*110|    Some(crate::pump::health::PumpHealth::load_from(&path))\n 111|}"}],"details":{"scopePath":"crates/spt/src/cli.rs, crates/spt/src/roster.rs, crates/spt/src/api/reporting.rs, crates/spt-daemon/src/endpoint.rs","searchPath":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":49,"fileCount":4,"files":["crates/spt/src/cli.rs","crates/spt/src/roster.rs","crates/spt/src/api/reporting.rs","crates/spt-daemon/src/endpoint.rs"],"fileMatches":[{"path":"crates/spt/src/cli.rs","count":20},{"path":"crates/spt/src/roster.rs","count":3},{"path":"crates/spt/src/api/reporting.rs","count":8},{"path":"crates/spt-daemon/src/endpoint.rs","count":18}],"truncated":true,"perFileLimitReached":20,"displayContent":"# crates/\n\n## spt/src/\n### cli.rs\n   54│    /// Emit machine-readable JSON instead of the human view. Honored by the\n  *55│    /// read/status commands (list, whoami, status, description, role, the *-list\n   56│    /// queries, how-to); action commands ignore it.\n   57│    // [impl->REQ-CLI-JSON]\n   58│    #[arg(long, global = true)]\n     │...\n  152│    Whoami,\n *153│    /// Subnet membership: status, create, show-code.\n  154│    ///\n  155│    /// A subnet is a private group of paired machines — your agents reach\n  156│    /// each other across every member node. Bare `spt subnet` shows the\n *157│    /// membership status view.\n  158│    Subnet {\n  159│        #[command(subcommand)]\n  160│        action: Option<SubnetCmd>,\n     │...\n  287│    Api(crate::api::ApiArgs),\n *288│    /// The per-machine daemon: run, stop, or read node status.\n  289│    ///\n *290│    /// Bare `spt daemon` renders the node status view — daemon state,\n  291│    /// member subnets, local endpoints (M8 decision 25).\n  292│    Daemon {\n  293│        #[command(subcommand)]\n     │...\n  300│    /// retained row with WHO took it (leg + sid + pid + take wall-ms). Hidden — a\n *301│    /// diagnostic surface, not a public verb (so no docs-drift).\n  302│    #[command(hide = true)]\n  303│    SpoolAudit {\n  304│        /// The endpoint id whose spool to read.\n     │...\n  581│    },\n *582│    /// Node status: daemon state, member subnets, local endpoints (the\n  583│    /// bare `spt daemon` view).\n *584│    Status,\n  585│    /// Restart the daemon's coordinator process in place — no binary change,\n  586│    /// no stop/start. Hosted terminals and the network layer keep running\n  587│    /// untouched; only the coordinator cycles. The recovery verb for a stuck\n     │...\n  882│    },\n *883│    /// List this owner's instances: canonical id, alias, adapter, status.\n  884│    List {\n  885│        #[arg(long)]\n  886│        owner: Option<String>,\n     │...\n  920│    /// daemon, and drained by the shell's `api drive-poll --link`. NEVER spooled\n *921│    /// — an offline shell drops the payload with a diagnostic (control is\n  922│    /// live-or-drop, never replayed).\n  923│    Drive {\n  924│        /// Canonical id or alias.\n     │...\n 1036│    /// the same view.\n*1037│    Status {\n 1038│        /// Limit to one subnet (all member subnets otherwise).\n 1039│        name: Option<String>,\n 1040│        /// Per-node rows: label, online/offline, [online endpoints/total].\n     │...\n 1078│        /// deadline, the last concrete error) when the search struggles or fails\n*1079│        /// — for diagnosing a join that can't find a member.\n 1080│        #[arg(long)]\n 1081│        verbose: bool,\n 1082│    },\n     │...\n 1279│    // [impl->REQ-CLI-JSON] the global `--json` (clap global = true) — captured\n*1280│    // before `cli.cmd` is consumed and threaded into the read/status handlers.\n 1281│    let json = cli.json;\n 1282│    // Bare `spt` (no subcommand): an interactive terminal opens the endpoint-run\n 1283│    // picker; a non-TTY (pipe / redirect / CI) NEVER launches the TUI (it would\n     │...\n 1319│            match action {\n*1320│                // Bare `spt subnet` = the flagless status view WITH the hint\n*1321│                // footer; explicit `status` drops it (M8 decision 12).\n*1322│                None => cmd_subnet_status(None, false, true, json),\n*1323│                Some(SubnetCmd::Status { name, nodes }) => cmd_subnet_status(name, nodes, false, json),\n 1324│                Some(SubnetCmd::Create { name }) => cmd_subnet_create(name),\n 1325│                Some(SubnetCmd::ShowCode { name }) => cmd_subnet_show_code(name, json),\n 1326│                Some(SubnetCmd::Join {\n     │...\n 1358│                workers,\n*1359│            } => cmd_endpoint_list(subnet, detail, show_all, workers, json),\n 1360│            EndpointCmd::Fork {\n 1361│                src,\n 1362│                new_id,\n     │...\n 1435│        Cmd::Notif { action } => match action {\n*1436│            NotifCmd::List { subnet } => cmd_notif_list(subnet, json),\n 1437│            NotifCmd::Dismiss { notif_id } => cmd_notif_dismiss(&notif_id),\n 1438│        },\n 1439│        Cmd::Update {\n     │...\n 1468│        Cmd::SpoolAudit { id, json } => cmd_spool_audit(&id, json),\n*1469│        // The daemon noun (M8 decisions 5, 25b): bare = the node status view.\n 1470│        // [impl->REQ-CLI-2]\n### roster.rs\n 20│    pub alive: bool,\n*21│    /// `true` when the perch is `STATUS_UNBOUND` — a live pre-bind session that is\n 22│    /// attachable but NOT message-addressable (REQ-ENDPOINT-UNBOUND-ATTACH). Such\n 23│    /// a perch reads `alive=false` (is_perch_alive is bound-gated), so the list\n 24│    /// renderers use this to distinguish it from a true offline perch.\n   │...\n 69│        let ready = perch::resolve_ready_file(&id, ParentHint::Infer).exists();\n*70│        // Single liveness resolver (2.5): daemon-authoritative `status` for\n*71│        // daemon-hosted perches, per-pid probe for external/interim ones.\n 72│        let alive = liveness::is_perch_alive(&perch_path);\n 73│        let unbound = liveness::is_perch_unbound(&perch_path);\n 74│        let address = registry::lookup_address(&id, &owlery);\n\n### api/\n#### reporting.rs\n   99│    // session on the same harness process, so readiness is TRUTH here, not a favor:\n *100│    // re-stamp it (+ status online, idempotent) regardless of which pre-boundary path\n  101│    // removed it. A REAL session end has NO subsequent boundary, so genuine teardown\n  102│    // is untouched.\n  103│    // [impl->REQ-HAZARD-BOUNDARY-READY-STRAND]\n  104│    let _ = std::fs::write(perch::resolve_ready_file(id, ParentHint::Infer), \"\");\n *105│    let _ = info::set_status(&perch_path, spt_store::liveness::STATUS_ONLINE);\n  106│    // Append the rotated session to the ledger (REQ-TERM-6) so the digest spans\n  107│    // this boundary — enumerating the last K sessions, not just the new one. An\n  108│    // unknown mode falls back to a `clear` trigger. Best-effort — a ledger\n     │...\n  259│        // deleting a live owner's row severs delivery unrecoverably (post-clear\n *260│        // sends hit NO_PERCH while the C-2 boundary re-stamp reads healthy).\n  261│        // Unregister ONLY a row whose owner is dead/offline per the ONE liveness\n  262│        // resolver (KH 2.5-aware); a wrongly-kept dead row still self-heals at\n  263│        // the delivery failed-dial sweep (REQ-HAZARD-REGISTRY-STALE-CLEAN).\n     │...\n  385│/// The record is **validated against the published contract at the door** — a\n *386│/// malformed/unknown-role line is refused with a diagnostic (unlike the\n  387│/// tail-projection, which leniently skips, the push door rejects bad input early).\n  388│// [impl->REQ-TERM-4]\n  389│pub fn cmd_digest_entry(id: &str) -> i32 {\n     │...\n  434│/// spool call on this path: a live TCP delivery is the only success, anything\n *435│/// else drops the payload with a diagnostic (exit 0 — a drop is the channel's\n  436│/// defined offline behavior, not a failure).\n  437│// [impl->REQ-SHELL-1]\n  438│// [impl->REQ-API-2]\n     │...\n  513│        Ok(Some(frame)) => {\n *514│            // The drive frame to stdout (the shell parses it); the diagnostic to\n  515│            // stderr, mirroring the relay command drain.\n  516│            println!(\"{frame}\");\n  517│            eprintln!(\"DRIVE_DELIVERED:{shell_id} owner={owner}\");\n     │...\n 1246│    // must NOT delete a row whose owner is still alive (the surviving poll listener),\n*1247│    // or every post-clear send misses the lookup → NO_PERCH while ready reads healthy.\n*1248│    // Registered under THIS test's pid = the live-owner shape (status absent → the\n 1249│    // resolver pid-probes the row, exactly the external listener case).\n 1250│    #[test]\n 1251│    fn soft_end_preserves_a_live_listeners_address() {\n\n## spt-daemon/src/\n### endpoint.rs\n  *1│//! Canonical per-machine daemon endpoint names + pid path (B6).\n   2│//!\n   3│//! The daemon binds two local-IPC listeners — the broker (PTY hosting, B1/B2)\n   4│//! and the seed-control channel (B6) — under names derived from the active\n    │...\n  65│\n *66│/// The daemon's pid file: `<spt_home>/daemon.pid`. Best-effort breadcrumb the\n  67│/// running daemon writes on start — discoverable for management/cleanup. Not a\n  68│/// liveness signal (liveness is the seed-control ping); a stale pid here is\n  69│/// harmless because callers probe the socket, never this file.\n *70│pub fn daemon_pid_path() -> PathBuf {\n *71│    spt_home().join(\"daemon.pid\")\n  72│}\n  73│\n  74│/// The brain child's readiness breadcrumb: `<spt_home>/brain.ready` (the brain\n *75│/// child's pid, rewritten each heartbeat). The broker spawns the brain as a\n  76│/// supervised child process (ADR-0018 Q2/Q3 — the two-process restoration); the\n  77│/// child writes this once it has connected to the broker socket, and refreshes\n  78│/// it while attached. A test (or a future readiness-gated rollback, ADR-0018\n *79│/// Q7) reads it to confirm the brain came up and — on a pid change — that it\n *80│/// respawned. Best-effort like the daemon pid breadcrumb; liveness of the\n  81│/// *daemon* is still the seed-control ping, never this file.\n  82│// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\n  83│pub fn brain_ready_path() -> PathBuf {\n    │...\n  86│\n *87│/// Where the peer pump records its last-tick heartbeat (epoch ms, M8\n  88│/// decision 23 / REQ-DAEMON-5): written each pump tick (D4), read by\n *89│/// `spt daemon status` so a half-dead daemon (pump stalled, dispatcher\n  90│/// alive — the 2026-06-07 hfenduleam shape) renders honestly.\n *91│pub fn pump_heartbeat_path() -> PathBuf {\n *92│    spt_home().join(\"identity\").join(\"pump-heartbeat.json\")\n  93│}\n  94│\n *95│/// Read the pump's last-tick heartbeat (epoch ms). `None` = never written\n  96│/// (a pre-M8 daemon, or one that has not completed a first tick).\n  97│// [impl->REQ-CLI-2]\n *98│pub fn read_pump_heartbeat() -> Option<u64> {\n *99│    let s = std::fs::read_to_string(pump_heartbeat_path()).ok()?;\n 100│    serde_json::from_str::<u64>(s.trim()).ok()\n 101│}\n 102│\n*103│/// Read the pump's reachability health snapshot (`identity/pump-health.json`,\n 104│/// ADR-0039 Decision 5, REQ-PUMP-STAGE-TRUTH). `None` = no pump has ever\n 105│/// written one on this home (an older daemon, or none ran yet).\n 106│// [impl->REQ-PUMP-STAGE-TRUTH]\n*107│pub fn read_pump_health() -> Option<crate::pump::health::PumpHealth> {\n*108│    let path = crate::pump::health::PumpHealth::path_beside(&pump_heartbeat_path());\n 109│    std::fs::metadata(&path).ok()?;\n*110│    Some(crate::pump::health::PumpHealth::load_from(&path))\n 111│}"},"isError":false,"timestamp":1784247401145}}
{"type":"message","id":"4d57514b","parentId":"26467dcf","timestamp":"2026-07-17T00:16:41.148Z","message":{"role":"toolResult","toolCallId":"call_QHzVV1areKQVG61NYTK26Cre|fc_05a4d8ea8a10ef0b016a59746901cc8198926666d0ba013139","toolName":"read","content":[{"type":"text","text":"CONN_LIFECYCLE: conn=14682 role=brain wall_ms=1784247285523 mono_ms=11589707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14683 role=brain wall_ms=1784247285523 mono_ms=11589707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14683 role=brain wall_ms=1784247285523 mono_ms=11589707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14685 role=brain stream-subscriber stream=5648 wall_ms=1784247285525 mono_ms=11589709 event=stream-sub-attach stream=5648 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14685 role=brain stream-subscriber stream=5648 wall_ms=1784247285525 mono_ms=11589709 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14684 role=brain stream-subscriber stream=5649 wall_ms=1784247285525 mono_ms=11589709 event=stream-sub-attach stream=5649 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14684 role=brain stream-subscriber stream=5649 wall_ms=1784247285525 mono_ms=11589709 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14686 role=brain wall_ms=1784247285527 mono_ms=11589711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14686 role=brain wall_ms=1784247285531 mono_ms=11589715 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14687 role=brain wall_ms=1784247285538 mono_ms=11589722 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14687 role=brain wall_ms=1784247285538 mono_ms=11589722 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14685 role=brain stream-subscriber stream=5648 wall_ms=1784247285539 mono_ms=11589723 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14684 role=brain stream-subscriber stream=5649 wall_ms=1784247285541 mono_ms=11589725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14688 role=brain wall_ms=1784247285545 mono_ms=11589729 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14688 role=brain wall_ms=1784247285546 mono_ms=11589729 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247287168 mono_ms=11591352 event=stream-sub-attach stream=5651 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14689 role=brain wall_ms=1784247288011 mono_ms=11592194 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14689 role=brain wall_ms=1784247288011 mono_ms=11592195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14690 role=brain wall_ms=1784247288012 mono_ms=11592196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14690 role=brain stream-subscriber stream=5652 wall_ms=1784247288012 mono_ms=11592196 event=stream-sub-attach stream=5652 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14690 role=brain stream-subscriber stream=5652 wall_ms=1784247288020 mono_ms=11592204 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14691 role=brain wall_ms=1784247288020 mono_ms=11592204 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14691 role=brain wall_ms=1784247288021 mono_ms=11592204 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14692 role=brain wall_ms=1784247288528 mono_ms=11592711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14692 role=brain wall_ms=1784247288528 mono_ms=11592711 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14693 role=brain stream-subscriber stream=5653 wall_ms=1784247288528 mono_ms=11592712 event=stream-sub-attach stream=5653 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14693 role=brain stream-subscriber stream=5653 wall_ms=1784247288528 mono_ms=11592712 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14693 role=brain stream-subscriber stream=5653 wall_ms=1784247288535 mono_ms=11592719 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14694 role=brain wall_ms=1784247288536 mono_ms=11592719 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14694 role=brain wall_ms=1784247288536 mono_ms=11592720 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14695 role=brain wall_ms=1784247288631 mono_ms=11592814 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14695 role=brain wall_ms=1784247288631 mono_ms=11592815 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14696 role=brain stream-subscriber stream=5654 wall_ms=1784247288631 mono_ms=11592815 event=stream-sub-attach stream=5654 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14696 role=brain stream-subscriber stream=5654 wall_ms=1784247288631 mono_ms=11592815 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14696 role=brain stream-subscriber stream=5654 wall_ms=1784247288636 mono_ms=11592820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14697 role=brain wall_ms=1784247288636 mono_ms=11592820 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14697 role=brain wall_ms=1784247288636 mono_ms=11592820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14698 role=brain wall_ms=1784247290595 mono_ms=11594779 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14698 role=brain wall_ms=1784247290595 mono_ms=11594779 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14699 role=brain wall_ms=1784247295075 mono_ms=11599258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14699 role=brain wall_ms=1784247295075 mono_ms=11599258 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14700 role=brain wall_ms=1784247295076 mono_ms=11599260 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14700 role=brain stream-subscriber stream=5655 wall_ms=1784247295076 mono_ms=11599260 event=stream-sub-attach stream=5655 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14700 role=brain stream-subscriber stream=5655 wall_ms=1784247295079 mono_ms=11599263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14701 role=brain wall_ms=1784247295079 mono_ms=11599263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14701 role=brain wall_ms=1784247295079 mono_ms=11599263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14702 role=brain wall_ms=1784247295283 mono_ms=11599467 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14703 role=brain wall_ms=1784247295283 mono_ms=11599467 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14702 role=brain wall_ms=1784247295283 mono_ms=11599467 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14703 role=brain wall_ms=1784247295283 mono_ms=11599467 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14704 role=brain wall_ms=1784247295285 mono_ms=11599469 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14704 role=brain stream-subscriber stream=5656 wall_ms=1784247295285 mono_ms=11599469 event=stream-sub-attach stream=5656 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14704 role=brain stream-subscriber stream=5656 wall_ms=1784247295294 mono_ms=11599478 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14706 role=brain wall_ms=1784247295294 mono_ms=11599478 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14706 role=brain wall_ms=1784247295294 mono_ms=11599478 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14705 role=brain wall_ms=1784247295295 mono_ms=11599479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14705 role=brain stream-subscriber stream=5657 wall_ms=1784247295295 mono_ms=11599479 event=stream-sub-attach stream=5657 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14705 role=brain stream-subscriber stream=5657 wall_ms=1784247295297 mono_ms=11599481 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14707 role=brain wall_ms=1784247295297 mono_ms=11599481 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14707 role=brain wall_ms=1784247295297 mono_ms=11599481 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14708 role=brain wall_ms=1784247295856 mono_ms=11600040 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14708 role=brain wall_ms=1784247295857 mono_ms=11600040 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474910 id=62f9291a0c35938d7ba2f9c98e5bbaad27a0a242c53497e47adf1f4981578ed7 addr=EndpointAddr { id: PublicKey(62f9291a0c35938d7ba2f9c98e5bbaad27a0a242c53497e47adf1f4981578ed7), addrs: {Ip(100.68.35.65:55088), Ip(192.168.1.81:55088)} }\nPAIR_MEET_UP:BIGNET step=59474910 id=357dda2573f03366ab2cccc66a04e279f7d7fa57af7f000c2a652cb2137c8456 addr=EndpointAddr { id: PublicKey(357dda2573f03366ab2cccc66a04e279f7d7fa57af7f000c2a652cb2137c8456), addrs: {Ip(100.68.35.65:55090), Ip(192.168.1.81:55090)} }\nCONN_LIFECYCLE: conn=14709 role=brain wall_ms=1784247300905 mono_ms=11605089 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14709 role=brain wall_ms=1784247300905 mono_ms=11605089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14710 role=brain wall_ms=1784247303068 mono_ms=11607252 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14710 role=brain wall_ms=1784247303068 mono_ms=11607252 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14711 role=brain wall_ms=1784247303069 mono_ms=11607253 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14711 role=brain stream-subscriber stream=5658 wall_ms=1784247303069 mono_ms=11607253 event=stream-sub-attach stream=5658 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14711 role=brain stream-subscriber stream=5658 wall_ms=1784247303078 mono_ms=11607261 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14712 role=brain wall_ms=1784247303078 mono_ms=11607261 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14712 role=brain wall_ms=1784247303078 mono_ms=11607261 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14713 role=brain wall_ms=1784247305964 mono_ms=11610148 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14713 role=brain wall_ms=1784247305964 mono_ms=11610148 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14714 role=brain wall_ms=1784247310116 mono_ms=11614300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14714 role=brain wall_ms=1784247310116 mono_ms=11614300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14715 role=brain wall_ms=1784247310117 mono_ms=11614301 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14715 role=brain stream-subscriber stream=5662 wall_ms=1784247310117 mono_ms=11614301 event=stream-sub-attach stream=5662 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14715 role=brain stream-subscriber stream=5662 wall_ms=1784247310119 mono_ms=11614303 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14716 role=brain wall_ms=1784247310119 mono_ms=11614303 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14716 role=brain wall_ms=1784247310119 mono_ms=11614303 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14717 role=brain wall_ms=1784247310323 mono_ms=11614507 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14718 role=brain wall_ms=1784247310323 mono_ms=11614507 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14717 role=brain wall_ms=1784247310323 mono_ms=11614507 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14718 role=brain wall_ms=1784247310323 mono_ms=11614507 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14719 role=brain wall_ms=1784247310325 mono_ms=11614508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14719 role=brain stream-subscriber stream=5663 wall_ms=1784247310325 mono_ms=11614509 event=stream-sub-attach stream=5663 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14719 role=brain stream-subscriber stream=5663 wall_ms=1784247310329 mono_ms=11614513 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14721 role=brain wall_ms=1784247310329 mono_ms=11614513 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14721 role=brain wall_ms=1784247310329 mono_ms=11614513 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14720 role=brain wall_ms=1784247310340 mono_ms=11614524 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14720 role=brain stream-subscriber stream=5664 wall_ms=1784247310340 mono_ms=11614524 event=stream-sub-attach stream=5664 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14720 role=brain stream-subscriber stream=5664 wall_ms=1784247310342 mono_ms=11614526 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14722 role=brain wall_ms=1784247310342 mono_ms=11614526 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14722 role=brain wall_ms=1784247310342 mono_ms=11614526 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14723 role=brain wall_ms=1784247311012 mono_ms=11615196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14723 role=brain wall_ms=1784247311012 mono_ms=11615196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14724 role=brain wall_ms=1784247314292 mono_ms=11618475 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14724 role=brain wall_ms=1784247314292 mono_ms=11618476 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14725 role=brain wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14726 role=brain wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14725 role=brain wall_ms=1784247315603 mono_ms=11619787 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14726 role=brain wall_ms=1784247315603 mono_ms=11619787 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14727 role=brain stream-subscriber stream=5666 wall_ms=1784247315603 mono_ms=11619787 event=stream-sub-attach stream=5666 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14728 role=brain stream-subscriber stream=5665 wall_ms=1784247315603 mono_ms=11619787 event=stream-sub-attach stream=5665 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14727 role=brain stream-subscriber stream=5666 wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14728 role=brain stream-subscriber stream=5665 wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14729 role=brain wall_ms=1784247315611 mono_ms=11619795 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14728 role=brain stream-subscriber stream=5665 wall_ms=1784247315611 mono_ms=11619795 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14729 role=brain wall_ms=1784247315611 mono_ms=11619795 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14727 role=brain stream-subscriber stream=5666 wall_ms=1784247315612 mono_ms=11619796 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14730 role=brain wall_ms=1784247315614 mono_ms=11619797 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14730 role=brain wall_ms=1784247315614 mono_ms=11619797 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14731 role=brain wall_ms=1784247316065 mono_ms=11620248 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14731 role=brain wall_ms=1784247316065 mono_ms=11620248 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14732 role=brain wall_ms=1784247318086 mono_ms=11622269 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14732 role=brain wall_ms=1784247318086 mono_ms=11622269 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14733 role=brain wall_ms=1784247318087 mono_ms=11622271 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14733 role=brain stream-subscriber stream=5667 wall_ms=1784247318087 mono_ms=11622271 event=stream-sub-attach stream=5667 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14733 role=brain stream-subscriber stream=5667 wall_ms=1784247318096 mono_ms=11622280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14734 role=brain wall_ms=1784247318096 mono_ms=11622280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14734 role=brain wall_ms=1784247318096 mono_ms=11622280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14735 role=brain wall_ms=1784247318502 mono_ms=11622686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14735 role=brain wall_ms=1784247318502 mono_ms=11622686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14736 role=brain stream-subscriber stream=5668 wall_ms=1784247318502 mono_ms=11622686 event=stream-sub-attach stream=5668 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14736 role=brain stream-subscriber stream=5668 wall_ms=1784247318502 mono_ms=11622686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14736 role=brain stream-subscriber stream=5668 wall_ms=1784247318503 mono_ms=11622686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14737 role=brain wall_ms=1784247318503 mono_ms=11622686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14737 role=brain wall_ms=1784247318503 mono_ms=11622687 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14738 role=brain wall_ms=1784247318605 mono_ms=11622789 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14738 role=brain wall_ms=1784247318606 mono_ms=11622789 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14739 role=brain stream-subscriber stream=5669 wall_ms=1784247318606 mono_ms=11622790 event=stream-sub-attach stream=5669 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14739 role=brain stream-subscriber stream=5669 wall_ms=1784247318606 mono_ms=11622790 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14739 role=brain stream-subscriber stream=5669 wall_ms=1784247318613 mono_ms=11622796 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14740 role=brain wall_ms=1784247318613 mono_ms=11622797 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14740 role=brain wall_ms=1784247318613 mono_ms=11622797 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14741 role=brain wall_ms=1784247319021 mono_ms=11623204 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14741 role=brain wall_ms=1784247319021 mono_ms=11623204 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14742 role=brain stream-subscriber stream=5670 wall_ms=1784247319021 mono_ms=11623205 event=stream-sub-attach stream=5670 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14742 role=brain stream-subscriber stream=5670 wall_ms=1784247319021 mono_ms=11623205 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14742 role=brain stream-subscriber stream=5670 wall_ms=1784247319025 mono_ms=11623209 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14743 role=brain wall_ms=1784247319025 mono_ms=11623209 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14743 role=brain wall_ms=1784247319025 mono_ms=11623209 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14744 role=brain wall_ms=1784247321109 mono_ms=11625293 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14744 role=brain wall_ms=1784247321109 mono_ms=11625293 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14745 role=brain wall_ms=1784247325241 mono_ms=11629424 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14745 role=brain wall_ms=1784247325241 mono_ms=11629424 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14746 role=brain wall_ms=1784247325242 mono_ms=11629426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14746 role=brain stream-subscriber stream=5671 wall_ms=1784247325242 mono_ms=11629426 event=stream-sub-attach stream=5671 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14746 role=brain stream-subscriber stream=5671 wall_ms=1784247325245 mono_ms=11629428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14747 role=brain wall_ms=1784247325245 mono_ms=11629429 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14747 role=brain wall_ms=1784247325245 mono_ms=11629429 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14748 role=brain wall_ms=1784247325448 mono_ms=11629632 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14749 role=brain wall_ms=1784247325448 mono_ms=11629632 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14748 role=brain wall_ms=1784247325448 mono_ms=11629632 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14749 role=brain wall_ms=1784247325448 mono_ms=11629632 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14751 role=brain wall_ms=1784247325450 mono_ms=11629633 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14751 role=brain stream-subscriber stream=5672 wall_ms=1784247325450 mono_ms=11629633 event=stream-sub-attach stream=5672 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14750 role=brain wall_ms=1784247325452 mono_ms=11629636 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14750 role=brain stream-subscriber stream=5673 wall_ms=1784247325452 mono_ms=11629636 event=stream-sub-attach stream=5673 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14751 role=brain stream-subscriber stream=5672 wall_ms=1784247325455 mono_ms=11629638 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14752 role=brain wall_ms=1784247325455 mono_ms=11629638 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14752 role=brain wall_ms=1784247325455 mono_ms=11629638 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14750 role=brain stream-subscriber stream=5673 wall_ms=1784247325467 mono_ms=11629651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14753 role=brain wall_ms=1784247325468 mono_ms=11629651 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14753 role=brain wall_ms=1784247325468 mono_ms=11629651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14754 role=brain wall_ms=1784247326162 mono_ms=11630345 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14754 role=brain wall_ms=1784247326162 mono_ms=11630346 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474911 id=efa2b47b10553174c4c09872ca7d1f01bb590a7939251fc4be2b03d04a89643f addr=EndpointAddr { id: PublicKey(efa2b47b10553174c4c09872ca7d1f01bb590a7939251fc4be2b03d04a89643f), addrs: {Ip(100.68.35.65:54049), Ip(192.168.1.81:54049)} }\nPAIR_MEET_UP:BIGNET step=59474911 id=e4ce4135e67ae5bb90f4cd98ebca8d07cd9478cc0e9ab4c82e46cc5a3f7825ed addr=EndpointAddr { id: PublicKey(e4ce4135e67ae5bb90f4cd98ebca8d07cd9478cc0e9ab4c82e46cc5a3f7825ed), addrs: {Ip(100.68.35.65:54055), Ip(192.168.1.81:54055)} }\nCONN_LIFECYCLE: conn=14755 role=brain wall_ms=1784247331212 mono_ms=11635396 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14755 role=brain wall_ms=1784247331213 mono_ms=11635396 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14756 role=brain wall_ms=1784247333216 mono_ms=11637400 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14756 role=brain wall_ms=1784247333217 mono_ms=11637400 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14757 role=brain wall_ms=1784247333218 mono_ms=11637402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14757 role=brain stream-subscriber stream=5674 wall_ms=1784247333218 mono_ms=11637402 event=stream-sub-attach stream=5674 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14757 role=brain stream-subscriber stream=5674 wall_ms=1784247333226 mono_ms=11637410 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14758 role=brain wall_ms=1784247333227 mono_ms=11637410 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14758 role=brain wall_ms=1784247333227 mono_ms=11637410 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14759 role=brain wall_ms=1784247336266 mono_ms=11640450 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14759 role=brain wall_ms=1784247336266 mono_ms=11640450 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14760 role=brain wall_ms=1784247339631 mono_ms=11643815 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14760 role=brain wall_ms=1784247339631 mono_ms=11643815 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14761 role=brain stream-subscriber stream=5678 wall_ms=1784247339632 mono_ms=11643815 event=stream-sub-attach stream=5678 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14761 role=brain stream-subscriber stream=5678 wall_ms=1784247339632 mono_ms=11643815 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14761 role=brain stream-subscriber stream=5678 wall_ms=1784247339632 mono_ms=11643815 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14762 role=brain wall_ms=1784247339632 mono_ms=11643816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14762 role=brain wall_ms=1784247339632 mono_ms=11643816 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14763 role=brain wall_ms=1784247340252 mono_ms=11644436 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14763 role=brain wall_ms=1784247340252 mono_ms=11644436 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14764 role=brain wall_ms=1784247340253 mono_ms=11644437 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14764 role=brain stream-subscriber stream=5679 wall_ms=1784247340253 mono_ms=11644437 event=stream-sub-attach stream=5679 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14764 role=brain stream-subscriber stream=5679 wall_ms=1784247340255 mono_ms=11644439 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14765 role=brain wall_ms=1784247340255 mono_ms=11644439 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14765 role=brain wall_ms=1784247340255 mono_ms=11644439 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14766 role=brain wall_ms=1784247340460 mono_ms=11644644 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14767 role=brain wall_ms=1784247340460 mono_ms=11644644 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14766 role=brain wall_ms=1784247340460 mono_ms=11644644 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14767 role=brain wall_ms=1784247340460 mono_ms=11644644 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14769 role=brain wall_ms=1784247340462 mono_ms=11644645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14769 role=brain stream-subscriber stream=5680 wall_ms=1784247340462 mono_ms=11644645 event=stream-sub-attach stream=5680 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14769 role=brain stream-subscriber stream=5680 wall_ms=1784247340467 mono_ms=11644650 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14770 role=brain wall_ms=1784247340467 mono_ms=11644650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14770 role=brain wall_ms=1784247340467 mono_ms=11644650 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14768 role=brain wall_ms=1784247340477 mono_ms=11644661 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14768 role=brain stream-subscriber stream=5681 wall_ms=1784247340477 mono_ms=11644661 event=stream-sub-attach stream=5681 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14768 role=brain stream-subscriber stream=5681 wall_ms=1784247340479 mono_ms=11644663 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14771 role=brain wall_ms=1784247340480 mono_ms=11644663 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14771 role=brain wall_ms=1784247340480 mono_ms=11644663 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14772 role=brain wall_ms=1784247341320 mono_ms=11645504 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14772 role=brain wall_ms=1784247341320 mono_ms=11645504 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14773 role=brain wall_ms=1784247345116 mono_ms=11649299 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14773 role=brain wall_ms=1784247345116 mono_ms=11649299 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14774 role=brain stream-subscriber stream=5682 wall_ms=1784247345116 mono_ms=11649300 event=stream-sub-attach stream=5682 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14774 role=brain stream-subscriber stream=5682 wall_ms=1784247345116 mono_ms=11649300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14774 role=brain stream-subscriber stream=5682 wall_ms=1784247345116 mono_ms=11649300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14775 role=brain wall_ms=1784247345116 mono_ms=11649300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14775 role=brain wall_ms=1784247345116 mono_ms=11649300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14776 role=brain wall_ms=1784247345220 mono_ms=11649403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14776 role=brain wall_ms=1784247345220 mono_ms=11649403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14777 role=brain stream-subscriber stream=5683 wall_ms=1784247345220 mono_ms=11649404 event=stream-sub-attach stream=5683 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14777 role=brain stream-subscriber stream=5683 wall_ms=1784247345220 mono_ms=11649404 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14777 role=brain stream-subscriber stream=5683 wall_ms=1784247345221 mono_ms=11649404 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14778 role=brain wall_ms=1784247345221 mono_ms=11649404 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14778 role=brain wall_ms=1784247345221 mono_ms=11649404 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14779 role=brain wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14780 role=brain wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14779 role=brain wall_ms=1784247345737 mono_ms=11649920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14780 role=brain wall_ms=1784247345737 mono_ms=11649920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14781 role=brain stream-subscriber stream=5685 wall_ms=1784247345737 mono_ms=11649920 event=stream-sub-attach stream=5685 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14781 role=brain stream-subscriber stream=5685 wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14782 role=brain stream-subscriber stream=5684 wall_ms=1784247345737 mono_ms=11649920 event=stream-sub-attach stream=5684 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14782 role=brain stream-subscriber stream=5684 wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14782 role=brain stream-subscriber stream=5684 wall_ms=1784247345744 mono_ms=11649928 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14783 role=brain wall_ms=1784247345745 mono_ms=11649929 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14783 role=brain wall_ms=1784247345745 mono_ms=11649929 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14781 role=brain stream-subscriber stream=5685 wall_ms=1784247345746 mono_ms=11649930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14784 role=brain wall_ms=1784247345746 mono_ms=11649930 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14784 role=brain wall_ms=1784247345746 mono_ms=11649930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14785 role=brain wall_ms=1784247346369 mono_ms=11650552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14785 role=brain wall_ms=1784247346369 mono_ms=11650553 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14786 role=brain wall_ms=1784247348325 mono_ms=11652508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14786 role=brain wall_ms=1784247348325 mono_ms=11652508 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14787 role=brain wall_ms=1784247348326 mono_ms=11652509 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14787 role=brain stream-subscriber stream=5689 wall_ms=1784247348326 mono_ms=11652509 event=stream-sub-attach stream=5689 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14787 role=brain stream-subscriber stream=5689 wall_ms=1784247348335 mono_ms=11652518 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14788 role=brain wall_ms=1784247348335 mono_ms=11652518 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14788 role=brain wall_ms=1784247348335 mono_ms=11652518 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14789 role=brain wall_ms=1784247348843 mono_ms=11653026 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14789 role=brain wall_ms=1784247348843 mono_ms=11653026 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14790 role=brain stream-subscriber stream=5690 wall_ms=1784247348843 mono_ms=11653026 event=stream-sub-attach stream=5690 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14790 role=brain stream-subscriber stream=5690 wall_ms=1784247348843 mono_ms=11653027 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14790 role=brain stream-subscriber stream=5690 wall_ms=1784247348851 mono_ms=11653035 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14791 role=brain wall_ms=1784247348852 mono_ms=11653036 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14791 role=brain wall_ms=1784247348852 mono_ms=11653036 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14792 role=brain wall_ms=1784247349361 mono_ms=11653545 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14792 role=brain wall_ms=1784247349361 mono_ms=11653545 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14793 role=brain stream-subscriber stream=5691 wall_ms=1784247349361 mono_ms=11653545 event=stream-sub-attach stream=5691 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14793 role=brain stream-subscriber stream=5691 wall_ms=1784247349361 mono_ms=11653545 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14793 role=brain stream-subscriber stream=5691 wall_ms=1784247349366 mono_ms=11653550 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14794 role=brain wall_ms=1784247349367 mono_ms=11653550 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14794 role=brain wall_ms=1784247349367 mono_ms=11653550 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14795 role=brain wall_ms=1784247351420 mono_ms=11655604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14795 role=brain wall_ms=1784247351420 mono_ms=11655604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14796 role=brain wall_ms=1784247355367 mono_ms=11659551 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14796 role=brain wall_ms=1784247355368 mono_ms=11659551 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14797 role=brain wall_ms=1784247355369 mono_ms=11659552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14797 role=brain stream-subscriber stream=5692 wall_ms=1784247355369 mono_ms=11659552 event=stream-sub-attach stream=5692 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14797 role=brain stream-subscriber stream=5692 wall_ms=1784247355371 mono_ms=11659555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14798 role=brain wall_ms=1784247355371 mono_ms=11659555 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14798 role=brain wall_ms=1784247355371 mono_ms=11659555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14800 role=brain wall_ms=1784247355574 mono_ms=11659758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14799 role=brain wall_ms=1784247355574 mono_ms=11659758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14800 role=brain wall_ms=1784247355574 mono_ms=11659758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14799 role=brain wall_ms=1784247355574 mono_ms=11659758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14801 role=brain wall_ms=1784247355576 mono_ms=11659759 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14802 role=brain wall_ms=1784247355576 mono_ms=11659759 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14801 role=brain stream-subscriber stream=5693 wall_ms=1784247355576 mono_ms=11659759 event=stream-sub-attach stream=5693 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14802 role=brain stream-subscriber stream=5694 wall_ms=1784247355576 mono_ms=11659759 event=stream-sub-attach stream=5694 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14802 role=brain stream-subscriber stream=5694 wall_ms=1784247355578 mono_ms=11659761 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14803 role=brain wall_ms=1784247355578 mono_ms=11659761 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14803 role=brain wall_ms=1784247355578 mono_ms=11659761 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14801 role=brain stream-subscriber stream=5693 wall_ms=1784247355581 mono_ms=11659765 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14804 role=brain wall_ms=1784247355581 mono_ms=11659765 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14804 role=brain wall_ms=1784247355581 mono_ms=11659765 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14805 role=brain wall_ms=1784247356474 mono_ms=11660658 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14805 role=brain wall_ms=1784247356475 mono_ms=11660658 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247359973 mono_ms=11664156 event=stream-sub-attach stream=5695 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474912 id=649799cd83ef6717696418969f68da703fdcab5f0f090bdcc941bb4a9e67096c addr=EndpointAddr { id: PublicKey(649799cd83ef6717696418969f68da703fdcab5f0f090bdcc941bb4a9e67096c), addrs: {Ip(100.68.35.65:50506), Ip(192.168.1.81:50506)} }\nPAIR_MEET_UP:BIGNET step=59474912 id=e88940e2687c58f9b822e1d55fabfedbd839960212c2b2fde490fbbbc83ae58f addr=EndpointAddr { id: PublicKey(e88940e2687c58f9b822e1d55fabfedbd839960212c2b2fde490fbbbc83ae58f), addrs: {Ip(100.68.35.65:50512), Ip(192.168.1.81:50512)} }\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247361023 mono_ms=11665207 event=stream-sub-attach stream=5696 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247361365 mono_ms=11665549 event=stream-sub-attach stream=5697 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14806 role=brain wall_ms=1784247361529 mono_ms=11665713 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14806 role=brain wall_ms=1784247361529 mono_ms=11665713 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14807 role=brain wall_ms=1784247363462 mono_ms=11667645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14807 role=brain wall_ms=1784247363462 mono_ms=11667645 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14808 role=brain wall_ms=1784247363463 mono_ms=11667646 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14808 role=brain stream-subscriber stream=5698 wall_ms=1784247363463 mono_ms=11667646 event=stream-sub-attach stream=5698 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14808 role=brain stream-subscriber stream=5698 wall_ms=1784247363471 mono_ms=11667654 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14809 role=brain wall_ms=1784247363471 mono_ms=11667654 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14809 role=brain wall_ms=1784247363471 mono_ms=11667654 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14810 role=brain wall_ms=1784247366580 mono_ms=11670763 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14810 role=brain wall_ms=1784247366580 mono_ms=11670763 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14811 role=brain wall_ms=1784247370413 mono_ms=11674596 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14811 role=brain wall_ms=1784247370413 mono_ms=11674596 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14812 role=brain wall_ms=1784247370414 mono_ms=11674598 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14812 role=brain stream-subscriber stream=5699 wall_ms=1784247370414 mono_ms=11674598 event=stream-sub-attach stream=5699 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14812 role=brain stream-subscriber stream=5699 wall_ms=1784247370416 mono_ms=11674600 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14813 role=brain wall_ms=1784247370417 mono_ms=11674600 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14813 role=brain wall_ms=1784247370417 mono_ms=11674600 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14815 role=brain wall_ms=1784247370620 mono_ms=11674803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14814 role=brain wall_ms=1784247370620 mono_ms=11674803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14815 role=brain wall_ms=1784247370620 mono_ms=11674804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14814 role=brain wall_ms=1784247370620 mono_ms=11674804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14816 role=brain wall_ms=1784247370622 mono_ms=11674805 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14816 role=brain stream-subscriber stream=5701 wall_ms=1784247370622 mono_ms=11674805 event=stream-sub-attach stream=5701 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14816 role=brain stream-subscriber stream=5701 wall_ms=1784247370624 mono_ms=11674808 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14818 role=brain wall_ms=1784247370624 mono_ms=11674808 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14818 role=brain wall_ms=1784247370624 mono_ms=11674808 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14817 role=brain wall_ms=1784247370630 mono_ms=11674814 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14817 role=brain stream-subscriber stream=5700 wall_ms=1784247370630 mono_ms=11674814 event=stream-sub-attach stream=5700 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14817 role=brain stream-subscriber stream=5700 wall_ms=1784247370636 mono_ms=11674820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14819 role=brain wall_ms=1784247370637 mono_ms=11674820 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14819 role=brain wall_ms=1784247370637 mono_ms=11674820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14820 role=brain wall_ms=1784247371638 mono_ms=11675821 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14820 role=brain wall_ms=1784247371638 mono_ms=11675821 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14822 role=brain wall_ms=1784247375916 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14821 role=brain wall_ms=1784247375916 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14822 role=brain wall_ms=1784247375917 mono_ms=11680100 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14821 role=brain wall_ms=1784247375917 mono_ms=11680100 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14824 role=brain stream-subscriber stream=5705 wall_ms=1784247375917 mono_ms=11680100 event=stream-sub-attach stream=5705 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14824 role=brain stream-subscriber stream=5705 wall_ms=1784247375917 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14823 role=brain stream-subscriber stream=5706 wall_ms=1784247375917 mono_ms=11680100 event=stream-sub-attach stream=5706 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14823 role=brain stream-subscriber stream=5706 wall_ms=1784247375917 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14824 role=brain stream-subscriber stream=5705 wall_ms=1784247375922 mono_ms=11680106 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14825 role=brain wall_ms=1784247375923 mono_ms=11680107 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14825 role=brain wall_ms=1784247375923 mono_ms=11680107 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14823 role=brain stream-subscriber stream=5706 wall_ms=1784247375928 mono_ms=11680111 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14826 role=brain wall_ms=1784247375928 mono_ms=11680112 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14826 role=brain wall_ms=1784247375929 mono_ms=11680112 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14827 role=brain wall_ms=1784247376690 mono_ms=11680873 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14827 role=brain wall_ms=1784247376690 mono_ms=11680873 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14828 role=brain wall_ms=1784247378399 mono_ms=11682582 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14828 role=brain wall_ms=1784247378399 mono_ms=11682582 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14829 role=brain wall_ms=1784247378400 mono_ms=11682583 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14829 role=brain stream-subscriber stream=5707 wall_ms=1784247378400 mono_ms=11682583 event=stream-sub-attach stream=5707 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14829 role=brain stream-subscriber stream=5707 wall_ms=1784247378409 mono_ms=11682592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14830 role=brain wall_ms=1784247378409 mono_ms=11682592 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14830 role=brain wall_ms=1784247378409 mono_ms=11682592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14831 role=brain wall_ms=1784247378918 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14832 role=brain wall_ms=1784247378918 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14831 role=brain wall_ms=1784247378918 mono_ms=11683102 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14832 role=brain wall_ms=1784247378918 mono_ms=11683102 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14834 role=brain stream-subscriber stream=5708 wall_ms=1784247378919 mono_ms=11683102 event=stream-sub-attach stream=5708 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14834 role=brain stream-subscriber stream=5708 wall_ms=1784247378919 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14833 role=brain stream-subscriber stream=5709 wall_ms=1784247378919 mono_ms=11683102 event=stream-sub-attach stream=5709 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14833 role=brain stream-subscriber stream=5709 wall_ms=1784247378919 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14833 role=brain stream-subscriber stream=5709 wall_ms=1784247378919 mono_ms=11683103 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14835 role=brain wall_ms=1784247378919 mono_ms=11683103 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14835 role=brain wall_ms=1784247378919 mono_ms=11683103 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14834 role=brain stream-subscriber stream=5708 wall_ms=1784247378926 mono_ms=11683109 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14836 role=brain wall_ms=1784247378926 mono_ms=11683110 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14836 role=brain wall_ms=1784247378926 mono_ms=11683110 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14837 role=brain wall_ms=1784247379643 mono_ms=11683826 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14837 role=brain wall_ms=1784247379643 mono_ms=11683826 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14838 role=brain stream-subscriber stream=5710 wall_ms=1784247379643 mono_ms=11683827 event=stream-sub-attach stream=5710 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14838 role=brain stream-subscriber stream=5710 wall_ms=1784247379643 mono_ms=11683827 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14838 role=brain stream-subscriber stream=5710 wall_ms=1784247379649 mono_ms=11683832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14839 role=brain wall_ms=1784247379649 mono_ms=11683832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14839 role=brain wall_ms=1784247379649 mono_ms=11683832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14840 role=brain wall_ms=1784247381739 mono_ms=11685922 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14840 role=brain wall_ms=1784247381739 mono_ms=11685922 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14841 role=brain wall_ms=1784247385441 mono_ms=11689625 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14841 role=brain wall_ms=1784247385441 mono_ms=11689625 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14842 role=brain wall_ms=1784247385443 mono_ms=11689626 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14842 role=brain stream-subscriber stream=5711 wall_ms=1784247385443 mono_ms=11689626 event=stream-sub-attach stream=5711 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14842 role=brain stream-subscriber stream=5711 wall_ms=1784247385445 mono_ms=11689628 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14843 role=brain wall_ms=1784247385445 mono_ms=11689629 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14843 role=brain wall_ms=1784247385445 mono_ms=11689629 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14844 role=brain wall_ms=1784247385648 mono_ms=11689832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14845 role=brain wall_ms=1784247385648 mono_ms=11689832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14844 role=brain wall_ms=1784247385648 mono_ms=11689832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14845 role=brain wall_ms=1784247385649 mono_ms=11689832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14847 role=brain wall_ms=1784247385650 mono_ms=11689834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14847 role=brain stream-subscriber stream=5713 wall_ms=1784247385650 mono_ms=11689834 event=stream-sub-attach stream=5713 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14847 role=brain stream-subscriber stream=5713 wall_ms=1784247385652 mono_ms=11689836 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14848 role=brain wall_ms=1784247385652 mono_ms=11689836 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14848 role=brain wall_ms=1784247385652 mono_ms=11689836 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain wall_ms=1784247385658 mono_ms=11689841 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain stream-subscriber stream=5712 wall_ms=1784247385658 mono_ms=11689841 event=stream-sub-attach stream=5712 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain stream-subscriber stream=5712 wall_ms=1784247385663 mono_ms=11689846 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14849 role=brain wall_ms=1784247385663 mono_ms=11689847 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14849 role=brain wall_ms=1784247385663 mono_ms=11689847 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14850 role=brain wall_ms=1784247386788 mono_ms=11690972 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14850 role=brain wall_ms=1784247386789 mono_ms=11690972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474913 id=859e8318b5c71fde67e81989dfc364fafef2998e1b1914ba1f022d8486194b24 addr=EndpointAddr { id: PublicKey(859e8318b5c71fde67e81989dfc364fafef2998e1b1914ba1f022d8486194b24), addrs: {Ip(100.68.35.65:56371), Ip(192.168.1.81:56371)} }\nPAIR_MEET_UP:BIGNET step=59474913 id=b663abca6fc95c5ccbc7c4698a3bcc59fe8564d890a86ce01b783bb8cbf51841 addr=EndpointAddr { id: PublicKey(b663abca6fc95c5ccbc7c4698a3bcc59fe8564d890a86ce01b783bb8cbf51841), addrs: {Ip(100.68.35.65:56372), Ip(192.168.1.81:56372)} }\n\n[Showing lines 35999-36410 of 36450. Use :36411 to continue]"}],"details":{"truncation":{"content":"CONN_LIFECYCLE: conn=14682 role=brain wall_ms=1784247285523 mono_ms=11589707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14683 role=brain wall_ms=1784247285523 mono_ms=11589707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14683 role=brain wall_ms=1784247285523 mono_ms=11589707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14685 role=brain stream-subscriber stream=5648 wall_ms=1784247285525 mono_ms=11589709 event=stream-sub-attach stream=5648 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14685 role=brain stream-subscriber stream=5648 wall_ms=1784247285525 mono_ms=11589709 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14684 role=brain stream-subscriber stream=5649 wall_ms=1784247285525 mono_ms=11589709 event=stream-sub-attach stream=5649 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14684 role=brain stream-subscriber stream=5649 wall_ms=1784247285525 mono_ms=11589709 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14686 role=brain wall_ms=1784247285527 mono_ms=11589711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14686 role=brain wall_ms=1784247285531 mono_ms=11589715 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14687 role=brain wall_ms=1784247285538 mono_ms=11589722 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14687 role=brain wall_ms=1784247285538 mono_ms=11589722 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14685 role=brain stream-subscriber stream=5648 wall_ms=1784247285539 mono_ms=11589723 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14684 role=brain stream-subscriber stream=5649 wall_ms=1784247285541 mono_ms=11589725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14688 role=brain wall_ms=1784247285545 mono_ms=11589729 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14688 role=brain wall_ms=1784247285546 mono_ms=11589729 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247287168 mono_ms=11591352 event=stream-sub-attach stream=5651 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14689 role=brain wall_ms=1784247288011 mono_ms=11592194 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14689 role=brain wall_ms=1784247288011 mono_ms=11592195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14690 role=brain wall_ms=1784247288012 mono_ms=11592196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14690 role=brain stream-subscriber stream=5652 wall_ms=1784247288012 mono_ms=11592196 event=stream-sub-attach stream=5652 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14690 role=brain stream-subscriber stream=5652 wall_ms=1784247288020 mono_ms=11592204 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14691 role=brain wall_ms=1784247288020 mono_ms=11592204 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14691 role=brain wall_ms=1784247288021 mono_ms=11592204 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14692 role=brain wall_ms=1784247288528 mono_ms=11592711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14692 role=brain wall_ms=1784247288528 mono_ms=11592711 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14693 role=brain stream-subscriber stream=5653 wall_ms=1784247288528 mono_ms=11592712 event=stream-sub-attach stream=5653 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14693 role=brain stream-subscriber stream=5653 wall_ms=1784247288528 mono_ms=11592712 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14693 role=brain stream-subscriber stream=5653 wall_ms=1784247288535 mono_ms=11592719 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14694 role=brain wall_ms=1784247288536 mono_ms=11592719 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14694 role=brain wall_ms=1784247288536 mono_ms=11592720 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14695 role=brain wall_ms=1784247288631 mono_ms=11592814 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14695 role=brain wall_ms=1784247288631 mono_ms=11592815 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14696 role=brain stream-subscriber stream=5654 wall_ms=1784247288631 mono_ms=11592815 event=stream-sub-attach stream=5654 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14696 role=brain stream-subscriber stream=5654 wall_ms=1784247288631 mono_ms=11592815 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14696 role=brain stream-subscriber stream=5654 wall_ms=1784247288636 mono_ms=11592820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14697 role=brain wall_ms=1784247288636 mono_ms=11592820 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14697 role=brain wall_ms=1784247288636 mono_ms=11592820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14698 role=brain wall_ms=1784247290595 mono_ms=11594779 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14698 role=brain wall_ms=1784247290595 mono_ms=11594779 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14699 role=brain wall_ms=1784247295075 mono_ms=11599258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14699 role=brain wall_ms=1784247295075 mono_ms=11599258 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14700 role=brain wall_ms=1784247295076 mono_ms=11599260 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14700 role=brain stream-subscriber stream=5655 wall_ms=1784247295076 mono_ms=11599260 event=stream-sub-attach stream=5655 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14700 role=brain stream-subscriber stream=5655 wall_ms=1784247295079 mono_ms=11599263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14701 role=brain wall_ms=1784247295079 mono_ms=11599263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14701 role=brain wall_ms=1784247295079 mono_ms=11599263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14702 role=brain wall_ms=1784247295283 mono_ms=11599467 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14703 role=brain wall_ms=1784247295283 mono_ms=11599467 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14702 role=brain wall_ms=1784247295283 mono_ms=11599467 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14703 role=brain wall_ms=1784247295283 mono_ms=11599467 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14704 role=brain wall_ms=1784247295285 mono_ms=11599469 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14704 role=brain stream-subscriber stream=5656 wall_ms=1784247295285 mono_ms=11599469 event=stream-sub-attach stream=5656 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14704 role=brain stream-subscriber stream=5656 wall_ms=1784247295294 mono_ms=11599478 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14706 role=brain wall_ms=1784247295294 mono_ms=11599478 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14706 role=brain wall_ms=1784247295294 mono_ms=11599478 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14705 role=brain wall_ms=1784247295295 mono_ms=11599479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14705 role=brain stream-subscriber stream=5657 wall_ms=1784247295295 mono_ms=11599479 event=stream-sub-attach stream=5657 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14705 role=brain stream-subscriber stream=5657 wall_ms=1784247295297 mono_ms=11599481 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14707 role=brain wall_ms=1784247295297 mono_ms=11599481 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14707 role=brain wall_ms=1784247295297 mono_ms=11599481 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14708 role=brain wall_ms=1784247295856 mono_ms=11600040 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14708 role=brain wall_ms=1784247295857 mono_ms=11600040 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474910 id=62f9291a0c35938d7ba2f9c98e5bbaad27a0a242c53497e47adf1f4981578ed7 addr=EndpointAddr { id: PublicKey(62f9291a0c35938d7ba2f9c98e5bbaad27a0a242c53497e47adf1f4981578ed7), addrs: {Ip(100.68.35.65:55088), Ip(192.168.1.81:55088)} }\nPAIR_MEET_UP:BIGNET step=59474910 id=357dda2573f03366ab2cccc66a04e279f7d7fa57af7f000c2a652cb2137c8456 addr=EndpointAddr { id: PublicKey(357dda2573f03366ab2cccc66a04e279f7d7fa57af7f000c2a652cb2137c8456), addrs: {Ip(100.68.35.65:55090), Ip(192.168.1.81:55090)} }\nCONN_LIFECYCLE: conn=14709 role=brain wall_ms=1784247300905 mono_ms=11605089 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14709 role=brain wall_ms=1784247300905 mono_ms=11605089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14710 role=brain wall_ms=1784247303068 mono_ms=11607252 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14710 role=brain wall_ms=1784247303068 mono_ms=11607252 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14711 role=brain wall_ms=1784247303069 mono_ms=11607253 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14711 role=brain stream-subscriber stream=5658 wall_ms=1784247303069 mono_ms=11607253 event=stream-sub-attach stream=5658 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14711 role=brain stream-subscriber stream=5658 wall_ms=1784247303078 mono_ms=11607261 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14712 role=brain wall_ms=1784247303078 mono_ms=11607261 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14712 role=brain wall_ms=1784247303078 mono_ms=11607261 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14713 role=brain wall_ms=1784247305964 mono_ms=11610148 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14713 role=brain wall_ms=1784247305964 mono_ms=11610148 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14714 role=brain wall_ms=1784247310116 mono_ms=11614300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14714 role=brain wall_ms=1784247310116 mono_ms=11614300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14715 role=brain wall_ms=1784247310117 mono_ms=11614301 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14715 role=brain stream-subscriber stream=5662 wall_ms=1784247310117 mono_ms=11614301 event=stream-sub-attach stream=5662 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14715 role=brain stream-subscriber stream=5662 wall_ms=1784247310119 mono_ms=11614303 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14716 role=brain wall_ms=1784247310119 mono_ms=11614303 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14716 role=brain wall_ms=1784247310119 mono_ms=11614303 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14717 role=brain wall_ms=1784247310323 mono_ms=11614507 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14718 role=brain wall_ms=1784247310323 mono_ms=11614507 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14717 role=brain wall_ms=1784247310323 mono_ms=11614507 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14718 role=brain wall_ms=1784247310323 mono_ms=11614507 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14719 role=brain wall_ms=1784247310325 mono_ms=11614508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14719 role=brain stream-subscriber stream=5663 wall_ms=1784247310325 mono_ms=11614509 event=stream-sub-attach stream=5663 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14719 role=brain stream-subscriber stream=5663 wall_ms=1784247310329 mono_ms=11614513 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14721 role=brain wall_ms=1784247310329 mono_ms=11614513 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14721 role=brain wall_ms=1784247310329 mono_ms=11614513 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14720 role=brain wall_ms=1784247310340 mono_ms=11614524 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14720 role=brain stream-subscriber stream=5664 wall_ms=1784247310340 mono_ms=11614524 event=stream-sub-attach stream=5664 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14720 role=brain stream-subscriber stream=5664 wall_ms=1784247310342 mono_ms=11614526 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14722 role=brain wall_ms=1784247310342 mono_ms=11614526 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14722 role=brain wall_ms=1784247310342 mono_ms=11614526 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14723 role=brain wall_ms=1784247311012 mono_ms=11615196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14723 role=brain wall_ms=1784247311012 mono_ms=11615196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14724 role=brain wall_ms=1784247314292 mono_ms=11618475 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14724 role=brain wall_ms=1784247314292 mono_ms=11618476 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14725 role=brain wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14726 role=brain wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14725 role=brain wall_ms=1784247315603 mono_ms=11619787 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14726 role=brain wall_ms=1784247315603 mono_ms=11619787 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14727 role=brain stream-subscriber stream=5666 wall_ms=1784247315603 mono_ms=11619787 event=stream-sub-attach stream=5666 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14728 role=brain stream-subscriber stream=5665 wall_ms=1784247315603 mono_ms=11619787 event=stream-sub-attach stream=5665 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14727 role=brain stream-subscriber stream=5666 wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14728 role=brain stream-subscriber stream=5665 wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14729 role=brain wall_ms=1784247315611 mono_ms=11619795 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14728 role=brain stream-subscriber stream=5665 wall_ms=1784247315611 mono_ms=11619795 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14729 role=brain wall_ms=1784247315611 mono_ms=11619795 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14727 role=brain stream-subscriber stream=5666 wall_ms=1784247315612 mono_ms=11619796 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14730 role=brain wall_ms=1784247315614 mono_ms=11619797 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14730 role=brain wall_ms=1784247315614 mono_ms=11619797 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14731 role=brain wall_ms=1784247316065 mono_ms=11620248 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14731 role=brain wall_ms=1784247316065 mono_ms=11620248 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14732 role=brain wall_ms=1784247318086 mono_ms=11622269 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14732 role=brain wall_ms=1784247318086 mono_ms=11622269 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14733 role=brain wall_ms=1784247318087 mono_ms=11622271 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14733 role=brain stream-subscriber stream=5667 wall_ms=1784247318087 mono_ms=11622271 event=stream-sub-attach stream=5667 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14733 role=brain stream-subscriber stream=5667 wall_ms=1784247318096 mono_ms=11622280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14734 role=brain wall_ms=1784247318096 mono_ms=11622280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14734 role=brain wall_ms=1784247318096 mono_ms=11622280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14735 role=brain wall_ms=1784247318502 mono_ms=11622686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14735 role=brain wall_ms=1784247318502 mono_ms=11622686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14736 role=brain stream-subscriber stream=5668 wall_ms=1784247318502 mono_ms=11622686 event=stream-sub-attach stream=5668 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14736 role=brain stream-subscriber stream=5668 wall_ms=1784247318502 mono_ms=11622686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14736 role=brain stream-subscriber stream=5668 wall_ms=1784247318503 mono_ms=11622686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14737 role=brain wall_ms=1784247318503 mono_ms=11622686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14737 role=brain wall_ms=1784247318503 mono_ms=11622687 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14738 role=brain wall_ms=1784247318605 mono_ms=11622789 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14738 role=brain wall_ms=1784247318606 mono_ms=11622789 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14739 role=brain stream-subscriber stream=5669 wall_ms=1784247318606 mono_ms=11622790 event=stream-sub-attach stream=5669 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14739 role=brain stream-subscriber stream=5669 wall_ms=1784247318606 mono_ms=11622790 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14739 role=brain stream-subscriber stream=5669 wall_ms=1784247318613 mono_ms=11622796 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14740 role=brain wall_ms=1784247318613 mono_ms=11622797 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14740 role=brain wall_ms=1784247318613 mono_ms=11622797 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14741 role=brain wall_ms=1784247319021 mono_ms=11623204 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14741 role=brain wall_ms=1784247319021 mono_ms=11623204 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14742 role=brain stream-subscriber stream=5670 wall_ms=1784247319021 mono_ms=11623205 event=stream-sub-attach stream=5670 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14742 role=brain stream-subscriber stream=5670 wall_ms=1784247319021 mono_ms=11623205 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14742 role=brain stream-subscriber stream=5670 wall_ms=1784247319025 mono_ms=11623209 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14743 role=brain wall_ms=1784247319025 mono_ms=11623209 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14743 role=brain wall_ms=1784247319025 mono_ms=11623209 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14744 role=brain wall_ms=1784247321109 mono_ms=11625293 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14744 role=brain wall_ms=1784247321109 mono_ms=11625293 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14745 role=brain wall_ms=1784247325241 mono_ms=11629424 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14745 role=brain wall_ms=1784247325241 mono_ms=11629424 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14746 role=brain wall_ms=1784247325242 mono_ms=11629426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14746 role=brain stream-subscriber stream=5671 wall_ms=1784247325242 mono_ms=11629426 event=stream-sub-attach stream=5671 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14746 role=brain stream-subscriber stream=5671 wall_ms=1784247325245 mono_ms=11629428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14747 role=brain wall_ms=1784247325245 mono_ms=11629429 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14747 role=brain wall_ms=1784247325245 mono_ms=11629429 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14748 role=brain wall_ms=1784247325448 mono_ms=11629632 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14749 role=brain wall_ms=1784247325448 mono_ms=11629632 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14748 role=brain wall_ms=1784247325448 mono_ms=11629632 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14749 role=brain wall_ms=1784247325448 mono_ms=11629632 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14751 role=brain wall_ms=1784247325450 mono_ms=11629633 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14751 role=brain stream-subscriber stream=5672 wall_ms=1784247325450 mono_ms=11629633 event=stream-sub-attach stream=5672 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14750 role=brain wall_ms=1784247325452 mono_ms=11629636 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14750 role=brain stream-subscriber stream=5673 wall_ms=1784247325452 mono_ms=11629636 event=stream-sub-attach stream=5673 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14751 role=brain stream-subscriber stream=5672 wall_ms=1784247325455 mono_ms=11629638 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14752 role=brain wall_ms=1784247325455 mono_ms=11629638 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14752 role=brain wall_ms=1784247325455 mono_ms=11629638 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14750 role=brain stream-subscriber stream=5673 wall_ms=1784247325467 mono_ms=11629651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14753 role=brain wall_ms=1784247325468 mono_ms=11629651 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14753 role=brain wall_ms=1784247325468 mono_ms=11629651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14754 role=brain wall_ms=1784247326162 mono_ms=11630345 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14754 role=brain wall_ms=1784247326162 mono_ms=11630346 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474911 id=efa2b47b10553174c4c09872ca7d1f01bb590a7939251fc4be2b03d04a89643f addr=EndpointAddr { id: PublicKey(efa2b47b10553174c4c09872ca7d1f01bb590a7939251fc4be2b03d04a89643f), addrs: {Ip(100.68.35.65:54049), Ip(192.168.1.81:54049)} }\nPAIR_MEET_UP:BIGNET step=59474911 id=e4ce4135e67ae5bb90f4cd98ebca8d07cd9478cc0e9ab4c82e46cc5a3f7825ed addr=EndpointAddr { id: PublicKey(e4ce4135e67ae5bb90f4cd98ebca8d07cd9478cc0e9ab4c82e46cc5a3f7825ed), addrs: {Ip(100.68.35.65:54055), Ip(192.168.1.81:54055)} }\nCONN_LIFECYCLE: conn=14755 role=brain wall_ms=1784247331212 mono_ms=11635396 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14755 role=brain wall_ms=1784247331213 mono_ms=11635396 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14756 role=brain wall_ms=1784247333216 mono_ms=11637400 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14756 role=brain wall_ms=1784247333217 mono_ms=11637400 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14757 role=brain wall_ms=1784247333218 mono_ms=11637402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14757 role=brain stream-subscriber stream=5674 wall_ms=1784247333218 mono_ms=11637402 event=stream-sub-attach stream=5674 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14757 role=brain stream-subscriber stream=5674 wall_ms=1784247333226 mono_ms=11637410 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14758 role=brain wall_ms=1784247333227 mono_ms=11637410 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14758 role=brain wall_ms=1784247333227 mono_ms=11637410 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14759 role=brain wall_ms=1784247336266 mono_ms=11640450 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14759 role=brain wall_ms=1784247336266 mono_ms=11640450 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14760 role=brain wall_ms=1784247339631 mono_ms=11643815 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14760 role=brain wall_ms=1784247339631 mono_ms=11643815 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14761 role=brain stream-subscriber stream=5678 wall_ms=1784247339632 mono_ms=11643815 event=stream-sub-attach stream=5678 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14761 role=brain stream-subscriber stream=5678 wall_ms=1784247339632 mono_ms=11643815 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14761 role=brain stream-subscriber stream=5678 wall_ms=1784247339632 mono_ms=11643815 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14762 role=brain wall_ms=1784247339632 mono_ms=11643816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14762 role=brain wall_ms=1784247339632 mono_ms=11643816 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14763 role=brain wall_ms=1784247340252 mono_ms=11644436 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14763 role=brain wall_ms=1784247340252 mono_ms=11644436 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14764 role=brain wall_ms=1784247340253 mono_ms=11644437 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14764 role=brain stream-subscriber stream=5679 wall_ms=1784247340253 mono_ms=11644437 event=stream-sub-attach stream=5679 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14764 role=brain stream-subscriber stream=5679 wall_ms=1784247340255 mono_ms=11644439 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14765 role=brain wall_ms=1784247340255 mono_ms=11644439 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14765 role=brain wall_ms=1784247340255 mono_ms=11644439 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14766 role=brain wall_ms=1784247340460 mono_ms=11644644 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14767 role=brain wall_ms=1784247340460 mono_ms=11644644 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14766 role=brain wall_ms=1784247340460 mono_ms=11644644 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14767 role=brain wall_ms=1784247340460 mono_ms=11644644 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14769 role=brain wall_ms=1784247340462 mono_ms=11644645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14769 role=brain stream-subscriber stream=5680 wall_ms=1784247340462 mono_ms=11644645 event=stream-sub-attach stream=5680 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14769 role=brain stream-subscriber stream=5680 wall_ms=1784247340467 mono_ms=11644650 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14770 role=brain wall_ms=1784247340467 mono_ms=11644650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14770 role=brain wall_ms=1784247340467 mono_ms=11644650 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14768 role=brain wall_ms=1784247340477 mono_ms=11644661 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14768 role=brain stream-subscriber stream=5681 wall_ms=1784247340477 mono_ms=11644661 event=stream-sub-attach stream=5681 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14768 role=brain stream-subscriber stream=5681 wall_ms=1784247340479 mono_ms=11644663 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14771 role=brain wall_ms=1784247340480 mono_ms=11644663 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14771 role=brain wall_ms=1784247340480 mono_ms=11644663 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14772 role=brain wall_ms=1784247341320 mono_ms=11645504 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14772 role=brain wall_ms=1784247341320 mono_ms=11645504 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14773 role=brain wall_ms=1784247345116 mono_ms=11649299 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14773 role=brain wall_ms=1784247345116 mono_ms=11649299 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14774 role=brain stream-subscriber stream=5682 wall_ms=1784247345116 mono_ms=11649300 event=stream-sub-attach stream=5682 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14774 role=brain stream-subscriber stream=5682 wall_ms=1784247345116 mono_ms=11649300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14774 role=brain stream-subscriber stream=5682 wall_ms=1784247345116 mono_ms=11649300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14775 role=brain wall_ms=1784247345116 mono_ms=11649300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14775 role=brain wall_ms=1784247345116 mono_ms=11649300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14776 role=brain wall_ms=1784247345220 mono_ms=11649403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14776 role=brain wall_ms=1784247345220 mono_ms=11649403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14777 role=brain stream-subscriber stream=5683 wall_ms=1784247345220 mono_ms=11649404 event=stream-sub-attach stream=5683 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14777 role=brain stream-subscriber stream=5683 wall_ms=1784247345220 mono_ms=11649404 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14777 role=brain stream-subscriber stream=5683 wall_ms=1784247345221 mono_ms=11649404 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14778 role=brain wall_ms=1784247345221 mono_ms=11649404 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14778 role=brain wall_ms=1784247345221 mono_ms=11649404 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14779 role=brain wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14780 role=brain wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14779 role=brain wall_ms=1784247345737 mono_ms=11649920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14780 role=brain wall_ms=1784247345737 mono_ms=11649920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14781 role=brain stream-subscriber stream=5685 wall_ms=1784247345737 mono_ms=11649920 event=stream-sub-attach stream=5685 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14781 role=brain stream-subscriber stream=5685 wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14782 role=brain stream-subscriber stream=5684 wall_ms=1784247345737 mono_ms=11649920 event=stream-sub-attach stream=5684 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14782 role=brain stream-subscriber stream=5684 wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14782 role=brain stream-subscriber stream=5684 wall_ms=1784247345744 mono_ms=11649928 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14783 role=brain wall_ms=1784247345745 mono_ms=11649929 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14783 role=brain wall_ms=1784247345745 mono_ms=11649929 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14781 role=brain stream-subscriber stream=5685 wall_ms=1784247345746 mono_ms=11649930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14784 role=brain wall_ms=1784247345746 mono_ms=11649930 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14784 role=brain wall_ms=1784247345746 mono_ms=11649930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14785 role=brain wall_ms=1784247346369 mono_ms=11650552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14785 role=brain wall_ms=1784247346369 mono_ms=11650553 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14786 role=brain wall_ms=1784247348325 mono_ms=11652508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14786 role=brain wall_ms=1784247348325 mono_ms=11652508 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14787 role=brain wall_ms=1784247348326 mono_ms=11652509 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14787 role=brain stream-subscriber stream=5689 wall_ms=1784247348326 mono_ms=11652509 event=stream-sub-attach stream=5689 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14787 role=brain stream-subscriber stream=5689 wall_ms=1784247348335 mono_ms=11652518 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14788 role=brain wall_ms=1784247348335 mono_ms=11652518 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14788 role=brain wall_ms=1784247348335 mono_ms=11652518 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14789 role=brain wall_ms=1784247348843 mono_ms=11653026 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14789 role=brain wall_ms=1784247348843 mono_ms=11653026 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14790 role=brain stream-subscriber stream=5690 wall_ms=1784247348843 mono_ms=11653026 event=stream-sub-attach stream=5690 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14790 role=brain stream-subscriber stream=5690 wall_ms=1784247348843 mono_ms=11653027 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14790 role=brain stream-subscriber stream=5690 wall_ms=1784247348851 mono_ms=11653035 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14791 role=brain wall_ms=1784247348852 mono_ms=11653036 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14791 role=brain wall_ms=1784247348852 mono_ms=11653036 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14792 role=brain wall_ms=1784247349361 mono_ms=11653545 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14792 role=brain wall_ms=1784247349361 mono_ms=11653545 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14793 role=brain stream-subscriber stream=5691 wall_ms=1784247349361 mono_ms=11653545 event=stream-sub-attach stream=5691 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14793 role=brain stream-subscriber stream=5691 wall_ms=1784247349361 mono_ms=11653545 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14793 role=brain stream-subscriber stream=5691 wall_ms=1784247349366 mono_ms=11653550 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14794 role=brain wall_ms=1784247349367 mono_ms=11653550 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14794 role=brain wall_ms=1784247349367 mono_ms=11653550 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14795 role=brain wall_ms=1784247351420 mono_ms=11655604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14795 role=brain wall_ms=1784247351420 mono_ms=11655604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14796 role=brain wall_ms=1784247355367 mono_ms=11659551 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14796 role=brain wall_ms=1784247355368 mono_ms=11659551 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14797 role=brain wall_ms=1784247355369 mono_ms=11659552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14797 role=brain stream-subscriber stream=5692 wall_ms=1784247355369 mono_ms=11659552 event=stream-sub-attach stream=5692 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14797 role=brain stream-subscriber stream=5692 wall_ms=1784247355371 mono_ms=11659555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14798 role=brain wall_ms=1784247355371 mono_ms=11659555 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14798 role=brain wall_ms=1784247355371 mono_ms=11659555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14800 role=brain wall_ms=1784247355574 mono_ms=11659758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14799 role=brain wall_ms=1784247355574 mono_ms=11659758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14800 role=brain wall_ms=1784247355574 mono_ms=11659758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14799 role=brain wall_ms=1784247355574 mono_ms=11659758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14801 role=brain wall_ms=1784247355576 mono_ms=11659759 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14802 role=brain wall_ms=1784247355576 mono_ms=11659759 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14801 role=brain stream-subscriber stream=5693 wall_ms=1784247355576 mono_ms=11659759 event=stream-sub-attach stream=5693 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14802 role=brain stream-subscriber stream=5694 wall_ms=1784247355576 mono_ms=11659759 event=stream-sub-attach stream=5694 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14802 role=brain stream-subscriber stream=5694 wall_ms=1784247355578 mono_ms=11659761 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14803 role=brain wall_ms=1784247355578 mono_ms=11659761 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14803 role=brain wall_ms=1784247355578 mono_ms=11659761 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14801 role=brain stream-subscriber stream=5693 wall_ms=1784247355581 mono_ms=11659765 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14804 role=brain wall_ms=1784247355581 mono_ms=11659765 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14804 role=brain wall_ms=1784247355581 mono_ms=11659765 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14805 role=brain wall_ms=1784247356474 mono_ms=11660658 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14805 role=brain wall_ms=1784247356475 mono_ms=11660658 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247359973 mono_ms=11664156 event=stream-sub-attach stream=5695 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474912 id=649799cd83ef6717696418969f68da703fdcab5f0f090bdcc941bb4a9e67096c addr=EndpointAddr { id: PublicKey(649799cd83ef6717696418969f68da703fdcab5f0f090bdcc941bb4a9e67096c), addrs: {Ip(100.68.35.65:50506), Ip(192.168.1.81:50506)} }\nPAIR_MEET_UP:BIGNET step=59474912 id=e88940e2687c58f9b822e1d55fabfedbd839960212c2b2fde490fbbbc83ae58f addr=EndpointAddr { id: PublicKey(e88940e2687c58f9b822e1d55fabfedbd839960212c2b2fde490fbbbc83ae58f), addrs: {Ip(100.68.35.65:50512), Ip(192.168.1.81:50512)} }\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247361023 mono_ms=11665207 event=stream-sub-attach stream=5696 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247361365 mono_ms=11665549 event=stream-sub-attach stream=5697 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14806 role=brain wall_ms=1784247361529 mono_ms=11665713 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14806 role=brain wall_ms=1784247361529 mono_ms=11665713 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14807 role=brain wall_ms=1784247363462 mono_ms=11667645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14807 role=brain wall_ms=1784247363462 mono_ms=11667645 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14808 role=brain wall_ms=1784247363463 mono_ms=11667646 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14808 role=brain stream-subscriber stream=5698 wall_ms=1784247363463 mono_ms=11667646 event=stream-sub-attach stream=5698 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14808 role=brain stream-subscriber stream=5698 wall_ms=1784247363471 mono_ms=11667654 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14809 role=brain wall_ms=1784247363471 mono_ms=11667654 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14809 role=brain wall_ms=1784247363471 mono_ms=11667654 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14810 role=brain wall_ms=1784247366580 mono_ms=11670763 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14810 role=brain wall_ms=1784247366580 mono_ms=11670763 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14811 role=brain wall_ms=1784247370413 mono_ms=11674596 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14811 role=brain wall_ms=1784247370413 mono_ms=11674596 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14812 role=brain wall_ms=1784247370414 mono_ms=11674598 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14812 role=brain stream-subscriber stream=5699 wall_ms=1784247370414 mono_ms=11674598 event=stream-sub-attach stream=5699 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14812 role=brain stream-subscriber stream=5699 wall_ms=1784247370416 mono_ms=11674600 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14813 role=brain wall_ms=1784247370417 mono_ms=11674600 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14813 role=brain wall_ms=1784247370417 mono_ms=11674600 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14815 role=brain wall_ms=1784247370620 mono_ms=11674803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14814 role=brain wall_ms=1784247370620 mono_ms=11674803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14815 role=brain wall_ms=1784247370620 mono_ms=11674804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14814 role=brain wall_ms=1784247370620 mono_ms=11674804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14816 role=brain wall_ms=1784247370622 mono_ms=11674805 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14816 role=brain stream-subscriber stream=5701 wall_ms=1784247370622 mono_ms=11674805 event=stream-sub-attach stream=5701 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14816 role=brain stream-subscriber stream=5701 wall_ms=1784247370624 mono_ms=11674808 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14818 role=brain wall_ms=1784247370624 mono_ms=11674808 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14818 role=brain wall_ms=1784247370624 mono_ms=11674808 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14817 role=brain wall_ms=1784247370630 mono_ms=11674814 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14817 role=brain stream-subscriber stream=5700 wall_ms=1784247370630 mono_ms=11674814 event=stream-sub-attach stream=5700 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14817 role=brain stream-subscriber stream=5700 wall_ms=1784247370636 mono_ms=11674820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14819 role=brain wall_ms=1784247370637 mono_ms=11674820 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14819 role=brain wall_ms=1784247370637 mono_ms=11674820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14820 role=brain wall_ms=1784247371638 mono_ms=11675821 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14820 role=brain wall_ms=1784247371638 mono_ms=11675821 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14822 role=brain wall_ms=1784247375916 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14821 role=brain wall_ms=1784247375916 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14822 role=brain wall_ms=1784247375917 mono_ms=11680100 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14821 role=brain wall_ms=1784247375917 mono_ms=11680100 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14824 role=brain stream-subscriber stream=5705 wall_ms=1784247375917 mono_ms=11680100 event=stream-sub-attach stream=5705 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14824 role=brain stream-subscriber stream=5705 wall_ms=1784247375917 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14823 role=brain stream-subscriber stream=5706 wall_ms=1784247375917 mono_ms=11680100 event=stream-sub-attach stream=5706 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14823 role=brain stream-subscriber stream=5706 wall_ms=1784247375917 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14824 role=brain stream-subscriber stream=5705 wall_ms=1784247375922 mono_ms=11680106 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14825 role=brain wall_ms=1784247375923 mono_ms=11680107 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14825 role=brain wall_ms=1784247375923 mono_ms=11680107 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14823 role=brain stream-subscriber stream=5706 wall_ms=1784247375928 mono_ms=11680111 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14826 role=brain wall_ms=1784247375928 mono_ms=11680112 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14826 role=brain wall_ms=1784247375929 mono_ms=11680112 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14827 role=brain wall_ms=1784247376690 mono_ms=11680873 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14827 role=brain wall_ms=1784247376690 mono_ms=11680873 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14828 role=brain wall_ms=1784247378399 mono_ms=11682582 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14828 role=brain wall_ms=1784247378399 mono_ms=11682582 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14829 role=brain wall_ms=1784247378400 mono_ms=11682583 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14829 role=brain stream-subscriber stream=5707 wall_ms=1784247378400 mono_ms=11682583 event=stream-sub-attach stream=5707 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14829 role=brain stream-subscriber stream=5707 wall_ms=1784247378409 mono_ms=11682592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14830 role=brain wall_ms=1784247378409 mono_ms=11682592 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14830 role=brain wall_ms=1784247378409 mono_ms=11682592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14831 role=brain wall_ms=1784247378918 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14832 role=brain wall_ms=1784247378918 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14831 role=brain wall_ms=1784247378918 mono_ms=11683102 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14832 role=brain wall_ms=1784247378918 mono_ms=11683102 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14834 role=brain stream-subscriber stream=5708 wall_ms=1784247378919 mono_ms=11683102 event=stream-sub-attach stream=5708 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14834 role=brain stream-subscriber stream=5708 wall_ms=1784247378919 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14833 role=brain stream-subscriber stream=5709 wall_ms=1784247378919 mono_ms=11683102 event=stream-sub-attach stream=5709 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14833 role=brain stream-subscriber stream=5709 wall_ms=1784247378919 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14833 role=brain stream-subscriber stream=5709 wall_ms=1784247378919 mono_ms=11683103 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14835 role=brain wall_ms=1784247378919 mono_ms=11683103 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14835 role=brain wall_ms=1784247378919 mono_ms=11683103 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14834 role=brain stream-subscriber stream=5708 wall_ms=1784247378926 mono_ms=11683109 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14836 role=brain wall_ms=1784247378926 mono_ms=11683110 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14836 role=brain wall_ms=1784247378926 mono_ms=11683110 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14837 role=brain wall_ms=1784247379643 mono_ms=11683826 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14837 role=brain wall_ms=1784247379643 mono_ms=11683826 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14838 role=brain stream-subscriber stream=5710 wall_ms=1784247379643 mono_ms=11683827 event=stream-sub-attach stream=5710 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14838 role=brain stream-subscriber stream=5710 wall_ms=1784247379643 mono_ms=11683827 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14838 role=brain stream-subscriber stream=5710 wall_ms=1784247379649 mono_ms=11683832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14839 role=brain wall_ms=1784247379649 mono_ms=11683832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14839 role=brain wall_ms=1784247379649 mono_ms=11683832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14840 role=brain wall_ms=1784247381739 mono_ms=11685922 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14840 role=brain wall_ms=1784247381739 mono_ms=11685922 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14841 role=brain wall_ms=1784247385441 mono_ms=11689625 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14841 role=brain wall_ms=1784247385441 mono_ms=11689625 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14842 role=brain wall_ms=1784247385443 mono_ms=11689626 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14842 role=brain stream-subscriber stream=5711 wall_ms=1784247385443 mono_ms=11689626 event=stream-sub-attach stream=5711 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14842 role=brain stream-subscriber stream=5711 wall_ms=1784247385445 mono_ms=11689628 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14843 role=brain wall_ms=1784247385445 mono_ms=11689629 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14843 role=brain wall_ms=1784247385445 mono_ms=11689629 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14844 role=brain wall_ms=1784247385648 mono_ms=11689832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14845 role=brain wall_ms=1784247385648 mono_ms=11689832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14844 role=brain wall_ms=1784247385648 mono_ms=11689832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14845 role=brain wall_ms=1784247385649 mono_ms=11689832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14847 role=brain wall_ms=1784247385650 mono_ms=11689834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14847 role=brain stream-subscriber stream=5713 wall_ms=1784247385650 mono_ms=11689834 event=stream-sub-attach stream=5713 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14847 role=brain stream-subscriber stream=5713 wall_ms=1784247385652 mono_ms=11689836 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14848 role=brain wall_ms=1784247385652 mono_ms=11689836 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14848 role=brain wall_ms=1784247385652 mono_ms=11689836 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain wall_ms=1784247385658 mono_ms=11689841 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain stream-subscriber stream=5712 wall_ms=1784247385658 mono_ms=11689841 event=stream-sub-attach stream=5712 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain stream-subscriber stream=5712 wall_ms=1784247385663 mono_ms=11689846 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14849 role=brain wall_ms=1784247385663 mono_ms=11689847 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14849 role=brain wall_ms=1784247385663 mono_ms=11689847 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14850 role=brain wall_ms=1784247386788 mono_ms=11690972 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14850 role=brain wall_ms=1784247386789 mono_ms=11690972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474913 id=859e8318b5c71fde67e81989dfc364fafef2998e1b1914ba1f022d8486194b24 addr=EndpointAddr { id: PublicKey(859e8318b5c71fde67e81989dfc364fafef2998e1b1914ba1f022d8486194b24), addrs: {Ip(100.68.35.65:56371), Ip(192.168.1.81:56371)} }\nPAIR_MEET_UP:BIGNET step=59474913 id=b663abca6fc95c5ccbc7c4698a3bcc59fe8564d890a86ce01b783bb8cbf51841 addr=EndpointAddr { id: PublicKey(b663abca6fc95c5ccbc7c4698a3bcc59fe8564d890a86ce01b783bb8cbf51841), addrs: {Ip(100.68.35.65:56372), Ip(192.168.1.81:56372)} }","truncated":true,"truncatedBy":"lines","totalLines":452,"totalBytes":64101,"outputLines":412,"outputBytes":64101,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"CONN_LIFECYCLE: conn=14682 role=brain wall_ms=1784247285523 mono_ms=11589707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14683 role=brain wall_ms=1784247285523 mono_ms=11589707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14683 role=brain wall_ms=1784247285523 mono_ms=11589707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14685 role=brain stream-subscriber stream=5648 wall_ms=1784247285525 mono_ms=11589709 event=stream-sub-attach stream=5648 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14685 role=brain stream-subscriber stream=5648 wall_ms=1784247285525 mono_ms=11589709 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14684 role=brain stream-subscriber stream=5649 wall_ms=1784247285525 mono_ms=11589709 event=stream-sub-attach stream=5649 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14684 role=brain stream-subscriber stream=5649 wall_ms=1784247285525 mono_ms=11589709 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14686 role=brain wall_ms=1784247285527 mono_ms=11589711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14686 role=brain wall_ms=1784247285531 mono_ms=11589715 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14687 role=brain wall_ms=1784247285538 mono_ms=11589722 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14687 role=brain wall_ms=1784247285538 mono_ms=11589722 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14685 role=brain stream-subscriber stream=5648 wall_ms=1784247285539 mono_ms=11589723 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14684 role=brain stream-subscriber stream=5649 wall_ms=1784247285541 mono_ms=11589725 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14688 role=brain wall_ms=1784247285545 mono_ms=11589729 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14688 role=brain wall_ms=1784247285546 mono_ms=11589729 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247287168 mono_ms=11591352 event=stream-sub-attach stream=5651 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14689 role=brain wall_ms=1784247288011 mono_ms=11592194 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14689 role=brain wall_ms=1784247288011 mono_ms=11592195 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14690 role=brain wall_ms=1784247288012 mono_ms=11592196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14690 role=brain stream-subscriber stream=5652 wall_ms=1784247288012 mono_ms=11592196 event=stream-sub-attach stream=5652 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14690 role=brain stream-subscriber stream=5652 wall_ms=1784247288020 mono_ms=11592204 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14691 role=brain wall_ms=1784247288020 mono_ms=11592204 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14691 role=brain wall_ms=1784247288021 mono_ms=11592204 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14692 role=brain wall_ms=1784247288528 mono_ms=11592711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14692 role=brain wall_ms=1784247288528 mono_ms=11592711 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14693 role=brain stream-subscriber stream=5653 wall_ms=1784247288528 mono_ms=11592712 event=stream-sub-attach stream=5653 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14693 role=brain stream-subscriber stream=5653 wall_ms=1784247288528 mono_ms=11592712 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14693 role=brain stream-subscriber stream=5653 wall_ms=1784247288535 mono_ms=11592719 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14694 role=brain wall_ms=1784247288536 mono_ms=11592719 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14694 role=brain wall_ms=1784247288536 mono_ms=11592720 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14695 role=brain wall_ms=1784247288631 mono_ms=11592814 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14695 role=brain wall_ms=1784247288631 mono_ms=11592815 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14696 role=brain stream-subscriber stream=5654 wall_ms=1784247288631 mono_ms=11592815 event=stream-sub-attach stream=5654 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14696 role=brain stream-subscriber stream=5654 wall_ms=1784247288631 mono_ms=11592815 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14696 role=brain stream-subscriber stream=5654 wall_ms=1784247288636 mono_ms=11592820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14697 role=brain wall_ms=1784247288636 mono_ms=11592820 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14697 role=brain wall_ms=1784247288636 mono_ms=11592820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14698 role=brain wall_ms=1784247290595 mono_ms=11594779 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14698 role=brain wall_ms=1784247290595 mono_ms=11594779 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14699 role=brain wall_ms=1784247295075 mono_ms=11599258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14699 role=brain wall_ms=1784247295075 mono_ms=11599258 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14700 role=brain wall_ms=1784247295076 mono_ms=11599260 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14700 role=brain stream-subscriber stream=5655 wall_ms=1784247295076 mono_ms=11599260 event=stream-sub-attach stream=5655 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14700 role=brain stream-subscriber stream=5655 wall_ms=1784247295079 mono_ms=11599263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14701 role=brain wall_ms=1784247295079 mono_ms=11599263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14701 role=brain wall_ms=1784247295079 mono_ms=11599263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14702 role=brain wall_ms=1784247295283 mono_ms=11599467 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14703 role=brain wall_ms=1784247295283 mono_ms=11599467 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14702 role=brain wall_ms=1784247295283 mono_ms=11599467 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14703 role=brain wall_ms=1784247295283 mono_ms=11599467 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14704 role=brain wall_ms=1784247295285 mono_ms=11599469 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14704 role=brain stream-subscriber stream=5656 wall_ms=1784247295285 mono_ms=11599469 event=stream-sub-attach stream=5656 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14704 role=brain stream-subscriber stream=5656 wall_ms=1784247295294 mono_ms=11599478 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14706 role=brain wall_ms=1784247295294 mono_ms=11599478 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14706 role=brain wall_ms=1784247295294 mono_ms=11599478 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14705 role=brain wall_ms=1784247295295 mono_ms=11599479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14705 role=brain stream-subscriber stream=5657 wall_ms=1784247295295 mono_ms=11599479 event=stream-sub-attach stream=5657 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14705 role=brain stream-subscriber stream=5657 wall_ms=1784247295297 mono_ms=11599481 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14707 role=brain wall_ms=1784247295297 mono_ms=11599481 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14707 role=brain wall_ms=1784247295297 mono_ms=11599481 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14708 role=brain wall_ms=1784247295856 mono_ms=11600040 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14708 role=brain wall_ms=1784247295857 mono_ms=11600040 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474910 id=62f9291a0c35938d7ba2f9c98e5bbaad27a0a242c53497e47adf1f4981578ed7 addr=EndpointAddr { id: PublicKey(62f9291a0c35938d7ba2f9c98e5bbaad27a0a242c53497e47adf1f4981578ed7), addrs: {Ip(100.68.35.65:55088), Ip(192.168.1.81:55088)} }\nPAIR_MEET_UP:BIGNET step=59474910 id=357dda2573f03366ab2cccc66a04e279f7d7fa57af7f000c2a652cb2137c8456 addr=EndpointAddr { id: PublicKey(357dda2573f03366ab2cccc66a04e279f7d7fa57af7f000c2a652cb2137c8456), addrs: {Ip(100.68.35.65:55090), Ip(192.168.1.81:55090)} }\nCONN_LIFECYCLE: conn=14709 role=brain wall_ms=1784247300905 mono_ms=11605089 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14709 role=brain wall_ms=1784247300905 mono_ms=11605089 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14710 role=brain wall_ms=1784247303068 mono_ms=11607252 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14710 role=brain wall_ms=1784247303068 mono_ms=11607252 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14711 role=brain wall_ms=1784247303069 mono_ms=11607253 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14711 role=brain stream-subscriber stream=5658 wall_ms=1784247303069 mono_ms=11607253 event=stream-sub-attach stream=5658 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14711 role=brain stream-subscriber stream=5658 wall_ms=1784247303078 mono_ms=11607261 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14712 role=brain wall_ms=1784247303078 mono_ms=11607261 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14712 role=brain wall_ms=1784247303078 mono_ms=11607261 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14713 role=brain wall_ms=1784247305964 mono_ms=11610148 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14713 role=brain wall_ms=1784247305964 mono_ms=11610148 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14714 role=brain wall_ms=1784247310116 mono_ms=11614300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14714 role=brain wall_ms=1784247310116 mono_ms=11614300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14715 role=brain wall_ms=1784247310117 mono_ms=11614301 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14715 role=brain stream-subscriber stream=5662 wall_ms=1784247310117 mono_ms=11614301 event=stream-sub-attach stream=5662 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14715 role=brain stream-subscriber stream=5662 wall_ms=1784247310119 mono_ms=11614303 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14716 role=brain wall_ms=1784247310119 mono_ms=11614303 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14716 role=brain wall_ms=1784247310119 mono_ms=11614303 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14717 role=brain wall_ms=1784247310323 mono_ms=11614507 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14718 role=brain wall_ms=1784247310323 mono_ms=11614507 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14717 role=brain wall_ms=1784247310323 mono_ms=11614507 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14718 role=brain wall_ms=1784247310323 mono_ms=11614507 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14719 role=brain wall_ms=1784247310325 mono_ms=11614508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14719 role=brain stream-subscriber stream=5663 wall_ms=1784247310325 mono_ms=11614509 event=stream-sub-attach stream=5663 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14719 role=brain stream-subscriber stream=5663 wall_ms=1784247310329 mono_ms=11614513 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14721 role=brain wall_ms=1784247310329 mono_ms=11614513 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14721 role=brain wall_ms=1784247310329 mono_ms=11614513 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14720 role=brain wall_ms=1784247310340 mono_ms=11614524 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14720 role=brain stream-subscriber stream=5664 wall_ms=1784247310340 mono_ms=11614524 event=stream-sub-attach stream=5664 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14720 role=brain stream-subscriber stream=5664 wall_ms=1784247310342 mono_ms=11614526 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14722 role=brain wall_ms=1784247310342 mono_ms=11614526 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14722 role=brain wall_ms=1784247310342 mono_ms=11614526 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14723 role=brain wall_ms=1784247311012 mono_ms=11615196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14723 role=brain wall_ms=1784247311012 mono_ms=11615196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14724 role=brain wall_ms=1784247314292 mono_ms=11618475 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14724 role=brain wall_ms=1784247314292 mono_ms=11618476 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14725 role=brain wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14726 role=brain wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14725 role=brain wall_ms=1784247315603 mono_ms=11619787 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14726 role=brain wall_ms=1784247315603 mono_ms=11619787 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14727 role=brain stream-subscriber stream=5666 wall_ms=1784247315603 mono_ms=11619787 event=stream-sub-attach stream=5666 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14728 role=brain stream-subscriber stream=5665 wall_ms=1784247315603 mono_ms=11619787 event=stream-sub-attach stream=5665 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14727 role=brain stream-subscriber stream=5666 wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14728 role=brain stream-subscriber stream=5665 wall_ms=1784247315603 mono_ms=11619787 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14729 role=brain wall_ms=1784247315611 mono_ms=11619795 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14728 role=brain stream-subscriber stream=5665 wall_ms=1784247315611 mono_ms=11619795 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14729 role=brain wall_ms=1784247315611 mono_ms=11619795 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14727 role=brain stream-subscriber stream=5666 wall_ms=1784247315612 mono_ms=11619796 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14730 role=brain wall_ms=1784247315614 mono_ms=11619797 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14730 role=brain wall_ms=1784247315614 mono_ms=11619797 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14731 role=brain wall_ms=1784247316065 mono_ms=11620248 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14731 role=brain wall_ms=1784247316065 mono_ms=11620248 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14732 role=brain wall_ms=1784247318086 mono_ms=11622269 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14732 role=brain wall_ms=1784247318086 mono_ms=11622269 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14733 role=brain wall_ms=1784247318087 mono_ms=11622271 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14733 role=brain stream-subscriber stream=5667 wall_ms=1784247318087 mono_ms=11622271 event=stream-sub-attach stream=5667 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14733 role=brain stream-subscriber stream=5667 wall_ms=1784247318096 mono_ms=11622280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14734 role=brain wall_ms=1784247318096 mono_ms=11622280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14734 role=brain wall_ms=1784247318096 mono_ms=11622280 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14735 role=brain wall_ms=1784247318502 mono_ms=11622686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14735 role=brain wall_ms=1784247318502 mono_ms=11622686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14736 role=brain stream-subscriber stream=5668 wall_ms=1784247318502 mono_ms=11622686 event=stream-sub-attach stream=5668 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14736 role=brain stream-subscriber stream=5668 wall_ms=1784247318502 mono_ms=11622686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14736 role=brain stream-subscriber stream=5668 wall_ms=1784247318503 mono_ms=11622686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14737 role=brain wall_ms=1784247318503 mono_ms=11622686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14737 role=brain wall_ms=1784247318503 mono_ms=11622687 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14738 role=brain wall_ms=1784247318605 mono_ms=11622789 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14738 role=brain wall_ms=1784247318606 mono_ms=11622789 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14739 role=brain stream-subscriber stream=5669 wall_ms=1784247318606 mono_ms=11622790 event=stream-sub-attach stream=5669 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14739 role=brain stream-subscriber stream=5669 wall_ms=1784247318606 mono_ms=11622790 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14739 role=brain stream-subscriber stream=5669 wall_ms=1784247318613 mono_ms=11622796 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14740 role=brain wall_ms=1784247318613 mono_ms=11622797 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14740 role=brain wall_ms=1784247318613 mono_ms=11622797 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14741 role=brain wall_ms=1784247319021 mono_ms=11623204 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14741 role=brain wall_ms=1784247319021 mono_ms=11623204 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14742 role=brain stream-subscriber stream=5670 wall_ms=1784247319021 mono_ms=11623205 event=stream-sub-attach stream=5670 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14742 role=brain stream-subscriber stream=5670 wall_ms=1784247319021 mono_ms=11623205 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14742 role=brain stream-subscriber stream=5670 wall_ms=1784247319025 mono_ms=11623209 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14743 role=brain wall_ms=1784247319025 mono_ms=11623209 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14743 role=brain wall_ms=1784247319025 mono_ms=11623209 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14744 role=brain wall_ms=1784247321109 mono_ms=11625293 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14744 role=brain wall_ms=1784247321109 mono_ms=11625293 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14745 role=brain wall_ms=1784247325241 mono_ms=11629424 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14745 role=brain wall_ms=1784247325241 mono_ms=11629424 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14746 role=brain wall_ms=1784247325242 mono_ms=11629426 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14746 role=brain stream-subscriber stream=5671 wall_ms=1784247325242 mono_ms=11629426 event=stream-sub-attach stream=5671 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14746 role=brain stream-subscriber stream=5671 wall_ms=1784247325245 mono_ms=11629428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14747 role=brain wall_ms=1784247325245 mono_ms=11629429 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14747 role=brain wall_ms=1784247325245 mono_ms=11629429 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14748 role=brain wall_ms=1784247325448 mono_ms=11629632 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14749 role=brain wall_ms=1784247325448 mono_ms=11629632 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14748 role=brain wall_ms=1784247325448 mono_ms=11629632 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14749 role=brain wall_ms=1784247325448 mono_ms=11629632 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14751 role=brain wall_ms=1784247325450 mono_ms=11629633 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14751 role=brain stream-subscriber stream=5672 wall_ms=1784247325450 mono_ms=11629633 event=stream-sub-attach stream=5672 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14750 role=brain wall_ms=1784247325452 mono_ms=11629636 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14750 role=brain stream-subscriber stream=5673 wall_ms=1784247325452 mono_ms=11629636 event=stream-sub-attach stream=5673 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14751 role=brain stream-subscriber stream=5672 wall_ms=1784247325455 mono_ms=11629638 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14752 role=brain wall_ms=1784247325455 mono_ms=11629638 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14752 role=brain wall_ms=1784247325455 mono_ms=11629638 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14750 role=brain stream-subscriber stream=5673 wall_ms=1784247325467 mono_ms=11629651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14753 role=brain wall_ms=1784247325468 mono_ms=11629651 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14753 role=brain wall_ms=1784247325468 mono_ms=11629651 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14754 role=brain wall_ms=1784247326162 mono_ms=11630345 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14754 role=brain wall_ms=1784247326162 mono_ms=11630346 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474911 id=efa2b47b10553174c4c09872ca7d1f01bb590a7939251fc4be2b03d04a89643f addr=EndpointAddr { id: PublicKey(efa2b47b10553174c4c09872ca7d1f01bb590a7939251fc4be2b03d04a89643f), addrs: {Ip(100.68.35.65:54049), Ip(192.168.1.81:54049)} }\nPAIR_MEET_UP:BIGNET step=59474911 id=e4ce4135e67ae5bb90f4cd98ebca8d07cd9478cc0e9ab4c82e46cc5a3f7825ed addr=EndpointAddr { id: PublicKey(e4ce4135e67ae5bb90f4cd98ebca8d07cd9478cc0e9ab4c82e46cc5a3f7825ed), addrs: {Ip(100.68.35.65:54055), Ip(192.168.1.81:54055)} }\nCONN_LIFECYCLE: conn=14755 role=brain wall_ms=1784247331212 mono_ms=11635396 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14755 role=brain wall_ms=1784247331213 mono_ms=11635396 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14756 role=brain wall_ms=1784247333216 mono_ms=11637400 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14756 role=brain wall_ms=1784247333217 mono_ms=11637400 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14757 role=brain wall_ms=1784247333218 mono_ms=11637402 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14757 role=brain stream-subscriber stream=5674 wall_ms=1784247333218 mono_ms=11637402 event=stream-sub-attach stream=5674 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14757 role=brain stream-subscriber stream=5674 wall_ms=1784247333226 mono_ms=11637410 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14758 role=brain wall_ms=1784247333227 mono_ms=11637410 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14758 role=brain wall_ms=1784247333227 mono_ms=11637410 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14759 role=brain wall_ms=1784247336266 mono_ms=11640450 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14759 role=brain wall_ms=1784247336266 mono_ms=11640450 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14760 role=brain wall_ms=1784247339631 mono_ms=11643815 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14760 role=brain wall_ms=1784247339631 mono_ms=11643815 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14761 role=brain stream-subscriber stream=5678 wall_ms=1784247339632 mono_ms=11643815 event=stream-sub-attach stream=5678 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14761 role=brain stream-subscriber stream=5678 wall_ms=1784247339632 mono_ms=11643815 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14761 role=brain stream-subscriber stream=5678 wall_ms=1784247339632 mono_ms=11643815 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14762 role=brain wall_ms=1784247339632 mono_ms=11643816 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14762 role=brain wall_ms=1784247339632 mono_ms=11643816 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14763 role=brain wall_ms=1784247340252 mono_ms=11644436 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14763 role=brain wall_ms=1784247340252 mono_ms=11644436 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14764 role=brain wall_ms=1784247340253 mono_ms=11644437 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14764 role=brain stream-subscriber stream=5679 wall_ms=1784247340253 mono_ms=11644437 event=stream-sub-attach stream=5679 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14764 role=brain stream-subscriber stream=5679 wall_ms=1784247340255 mono_ms=11644439 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14765 role=brain wall_ms=1784247340255 mono_ms=11644439 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14765 role=brain wall_ms=1784247340255 mono_ms=11644439 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14766 role=brain wall_ms=1784247340460 mono_ms=11644644 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14767 role=brain wall_ms=1784247340460 mono_ms=11644644 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14766 role=brain wall_ms=1784247340460 mono_ms=11644644 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14767 role=brain wall_ms=1784247340460 mono_ms=11644644 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14769 role=brain wall_ms=1784247340462 mono_ms=11644645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14769 role=brain stream-subscriber stream=5680 wall_ms=1784247340462 mono_ms=11644645 event=stream-sub-attach stream=5680 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14769 role=brain stream-subscriber stream=5680 wall_ms=1784247340467 mono_ms=11644650 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14770 role=brain wall_ms=1784247340467 mono_ms=11644650 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14770 role=brain wall_ms=1784247340467 mono_ms=11644650 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14768 role=brain wall_ms=1784247340477 mono_ms=11644661 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14768 role=brain stream-subscriber stream=5681 wall_ms=1784247340477 mono_ms=11644661 event=stream-sub-attach stream=5681 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14768 role=brain stream-subscriber stream=5681 wall_ms=1784247340479 mono_ms=11644663 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14771 role=brain wall_ms=1784247340480 mono_ms=11644663 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14771 role=brain wall_ms=1784247340480 mono_ms=11644663 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14772 role=brain wall_ms=1784247341320 mono_ms=11645504 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14772 role=brain wall_ms=1784247341320 mono_ms=11645504 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14773 role=brain wall_ms=1784247345116 mono_ms=11649299 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14773 role=brain wall_ms=1784247345116 mono_ms=11649299 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14774 role=brain stream-subscriber stream=5682 wall_ms=1784247345116 mono_ms=11649300 event=stream-sub-attach stream=5682 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14774 role=brain stream-subscriber stream=5682 wall_ms=1784247345116 mono_ms=11649300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14774 role=brain stream-subscriber stream=5682 wall_ms=1784247345116 mono_ms=11649300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14775 role=brain wall_ms=1784247345116 mono_ms=11649300 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14775 role=brain wall_ms=1784247345116 mono_ms=11649300 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14776 role=brain wall_ms=1784247345220 mono_ms=11649403 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14776 role=brain wall_ms=1784247345220 mono_ms=11649403 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14777 role=brain stream-subscriber stream=5683 wall_ms=1784247345220 mono_ms=11649404 event=stream-sub-attach stream=5683 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14777 role=brain stream-subscriber stream=5683 wall_ms=1784247345220 mono_ms=11649404 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14777 role=brain stream-subscriber stream=5683 wall_ms=1784247345221 mono_ms=11649404 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14778 role=brain wall_ms=1784247345221 mono_ms=11649404 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14778 role=brain wall_ms=1784247345221 mono_ms=11649404 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14779 role=brain wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14780 role=brain wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14779 role=brain wall_ms=1784247345737 mono_ms=11649920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14780 role=brain wall_ms=1784247345737 mono_ms=11649920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14781 role=brain stream-subscriber stream=5685 wall_ms=1784247345737 mono_ms=11649920 event=stream-sub-attach stream=5685 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14781 role=brain stream-subscriber stream=5685 wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14782 role=brain stream-subscriber stream=5684 wall_ms=1784247345737 mono_ms=11649920 event=stream-sub-attach stream=5684 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14782 role=brain stream-subscriber stream=5684 wall_ms=1784247345737 mono_ms=11649920 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14782 role=brain stream-subscriber stream=5684 wall_ms=1784247345744 mono_ms=11649928 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14783 role=brain wall_ms=1784247345745 mono_ms=11649929 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14783 role=brain wall_ms=1784247345745 mono_ms=11649929 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14781 role=brain stream-subscriber stream=5685 wall_ms=1784247345746 mono_ms=11649930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14784 role=brain wall_ms=1784247345746 mono_ms=11649930 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14784 role=brain wall_ms=1784247345746 mono_ms=11649930 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14785 role=brain wall_ms=1784247346369 mono_ms=11650552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14785 role=brain wall_ms=1784247346369 mono_ms=11650553 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14786 role=brain wall_ms=1784247348325 mono_ms=11652508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14786 role=brain wall_ms=1784247348325 mono_ms=11652508 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14787 role=brain wall_ms=1784247348326 mono_ms=11652509 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14787 role=brain stream-subscriber stream=5689 wall_ms=1784247348326 mono_ms=11652509 event=stream-sub-attach stream=5689 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14787 role=brain stream-subscriber stream=5689 wall_ms=1784247348335 mono_ms=11652518 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14788 role=brain wall_ms=1784247348335 mono_ms=11652518 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14788 role=brain wall_ms=1784247348335 mono_ms=11652518 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14789 role=brain wall_ms=1784247348843 mono_ms=11653026 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14789 role=brain wall_ms=1784247348843 mono_ms=11653026 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14790 role=brain stream-subscriber stream=5690 wall_ms=1784247348843 mono_ms=11653026 event=stream-sub-attach stream=5690 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14790 role=brain stream-subscriber stream=5690 wall_ms=1784247348843 mono_ms=11653027 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14790 role=brain stream-subscriber stream=5690 wall_ms=1784247348851 mono_ms=11653035 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14791 role=brain wall_ms=1784247348852 mono_ms=11653036 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14791 role=brain wall_ms=1784247348852 mono_ms=11653036 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14792 role=brain wall_ms=1784247349361 mono_ms=11653545 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14792 role=brain wall_ms=1784247349361 mono_ms=11653545 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14793 role=brain stream-subscriber stream=5691 wall_ms=1784247349361 mono_ms=11653545 event=stream-sub-attach stream=5691 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14793 role=brain stream-subscriber stream=5691 wall_ms=1784247349361 mono_ms=11653545 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14793 role=brain stream-subscriber stream=5691 wall_ms=1784247349366 mono_ms=11653550 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14794 role=brain wall_ms=1784247349367 mono_ms=11653550 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14794 role=brain wall_ms=1784247349367 mono_ms=11653550 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14795 role=brain wall_ms=1784247351420 mono_ms=11655604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14795 role=brain wall_ms=1784247351420 mono_ms=11655604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14796 role=brain wall_ms=1784247355367 mono_ms=11659551 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14796 role=brain wall_ms=1784247355368 mono_ms=11659551 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14797 role=brain wall_ms=1784247355369 mono_ms=11659552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14797 role=brain stream-subscriber stream=5692 wall_ms=1784247355369 mono_ms=11659552 event=stream-sub-attach stream=5692 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14797 role=brain stream-subscriber stream=5692 wall_ms=1784247355371 mono_ms=11659555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14798 role=brain wall_ms=1784247355371 mono_ms=11659555 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14798 role=brain wall_ms=1784247355371 mono_ms=11659555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14800 role=brain wall_ms=1784247355574 mono_ms=11659758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14799 role=brain wall_ms=1784247355574 mono_ms=11659758 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14800 role=brain wall_ms=1784247355574 mono_ms=11659758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14799 role=brain wall_ms=1784247355574 mono_ms=11659758 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14801 role=brain wall_ms=1784247355576 mono_ms=11659759 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14802 role=brain wall_ms=1784247355576 mono_ms=11659759 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14801 role=brain stream-subscriber stream=5693 wall_ms=1784247355576 mono_ms=11659759 event=stream-sub-attach stream=5693 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14802 role=brain stream-subscriber stream=5694 wall_ms=1784247355576 mono_ms=11659759 event=stream-sub-attach stream=5694 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14802 role=brain stream-subscriber stream=5694 wall_ms=1784247355578 mono_ms=11659761 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14803 role=brain wall_ms=1784247355578 mono_ms=11659761 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14803 role=brain wall_ms=1784247355578 mono_ms=11659761 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14801 role=brain stream-subscriber stream=5693 wall_ms=1784247355581 mono_ms=11659765 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14804 role=brain wall_ms=1784247355581 mono_ms=11659765 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14804 role=brain wall_ms=1784247355581 mono_ms=11659765 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14805 role=brain wall_ms=1784247356474 mono_ms=11660658 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14805 role=brain wall_ms=1784247356475 mono_ms=11660658 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247359973 mono_ms=11664156 event=stream-sub-attach stream=5695 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474912 id=649799cd83ef6717696418969f68da703fdcab5f0f090bdcc941bb4a9e67096c addr=EndpointAddr { id: PublicKey(649799cd83ef6717696418969f68da703fdcab5f0f090bdcc941bb4a9e67096c), addrs: {Ip(100.68.35.65:50506), Ip(192.168.1.81:50506)} }\nPAIR_MEET_UP:BIGNET step=59474912 id=e88940e2687c58f9b822e1d55fabfedbd839960212c2b2fde490fbbbc83ae58f addr=EndpointAddr { id: PublicKey(e88940e2687c58f9b822e1d55fabfedbd839960212c2b2fde490fbbbc83ae58f), addrs: {Ip(100.68.35.65:50512), Ip(192.168.1.81:50512)} }\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247361023 mono_ms=11665207 event=stream-sub-attach stream=5696 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247361365 mono_ms=11665549 event=stream-sub-attach stream=5697 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14806 role=brain wall_ms=1784247361529 mono_ms=11665713 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14806 role=brain wall_ms=1784247361529 mono_ms=11665713 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14807 role=brain wall_ms=1784247363462 mono_ms=11667645 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14807 role=brain wall_ms=1784247363462 mono_ms=11667645 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14808 role=brain wall_ms=1784247363463 mono_ms=11667646 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14808 role=brain stream-subscriber stream=5698 wall_ms=1784247363463 mono_ms=11667646 event=stream-sub-attach stream=5698 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14808 role=brain stream-subscriber stream=5698 wall_ms=1784247363471 mono_ms=11667654 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14809 role=brain wall_ms=1784247363471 mono_ms=11667654 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14809 role=brain wall_ms=1784247363471 mono_ms=11667654 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14810 role=brain wall_ms=1784247366580 mono_ms=11670763 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14810 role=brain wall_ms=1784247366580 mono_ms=11670763 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14811 role=brain wall_ms=1784247370413 mono_ms=11674596 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14811 role=brain wall_ms=1784247370413 mono_ms=11674596 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14812 role=brain wall_ms=1784247370414 mono_ms=11674598 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14812 role=brain stream-subscriber stream=5699 wall_ms=1784247370414 mono_ms=11674598 event=stream-sub-attach stream=5699 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14812 role=brain stream-subscriber stream=5699 wall_ms=1784247370416 mono_ms=11674600 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14813 role=brain wall_ms=1784247370417 mono_ms=11674600 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14813 role=brain wall_ms=1784247370417 mono_ms=11674600 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14815 role=brain wall_ms=1784247370620 mono_ms=11674803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14814 role=brain wall_ms=1784247370620 mono_ms=11674803 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14815 role=brain wall_ms=1784247370620 mono_ms=11674804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14814 role=brain wall_ms=1784247370620 mono_ms=11674804 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14816 role=brain wall_ms=1784247370622 mono_ms=11674805 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14816 role=brain stream-subscriber stream=5701 wall_ms=1784247370622 mono_ms=11674805 event=stream-sub-attach stream=5701 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14816 role=brain stream-subscriber stream=5701 wall_ms=1784247370624 mono_ms=11674808 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14818 role=brain wall_ms=1784247370624 mono_ms=11674808 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14818 role=brain wall_ms=1784247370624 mono_ms=11674808 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14817 role=brain wall_ms=1784247370630 mono_ms=11674814 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14817 role=brain stream-subscriber stream=5700 wall_ms=1784247370630 mono_ms=11674814 event=stream-sub-attach stream=5700 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14817 role=brain stream-subscriber stream=5700 wall_ms=1784247370636 mono_ms=11674820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14819 role=brain wall_ms=1784247370637 mono_ms=11674820 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14819 role=brain wall_ms=1784247370637 mono_ms=11674820 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14820 role=brain wall_ms=1784247371638 mono_ms=11675821 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14820 role=brain wall_ms=1784247371638 mono_ms=11675821 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14822 role=brain wall_ms=1784247375916 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14821 role=brain wall_ms=1784247375916 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14822 role=brain wall_ms=1784247375917 mono_ms=11680100 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14821 role=brain wall_ms=1784247375917 mono_ms=11680100 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14824 role=brain stream-subscriber stream=5705 wall_ms=1784247375917 mono_ms=11680100 event=stream-sub-attach stream=5705 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14824 role=brain stream-subscriber stream=5705 wall_ms=1784247375917 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14823 role=brain stream-subscriber stream=5706 wall_ms=1784247375917 mono_ms=11680100 event=stream-sub-attach stream=5706 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14823 role=brain stream-subscriber stream=5706 wall_ms=1784247375917 mono_ms=11680100 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14824 role=brain stream-subscriber stream=5705 wall_ms=1784247375922 mono_ms=11680106 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14825 role=brain wall_ms=1784247375923 mono_ms=11680107 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14825 role=brain wall_ms=1784247375923 mono_ms=11680107 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14823 role=brain stream-subscriber stream=5706 wall_ms=1784247375928 mono_ms=11680111 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14826 role=brain wall_ms=1784247375928 mono_ms=11680112 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14826 role=brain wall_ms=1784247375929 mono_ms=11680112 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14827 role=brain wall_ms=1784247376690 mono_ms=11680873 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14827 role=brain wall_ms=1784247376690 mono_ms=11680873 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14828 role=brain wall_ms=1784247378399 mono_ms=11682582 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14828 role=brain wall_ms=1784247378399 mono_ms=11682582 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14829 role=brain wall_ms=1784247378400 mono_ms=11682583 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14829 role=brain stream-subscriber stream=5707 wall_ms=1784247378400 mono_ms=11682583 event=stream-sub-attach stream=5707 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14829 role=brain stream-subscriber stream=5707 wall_ms=1784247378409 mono_ms=11682592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14830 role=brain wall_ms=1784247378409 mono_ms=11682592 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14830 role=brain wall_ms=1784247378409 mono_ms=11682592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14831 role=brain wall_ms=1784247378918 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14832 role=brain wall_ms=1784247378918 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14831 role=brain wall_ms=1784247378918 mono_ms=11683102 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14832 role=brain wall_ms=1784247378918 mono_ms=11683102 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14834 role=brain stream-subscriber stream=5708 wall_ms=1784247378919 mono_ms=11683102 event=stream-sub-attach stream=5708 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14834 role=brain stream-subscriber stream=5708 wall_ms=1784247378919 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14833 role=brain stream-subscriber stream=5709 wall_ms=1784247378919 mono_ms=11683102 event=stream-sub-attach stream=5709 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14833 role=brain stream-subscriber stream=5709 wall_ms=1784247378919 mono_ms=11683102 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14833 role=brain stream-subscriber stream=5709 wall_ms=1784247378919 mono_ms=11683103 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14835 role=brain wall_ms=1784247378919 mono_ms=11683103 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14835 role=brain wall_ms=1784247378919 mono_ms=11683103 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14834 role=brain stream-subscriber stream=5708 wall_ms=1784247378926 mono_ms=11683109 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14836 role=brain wall_ms=1784247378926 mono_ms=11683110 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14836 role=brain wall_ms=1784247378926 mono_ms=11683110 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14837 role=brain wall_ms=1784247379643 mono_ms=11683826 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14837 role=brain wall_ms=1784247379643 mono_ms=11683826 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14838 role=brain stream-subscriber stream=5710 wall_ms=1784247379643 mono_ms=11683827 event=stream-sub-attach stream=5710 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14838 role=brain stream-subscriber stream=5710 wall_ms=1784247379643 mono_ms=11683827 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14838 role=brain stream-subscriber stream=5710 wall_ms=1784247379649 mono_ms=11683832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14839 role=brain wall_ms=1784247379649 mono_ms=11683832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14839 role=brain wall_ms=1784247379649 mono_ms=11683832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14840 role=brain wall_ms=1784247381739 mono_ms=11685922 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14840 role=brain wall_ms=1784247381739 mono_ms=11685922 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14841 role=brain wall_ms=1784247385441 mono_ms=11689625 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14841 role=brain wall_ms=1784247385441 mono_ms=11689625 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14842 role=brain wall_ms=1784247385443 mono_ms=11689626 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14842 role=brain stream-subscriber stream=5711 wall_ms=1784247385443 mono_ms=11689626 event=stream-sub-attach stream=5711 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14842 role=brain stream-subscriber stream=5711 wall_ms=1784247385445 mono_ms=11689628 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14843 role=brain wall_ms=1784247385445 mono_ms=11689629 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14843 role=brain wall_ms=1784247385445 mono_ms=11689629 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14844 role=brain wall_ms=1784247385648 mono_ms=11689832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14845 role=brain wall_ms=1784247385648 mono_ms=11689832 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14844 role=brain wall_ms=1784247385648 mono_ms=11689832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14845 role=brain wall_ms=1784247385649 mono_ms=11689832 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14847 role=brain wall_ms=1784247385650 mono_ms=11689834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14847 role=brain stream-subscriber stream=5713 wall_ms=1784247385650 mono_ms=11689834 event=stream-sub-attach stream=5713 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14847 role=brain stream-subscriber stream=5713 wall_ms=1784247385652 mono_ms=11689836 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14848 role=brain wall_ms=1784247385652 mono_ms=11689836 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14848 role=brain wall_ms=1784247385652 mono_ms=11689836 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain wall_ms=1784247385658 mono_ms=11689841 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain stream-subscriber stream=5712 wall_ms=1784247385658 mono_ms=11689841 event=stream-sub-attach stream=5712 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain stream-subscriber stream=5712 wall_ms=1784247385663 mono_ms=11689846 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14849 role=brain wall_ms=1784247385663 mono_ms=11689847 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14849 role=brain wall_ms=1784247385663 mono_ms=11689847 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14850 role=brain wall_ms=1784247386788 mono_ms=11690972 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14850 role=brain wall_ms=1784247386789 mono_ms=11690972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474913 id=859e8318b5c71fde67e81989dfc364fafef2998e1b1914ba1f022d8486194b24 addr=EndpointAddr { id: PublicKey(859e8318b5c71fde67e81989dfc364fafef2998e1b1914ba1f022d8486194b24), addrs: {Ip(100.68.35.65:56371), Ip(192.168.1.81:56371)} }\nPAIR_MEET_UP:BIGNET step=59474913 id=b663abca6fc95c5ccbc7c4698a3bcc59fe8564d890a86ce01b783bb8cbf51841 addr=EndpointAddr { id: PublicKey(b663abca6fc95c5ccbc7c4698a3bcc59fe8564d890a86ce01b783bb8cbf51841), addrs: {Ip(100.68.35.65:56372), Ip(192.168.1.81:56372)} }","startLine":35999,"lineNumbers":[35999,36000,36001,36002,36003,36004,36005,36006,36007,36008,36009,36010,36011,36012,36013,36014,36015,36016,36017,36018,36019,36020,36021,36022,36023,36024,36025,36026,36027,36028,36029,36030,36031,36032,36033,36034,36035,36036,36037,36038,36039,36040,36041,36042,36043,36044,36045,36046,36047,36048,36049,36050,36051,36052,36053,36054,36055,36056,36057,36058,36059,36060,36061,36062,36063,36064,36065,36066,36067,36068,36069,36070,36071,36072,36073,36074,36075,36076,36077,36078,36079,36080,36081,36082,36083,36084,36085,36086,36087,36088,36089,36090,36091,36092,36093,36094,36095,36096,36097,36098,36099,36100,36101,36102,36103,36104,36105,36106,36107,36108,36109,36110,36111,36112,36113,36114,36115,36116,36117,36118,36119,36120,36121,36122,36123,36124,36125,36126,36127,36128,36129,36130,36131,36132,36133,36134,36135,36136,36137,36138,36139,36140,36141,36142,36143,36144,36145,36146,36147,36148,36149,36150,36151,36152,36153,36154,36155,36156,36157,36158,36159,36160,36161,36162,36163,36164,36165,36166,36167,36168,36169,36170,36171,36172,36173,36174,36175,36176,36177,36178,36179,36180,36181,36182,36183,36184,36185,36186,36187,36188,36189,36190,36191,36192,36193,36194,36195,36196,36197,36198,36199,36200,36201,36202,36203,36204,36205,36206,36207,36208,36209,36210,36211,36212,36213,36214,36215,36216,36217,36218,36219,36220,36221,36222,36223,36224,36225,36226,36227,36228,36229,36230,36231,36232,36233,36234,36235,36236,36237,36238,36239,36240,36241,36242,36243,36244,36245,36246,36247,36248,36249,36250,36251,36252,36253,36254,36255,36256,36257,36258,36259,36260,36261,36262,36263,36264,36265,36266,36267,36268,36269,36270,36271,36272,36273,36274,36275,36276,36277,36278,36279,36280,36281,36282,36283,36284,36285,36286,36287,36288,36289,36290,36291,36292,36293,36294,36295,36296,36297,36298,36299,36300,36301,36302,36303,36304,36305,36306,36307,36308,36309,36310,36311,36312,36313,36314,36315,36316,36317,36318,36319,36320,36321,36322,36323,36324,36325,36326,36327,36328,36329,36330,36331,36332,36333,36334,36335,36336,36337,36338,36339,36340,36341,36342,36343,36344,36345,36346,36347,36348,36349,36350,36351,36352,36353,36354,36355,36356,36357,36358,36359,36360,36361,36362,36363,36364,36365,36366,36367,36368,36369,36370,36371,36372,36373,36374,36375,36376,36377,36378,36379,36380,36381,36382,36383,36384,36385,36386,36387,36388,36389,36390,36391,36392,36393,36394,36395,36396,36397,36398,36399,36400,36401,36402,36403,36404,36405,36406,36407,36408,36409,36410]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":36450,"totalBytes":64101,"outputLines":412,"outputBytes":64101,"shownRange":{"start":35999,"end":36410},"nextOffset":36411}}},"isError":false,"timestamp":1784247401147}}
{"type":"message","id":"67cc9446","parentId":"4d57514b","timestamp":"2026-07-17T00:17:00.318Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Planning targeted log grep for timeouts**\n\n**Distinguishing local versus broker stalls**"},{"type":"toolCall","id":"call_yBL8cKaSqapXCm9PKhDDEioK|fc_05a4d8ea8a10ef0b016a59747c3f38819892c5f17e7283e28c","name":"grep","arguments":{"i":"Counting late subscriber timeouts","pattern":"CONN_WRITE_POISONED|timed_out=true|BRAIN_SUBSCRIBER_STALL_EVICT|DISPATCH:","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":"25000-36450","case":true,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_AP2WZq9TeAG9V4BoYnbflPXB|fc_05a4d8ea8a10ef0b016a59747c3f5c819898217487298d8d06","name":"grep","arguments":{"i":"Finding late brain restarts","pattern":"=== spt brain stderr|BRAIN_UP|BRAIN_RESUMED|PUMP_IPC_READER: (spawned|exited)|BROKER_|DAEMON_EXIT","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":"25000-36450","case":true,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_K1qElGxQnGcuapPDXS7CRBf9|fc_05a4d8ea8a10ef0b016a59747c3f688198ad6fd7da6582674a","name":"grep","arguments":{"i":"Finding endpoint activity near timeouts","pattern":"ENDPOINT_(INJECT|AUTOSTART|EXIT)|PTY|INJECT_SETTLE_TIMEOUT|PSYCHE_TURN_FAIL|COMMUNE|PULSE|CONN_WRITE","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":"25000-36450","case":false,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_rrXKLUUZHhSMvlTYquC4DN5h|fc_05a4d8ea8a10ef0b016a59747c3f6c8198b89c53f62c12a982","name":"read","arguments":{"i":"Reading current daemon PID","path":"C:/Users/decid/AppData/Local/spt-core/daemon.pid","selector":"raw"}},{"type":"toolCall","id":"call_UwuUvjOWr5BPEDB8vgrPgRtr|fc_05a4d8ea8a10ef0b016a59747c3f788198a904306f073c3825","name":"glob","arguments":{"i":"Locating current status snapshots","path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-*.json;C:/Users/decid/AppData/Local/spt-core/owlery/*/info.json;C:/Users/decid/AppData/Local/spt-core/owlery/*/.ready;C:/Users/decid/AppData/Local/spt-core/owlery/*/ready","hidden":true,"gitignore":false,"limit":100}},{"type":"toolCall","id":"call_3H9d7HOCfL0PWW03v6jLrVjG|fc_05a4d8ea8a10ef0b016a59747c3f7c81989f35bca15715a2cf","name":"grep","arguments":{"i":"Locating daemon status implementation","pattern":"fn cmd_daemon|cmd_daemon_status|pump_heartbeat|pump health|stale|healthy","path":"crates/spt/src/cli.rs","selector":null,"case":false,"gitignore":true,"skip":null}},{"type":"toolCall","id":"call_CTdRl4sloHHQyQbviToakUgn|fc_05a4d8ea8a10ef0b016a59747c3f88819898167ecf453c9220","name":"grep","arguments":{"i":"Finding periodic cadence constants","pattern":"const (HEARTBEAT_PERIOD|TICK|PEER_REPLY_READ_BUDGET|ROUND_DRAIN_MARGIN)|Duration::from_(secs|millis)","path":"crates/spt-daemon/src/pump/mod.rs;crates/spt-daemon/src/dispatch.rs;crates/spt-daemon/src/brainproc.rs;crates/spt-daemon/src/broker.rs","selector":null,"case":true,"gitignore":true,"skip":null}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":44716,"output":961,"cacheRead":69120,"cacheWrite":0,"totalTokens":114797,"reasoningTokens":309,"cost":{"input":0.22358000000000003,"output":0.02883,"cacheRead":0.03456,"cacheWrite":0,"total":0.28697}},"stopReason":"toolUse","timestamp":1784247401153,"responseId":"resp_05a4d8ea8a10ef0b016a5974696c848198836cbcf830a67ea2","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a59746ad9588198a4466e0c6636edb4","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXR8kLD7cH6G3o4rynaTQ7T53LEM061I3VKYV2o8dqxsP1pNiKUoGoWWkFVIREDzl-EEY0fhG957VnCR1LS10--x_-bbug2QQkIxgpWOH8uyIM8FshrzoxpAuy0q_lzt-7LIfJtga_P4HQNMldVr5i5TOmFrjJQ5TBOQ6v239kD1g2z_mRpCct6FZai0DxpFouikgNOz0hjsVl5n1Teg8bYVcKiqnnZyAIFB5y9dQshrFJOxe_YgDvhVq1SKmkdhTePMpsmmvK9SXh_tU32X1Toh3bBpuq7TGUab4XA5l9_EbS7oZp7nb9mUN_7_CtyI1EZa7zq9NOfPx6IQ1taB3FHo9G7saerw5Tlr-8Q4BnlQ16rzjAIrc0zsAn-Se5N-CqMG8QZD9f_zONBsBe5d7N3EN_K-MTwIyO3Xe0W9eVMoTTOUFsEH4JtNlTMnulUywTa4oSvUVMh8ynFANaNkYkxZy0Jc7bCxXHEi1ARKKNOVT8WrTUnSP19w-BAk8oIchqFfsZiPP36jkyBjttYbjli0ZqfBXC3x9WWS7Id3fGXI36VNvmA-4cRKSgULQCZWLPHqO7-4voNiwAZg2hToFx-YzeddgT-s5ShRnLIKvC0iMT8fsGXURnKwjbdK2NGU1xZt1apbQUbUJHZDg7nefaJYKlDWcpDA_ESFF1Ts-54mg9555yM2-MymJHgeEbSVKXe-oGlBRTM_mh0moJBJRPl_FzQt8Na75tKBI6cRt6bTHavRFuQv9-UF2cfDgn3fvYMFS0ypmreN_yVx9M_cAoFdRPKp73kc8DE7ewCaWZc_PN8fJFMoOec4KJ7gKAg6IBBkpD9fr8QWLI6oyck6EvTHxW43dLwleUenyeYv6XwoDZYhBaQeawFbLqmzE8os99Jf0veMgqgGHfu2CxEtdVdmcMZjdK8oPFuPxrXADAcT0-m1SnRfywcHhxlp5x_Ui6dv39AOUxzITe0C5eXKyu6F6lIeiul1XFn8Lrsde3rrABUgvR3pH5EEyQ4sRXVy8q_63z3pTkasKeXbFivU_6bdacPks4H1X7I3Znz7HsS_PUA7kxGEDhsTiveeZIDvsNO-qZO2AcuGy_mYJyikvej8QPcYGI4QKJapwL3Rk9n6AqoqqQw_hgT2jra_zvEv6ztAPfecMoOVWlKblg6LWbM1Cs3i20HfK9UoCDfGdWyBTJFOsp_SzpuZVlAqudez_2kndd0a0WDDubi2ZkLHfOzpE5TmqO0jYQRjvMk2ReRIgIktO2vyRTQrtc4P_fbxIMnH6gqzi9ZGNIn3tl05ifKIjqytQaBmXLICvyzFR2j6Td2u6EvsWycVOq32xeNTFwXpkv1Ai4BDrqvKWJp9kQ__Qp3Ocnjlr5NXfPlmCTyQ7OC5h-KcEjmWVcDX1YBZ2dFLAHJ5JgScAJfx0U-HFt14URpUeaG18j96v6M2BCUoRv9EWJ7fWula3UKjbUODm1JNoT7xn1ET2EEJIQCh7Vpjl3MR42Bb6Rmp5YOJ2kge5mqJQ3-6eEa-HSxyRsBsaNNiRtMu7cuFePc7OAOtXXH8GsSRrHJap3qvaLu1YvOX_7uP75YUwwsFdRx93epQIM0xED1EA_zv03OESJIB4ERqw1GbIZSZmvVoMp9J9U45tQUY9ooZkucsYRzjhVha0U6vxNV1aByivrP_aBq9A4WS36p_GKbHOqpl_O4hc6-UMEimdZnkvkdTtn_khAoezxoUfveAWkZ39lgjhrLSINTNe3qZqRb1jCHuXjrt4m7LbCLExbelaf-xzjSSwOM6aeLU-EYhjd5QYpivjY6g62Pgc6pfkbqereuHvOAE7Bm3FxRfc9weksgevDGW6MyJ2dkJN2vVCY1yYrd7ol-UbA9f7TlZn7aYil-9AgDwUtso-TtE1FBpgx_mo5d5pgU8J18F7Ob2swszrX2Sbu0RlwpiR46V5Xw65nTyINdUUfIltM-BDM3ewIM2l4Ol--1sNsM7LfCFFV80kLiiDRKW2w2zZ7TcTiQdGrJtJ3w0ufaCfpyXKWA6h0OZl9XutVqkt0fGQ4rildXnhMPIzqD_BzK-nQr-4jJ8J3OpApxzrP8L8Uyzp12O9OF-IFqGE_3Bn_dfOcVGhCbGTi-lY4LYS_dmz_MlYEONMq7_44UynYvnykpf5gX-WAXYwt5A8fkrq7Pfwq2hUCwkXqJ8Q3j-Tcp9wX2T88lIrkA7UjsKsLJQNUWqins6XGzo_nPHy34tDEql7kJ8Cr5kkIknLzAfmHbVlSqFMbMWGlJf9ul9gN5uH1JobKeO8Gjj2L_A_MNjmNTj6OrWx88cDrcxlYF_aU5vd9xC9umYx_1yJ7kI5MK39zWq2PdsU4wEOyUVvj-n6kMwX_xq01QjaB8RWVR1GYYhi3orYWxiPD3pG0lKpc31RgK-6TBEcOrR10Kq9U35RMYkQL7N3VOwbtSsx-We52JM93MlzMxgAhYb_txmvjjKL7zql4qnwIHEKfY84cC5xrV4kHlbXsGarp6DNszIcBik_uw1Cp_TeVz8svOfqBh2VjxOysJiY04Pw_fNdg7NVeSBjRkY7DDxH_r3Mz9BJeD9tztGUJkIgVDIOOCQLjb-ji5LVhQN9nRQ58F4sYYRiTfRQVHsN9pVb5dEUFOYCVKHTeyDK0pNoBqwdhFzYqH8-M62lnNtL2bU4WGIboQL7gG9ES9fSFwXRjVZEIy6ykQR7CJvYFEx2lsyP0ezmVrfpPFEEcUke46EH6BPQiQ0-mBkS6KhGb-EPXD95iMTb-ilsh5wfTVArmRTz4a_8X-Oxhyu46O5jz1eNekt4kcXCkVeO558CdnvLYw898lAWkxp_tCz6rUQsOyK-efNC7EiH7iDEJXTYDjtfRWeReA1T1xI-uRTR9wC-_u-OExqZpbBWah7kTqFv2xT7wNb76eKEHC9qXTYSgKrNouINPGJXzGFRfMZkrpFXzBtQcn5AyXmUQ==","summary":[{"type":"summary_text","text":"**Planning targeted log grep for timeouts**"},{"type":"summary_text","text":"**Distinguishing local versus broker stalls**"}]},{"id":"fc_05a4d8ea8a10ef0b016a59747c3f38819892c5f17e7283e28c","type":"function_call","status":"completed","arguments":"{\"i\":\"Counting late subscriber timeouts\",\"pattern\":\"CONN_WRITE_POISONED|timed_out=true|BRAIN_SUBSCRIBER_STALL_EVICT|DISPATCH:\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":\"25000-36450\",\"case\":true,\"gitignore\":false,\"skip\":null}","call_id":"call_yBL8cKaSqapXCm9PKhDDEioK","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59747c3f5c819898217487298d8d06","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding late brain restarts\",\"pattern\":\"=== spt brain stderr|BRAIN_UP|BRAIN_RESUMED|PUMP_IPC_READER: (spawned|exited)|BROKER_|DAEMON_EXIT\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":\"25000-36450\",\"case\":true,\"gitignore\":false,\"skip\":null}","call_id":"call_AP2WZq9TeAG9V4BoYnbflPXB","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59747c3f688198ad6fd7da6582674a","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding endpoint activity near timeouts\",\"pattern\":\"ENDPOINT_(INJECT|AUTOSTART|EXIT)|PTY|INJECT_SETTLE_TIMEOUT|PSYCHE_TURN_FAIL|COMMUNE|PULSE|CONN_WRITE\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":\"25000-36450\",\"case\":false,\"gitignore\":false,\"skip\":null}","call_id":"call_K1qElGxQnGcuapPDXS7CRBf9","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59747c3f6c8198b89c53f62c12a982","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading current daemon PID\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/daemon.pid\",\"selector\":\"raw\"}","call_id":"call_rrXKLUUZHhSMvlTYquC4DN5h","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59747c3f788198a904306f073c3825","type":"function_call","status":"completed","arguments":"{\"i\":\"Locating current status snapshots\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/identity/pump-*.json;C:/Users/decid/AppData/Local/spt-core/owlery/*/info.json;C:/Users/decid/AppData/Local/spt-core/owlery/*/.ready;C:/Users/decid/AppData/Local/spt-core/owlery/*/ready\",\"hidden\":true,\"gitignore\":false,\"limit\":100}","call_id":"call_UwuUvjOWr5BPEDB8vgrPgRtr","name":"glob"},{"id":"fc_05a4d8ea8a10ef0b016a59747c3f7c81989f35bca15715a2cf","type":"function_call","status":"completed","arguments":"{\"i\":\"Locating daemon status implementation\",\"pattern\":\"fn cmd_daemon|cmd_daemon_status|pump_heartbeat|pump health|stale|healthy\",\"path\":\"crates/spt/src/cli.rs\",\"selector\":null,\"case\":false,\"gitignore\":true,\"skip\":null}","call_id":"call_3H9d7HOCfL0PWW03v6jLrVjG","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a59747c3f88819898167ecf453c9220","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding periodic cadence constants\",\"pattern\":\"const (HEARTBEAT_PERIOD|TICK|PEER_REPLY_READ_BUDGET|ROUND_DRAIN_MARGIN)|Duration::from_(secs|millis)\",\"path\":\"crates/spt-daemon/src/pump/mod.rs;crates/spt-daemon/src/dispatch.rs;crates/spt-daemon/src/brainproc.rs;crates/spt-daemon/src/broker.rs\",\"selector\":null,\"case\":true,\"gitignore\":true,\"skip\":null}","call_id":"call_CTdRl4sloHHQyQbviToakUgn","name":"grep"}]},"duration":19163.62240000069,"ttft":1689.6547000035644,"contextSnapshot":{"promptTokens":113836,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_yBL8cKaSqapXCm9PKhDDEioK|fc_05a4d8ea8a10ef0b016a59747c3f38819892c5f17e7283e28c","toolName":"grep","startedAt":"2026-07-17T00:17:00.318Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Counting late subscriber timeouts"},"id":"3fe24f94","parentId":"67cc9446","timestamp":"2026-07-17T00:17:00.318Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_AP2WZq9TeAG9V4BoYnbflPXB|fc_05a4d8ea8a10ef0b016a59747c3f5c819898217487298d8d06","toolName":"grep","startedAt":"2026-07-17T00:17:00.318Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Finding late brain restarts"},"id":"c03aa480","parentId":"3fe24f94","timestamp":"2026-07-17T00:17:00.318Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_K1qElGxQnGcuapPDXS7CRBf9|fc_05a4d8ea8a10ef0b016a59747c3f688198ad6fd7da6582674a","toolName":"grep","startedAt":"2026-07-17T00:17:00.318Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Finding endpoint activity near timeouts"},"id":"ab669dee","parentId":"c03aa480","timestamp":"2026-07-17T00:17:00.318Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_rrXKLUUZHhSMvlTYquC4DN5h|fc_05a4d8ea8a10ef0b016a59747c3f6c8198b89c53f62c12a982","toolName":"read","startedAt":"2026-07-17T00:17:00.318Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/daemon.pid"},"intent":"Reading current daemon PID"},"id":"6d877da7","parentId":"ab669dee","timestamp":"2026-07-17T00:17:00.318Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_UwuUvjOWr5BPEDB8vgrPgRtr|fc_05a4d8ea8a10ef0b016a59747c3f788198a904306f073c3825","toolName":"glob","startedAt":"2026-07-17T00:17:00.319Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-*.json;C:/Users/decid/AppData/Local/spt-core/owlery/*/info.json;C:/Users/decid/AppData/Local/spt-core/owlery/*/.ready;C:/Users/decid/AppData/Local/s…"},"intent":"Locating current status snapshots"},"id":"3ee7280b","parentId":"6d877da7","timestamp":"2026-07-17T00:17:00.319Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_3H9d7HOCfL0PWW03v6jLrVjG|fc_05a4d8ea8a10ef0b016a59747c3f7c81989f35bca15715a2cf","toolName":"grep","startedAt":"2026-07-17T00:17:00.319Z","args":{"path":"crates/spt/src/cli.rs"},"intent":"Locating daemon status implementation"},"id":"82d14128","parentId":"3ee7280b","timestamp":"2026-07-17T00:17:00.319Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_CTdRl4sloHHQyQbviToakUgn|fc_05a4d8ea8a10ef0b016a59747c3f88819898167ecf453c9220","toolName":"grep","startedAt":"2026-07-17T00:17:00.319Z","args":{"path":"crates/spt-daemon/src/pump/mod.rs;crates/spt-daemon/src/dispatch.rs;crates/spt-daemon/src/brainproc.rs;crates/spt-daemon/src/broker.rs"},"intent":"Finding periodic cadence constants"},"id":"43ca11e6","parentId":"82d14128","timestamp":"2026-07-17T00:17:00.319Z"}
{"type":"message","id":"8d5e6cc9","parentId":"43ca11e6","timestamp":"2026-07-17T00:17:00.322Z","message":{"role":"toolResult","toolCallId":"call_rrXKLUUZHhSMvlTYquC4DN5h|fc_05a4d8ea8a10ef0b016a59747c3f6c8198b89c53f62c12a982","toolName":"read","content":[{"type":"text","text":"82868"}],"details":{"displayContent":{"text":"82868","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/daemon.pid"}}},"isError":false,"timestamp":1784247420322}}
{"type":"message","id":"35746694","parentId":"8d5e6cc9","timestamp":"2026-07-17T00:17:00.327Z","message":{"role":"toolResult","toolCallId":"call_3H9d7HOCfL0PWW03v6jLrVjG|fc_05a4d8ea8a10ef0b016a59747c3f7c81989f35bca15715a2cf","toolName":"grep","content":[{"type":"text","text":" 1095|    /// The cleanup verb for a machine that re-paired under a new identity\n*1096|    /// or is gone for good: its stale trust rows cost a dial every pump\n 1097|    /// tick. Takes a full pubkey hex, an unambiguous prefix, or a node\n 1098|    /// label. Gated behind OS elevation (trust mutation).\n 1099|    Prune {\n...\n 1474|            DaemonCmd::Stop { force } => cmd_daemon_stop(force),\n*1475|            DaemonCmd::Status => cmd_daemon_status(json),\n 1476|            // [impl->REQ-DAEMON-REFRESH]\n 1477|            DaemonCmd::Refresh => cmd_daemon_refresh(),\n 1478|            DaemonCmd::Brain {\n...\n 2177|/// most recent): MRU-listed members first in MRU order, then any remaining names\n*2178|/// in their original order. A stale MRU entry (no longer a member) is skipped;\n 2179|/// an empty `mru` leaves `names` untouched. The ordered head is the proposed\n 2180|/// default and the order the confirm / `--subnet` guidance present subnets in.\n 2181|// [impl->REQ-RUN-MULTISUBNET-HOME]\n...\n 2422|        let mru_bignet = vec![\"bignet\".to_string()];\n*2423|        let mru_stale = vec![\"gonenet\".to_string()];\n 2424|        // multi-subnet, NON-interactive → refuse with the MRU-ordered list.\n 2425|        assert_eq!(\n 2426|            decide_run_home(Err(HomeError::Ambiguous(names.clone())), false, &mru_bignet),\n...\n 2436|        );\n*2437|        // INTERACTIVE, MRU stale (not a current member) → first subnet default.\n 2438|        assert_eq!(\n*2439|            decide_run_home(Err(HomeError::Ambiguous(names.clone())), true, &mru_stale),\n 2440|            RunHomeDecision::Confirm { default: \"homenet\".into(), subnets: names.clone() }\n 2441|        );\n 2442|        // INTERACTIVE, no MRU at all → first subnet default, original order.\n...\n 2449|    // [unit->REQ-RUN-MULTISUBNET-HOME] order_by_mru: listed members lead in MRU\n*2450|    // order, unlisted members trail in original order, stale MRU entries skip.\n 2451|    #[test]\n 2452|    fn order_by_mru_orders_guidance() {\n 2453|        let names = vec![\"a\".to_string(), \"b\".to_string(), \"c\".to_string()];\n*2454|        // MRU [c, a] (+ a stale \"z\") → c, a lead; b trails.\n 2455|        let mru = vec![\"c\".to_string(), \"z\".to_string(), \"a\".to_string()];\n 2456|        assert_eq!(\n 2457|            order_by_mru(names.clone(), &mru),\n...\n 2556|    }\n*2557|    // Join-time collision in the target (ADR-0006 §1 via the stale-tolerant\n 2558|    // snapshot): ANY holder — any node, any status — owns the name.\n 2559|    let regs = crate::wansend::load_snapshots(&perch::identity_dir().join(\"registry\"));\n 2560|    if let Some(reg) = regs.get(subnet) {\n...\n 2631|/// blurb on its perch record; `list` is the registry **projection** read off\n*2632|/// the daemon's stale-tolerant snapshots (`identity/registry/<subnet>.json`),\n 2633|/// visibility-filtered exactly like resolution — a hidden endpoint never\n 2634|/// appears (ADR-0006 §6, exclusion by construction).\n 2635|// [impl->REQ-INST-14]\n...\n 2964|        // projection is the persisted WAN snapshot (a lagged gossip), which can\n*2965|        // paint a SELF-OWNED endpoint stale — e.g. a pid-alive status-absent\n 2966|        // gateway as Suspended — while the human `endpoint list` / picker path\n 2967|        // reconciles it to LOCAL perch truth (`reconcile_self_owned`,\n 2968|        // picker/data.rs). Apply the SAME self-owned reconcile HERE (the same\n...\n 3028|        // O(P×B+C) per-perch git fanout is retired — readers never run git;\n*3029|        // absent/stale renders None → the same '-' semantics).\n 3030|        // [impl->REQ-PROJECT-INDEX-READER-CUTOVER]\n 3031|        let index = spt_store::projindex::read_index();\n 3032|        let local = all_local\n...\n 3710|        spt_daemon::RestRoute::NoOp { nodes } => {\n*3711|            // Already at the goal — advisory (gossiped status may be stale). Name\n 3712|            // the satisfying node(s) in operator language. The snapshot re-load\n 3713|            // here is display-only, on a rare arm; the qualifier disambiguates\n 3714|            // against ALL candidate nodes (pre-lift parity), not just the\n...\n 3882|// [impl->REQ-CLI-2]\n*3883|fn cmd_daemon_run(detached: bool) -> i32 {\n 3884|    // Broker self-detach (REQ-HAZARD-WMI-DAEMON-WINDOW): when the auto-start ladder\n 3885|    // launched us with `--detached`, drop our console FIRST so the conhost the\n 3886|    // WMI/schtasks `start /b` rung allocated exits — before any output or bind. A\n...\n 3901|    // detached-in-fact (no console OR a piped stderr) EVEN IF `--detached` was not\n*3902|    // passed — the stale-bare-at-logon-task / bare-deelevated-respawn / any-unknown\n 3903|    // rung case. Runs AFTER detach_console (idempotent) and BEFORE any bind/output, so\n 3904|    // a filling inherited pipe can never block the daemon. A foreground human keeps\n 3905|    // their console (both checks false).\n...\n 3946|// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\n*3947|fn cmd_daemon_brain(generation: u64, start_reason: &str) -> i32 {\n 3948|    match spt_daemon::Daemon::run_brain(generation, start_reason) {\n 3949|        Ok(()) => 0,\n 3950|        Err(e) => {\n...\n 3960|// [impl->REQ-DAEMON-6]\n*3961|fn cmd_daemon_start() -> i32 {\n 3962|    match spt_daemon::start_daemon() {\n 3963|        Ok(spt_daemon::StartOutcome::AlreadyRunning) => {\n 3964|            eprintln!(\"DAEMON_ALREADY_RUNNING\");\n...\n 4029|// [impl->REQ-DAEMON-STOP-LIVE-SESSION-WARN]\n*4030|fn cmd_daemon_stop(force: bool) -> i32 {\n 4031|    // Guard: refuse + name the sessions if stopping would kill live hosted endpoints,\n 4032|    // unless --force. Runs BEFORE the stop so nothing is torn down on a refusal.\n 4033|    let live = live_hosted_session_ids();\n...\n 4064|// [impl->REQ-DAEMON-REFRESH]\n*4065|fn cmd_daemon_refresh() -> i32 {\n 4066|    if !spt_daemon::is_running() {\n 4067|        eprintln!(\"DAEMON_NOT_RUNNING: nothing to refresh — `spt daemon start` brings it up fresh\");\n 4068|        return 1;\n...\n 4095|/// A net-LESS broker (`net_up == false`) surfaces \"no connection (retrying)\" +\n*4096|/// a pump waiting on the network — NOT a STALLED alarm read off a stale\n 4097|/// pre-boot heartbeat (the kitsubito 2026-06-08 boot-race misreport, where the\n 4098|/// heartbeat age exceeded uptime). With net up, the heartbeat drives\n 4099|/// live/stalled as before (a genuine wedge still reads STALLED honestly).\n...\n 4104|    now: u64,\n*4105|    stale_after: u64,\n 4106|) -> String {\n 4107|    if !net_up {\n 4108|        return \"connection: no connection — net endpoint not bound (retrying in background)\\n\\\n...\n 4114|            let age = now.saturating_sub(at);\n*4115|            if age <= stale_after {\n 4116|                format!(\"peer pump: live (last tick {}s ago)\\n\", age / 1000)\n 4117|            } else {\n 4118|                format!(\n...\n 4130|/// REQ-CLI-2): daemon state (running/stopped + the peer-pump heartbeat —\n*4131|/// a stalled pump renders honestly, never implied-healthy), the member\n 4132|/// subnets, and this node's local endpoints. Read-only and ungated.\n 4133|// [impl->REQ-CLI-2]\n 4134|/// `spt daemon status` --json: the same facts the human view renders — daemon\n...\n 4145|    /// Peer-pump last-tick wall-clock ms (`None` = no heartbeat recorded).\n*4146|    pump_heartbeat_ms: Option<u64>,\n 4147|    /// The managing service label, if a registered service owns this daemon.\n 4148|    managed_by: Option<String>,\n 4149|    managed_active: Option<bool>,\n...\n 4160|    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n*4161|    broker_stale: Option<bool>,\n 4162|    /// LIFECYCLE-TRUTH W2 observability rider: brain-subscriber stall-evicts since\n 4163|    /// broker boot (a controller detached for a suspended/black-holed brain conn).\n 4164|    /// `None` when the daemon is down or the broker is too old to report; `Some(0)`\n*4165|    /// = healthy, none evicted.\n 4166|    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n 4167|    stall_evict_count: Option<u64>,\n 4168|    /// Wall-ms of the most recent stall-evict (0 = none). Omitted when count is None.\n...\n 4172|    /// generated time, source generation, pending refresh, last duration/error,\n*4173|    /// counts, cache hits/misses, stale reads, repairs, and the per-cycle\n 4174|    /// complexity counters (the CI-gate surface). `None` = no writer has ever\n 4175|    /// run on this home (index presence alone is not health — this block IS the\n 4176|    /// health surface). A plain file read: reported whether or not the daemon\n...\n 4187|    peer_health: Option<spt_daemon::pump::health::PumpHealth>,\n*4188|    /// The rendered verdict over `peer_health`: `idle` / `healthy` /\n 4189|    /// `connecting` / `degraded`. Omitted with it.\n 4190|    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n 4191|    peer_health_verdict: Option<String>,\n...\n 4230|/// suspended / black-holed). `None` = the broker couldn't be queried / is too old\n*4231|/// (silent — no line). `Some(0)` renders a healthy line so \"none\" is an explicit\n 4232|/// fact, not an absence; `Some(n>0)` names the count + the most-recent time so a\n 4233|/// brain that never returned is diagnosable. Public wording, no internal codes.\n 4234|/// Pure — unit-tested.\n...\n 4238|/// proved `net_up`/heartbeat/counts all dodge. Degraded NAMES the stage the\n*4239|/// dials die in; healthy requires a live peer connection (real progress), so\n 4240|/// the incident fingerprint (all dials failing, everything else green) renders\n 4241|/// DEGRADED here. `None` = no health snapshot (older daemon / no pump yet) or\n 4242|/// a solo node with nobody to reach — silent, not alarming. Pure for tests.\n...\n 4255|        HealthVerdict::Idle => None,\n*4256|        HealthVerdict::Healthy => Some(format!(\n*4257|            \"peer reachability: healthy ({}/{} peers connected; last successful dial {})\",\n 4258|            h.live_peers,\n 4259|            h.peers_total.max(h.targets.len()),\n 4260|            ago(h.last_dial_ok_ms),\n...\n 4283|\n*4284|/// The machine-view verdict token for the same snapshot (`idle` / `healthy` /\n 4285|/// `connecting` / `degraded`). Pure for tests.\n 4286|// [impl->REQ-PUMP-STAGE-TRUTH]\n 4287|fn peer_health_verdict_token(h: &spt_daemon::pump::health::PumpHealth) -> &'static str {\n...\n 4290|        HealthVerdict::Idle => \"idle\",\n*4291|        HealthVerdict::Healthy => \"healthy\",\n 4292|        HealthVerdict::Connecting => \"connecting\",\n 4293|        HealthVerdict::Degraded { .. } => \"degraded\",\n 4294|    }\n...\n 4299|    if count == 0 {\n*4300|        return Some(\"brain subscribers: healthy (none stall-evicted)\".to_string());\n 4301|    }\n 4302|    let when = if last_ms == 0 {\n 4303|        String::new()\n...\n 4335|        \"project index: {health} — {generated}, {} endpoint(s) / {} project(s), last cycle \\\n*4336|         {}ms ({} branch enum, {} tree scan(s), {} derivation(s)), {} stale read(s), {} repair(s)\",\n 4337|        s.endpoints,\n 4338|        s.projects,\n 4339|        s.last_duration_ms,\n...\n 4342|        s.last_cycle.derivations,\n*4343|        s.stale_reads,\n 4344|        s.repairs,\n 4345|    ))\n 4346|}\n 4347|\n*4348|fn cmd_daemon_status(json: bool) -> i32 {\n 4349|    // Daemon state: the socket ping is liveness truth (never the pid file).\n 4350|    let running = spt_daemon::is_running();\n 4351|    // [impl->REQ-CLI-JSON] Machine-readable view: assemble the same facts the\n...\n 4370|                    // query) vs Err=couldn't query — keep them distinct so a\n*4371|                    // transient IPC failure does not read as a definite stale.\n 4372|                    match b.broker_image_version() {\n 4373|                        Ok(v) => (Some(n), v, true, stall),\n 4374|                        Err(_) => (Some(n), None, false, stall),\n...\n 4385|        };\n*4386|        // [impl->REQ-UPDATE-RUNNING-IMAGE-SURFACE] stale is only DEFINITE after a\n 4387|        // successful query: None when the daemon is down OR the broker could not be\n 4388|        // queried (no false-positive true on a transient failure — doyle F-025 nit).\n*4389|        let broker_stale = (running && broker_queried)\n 4390|            .then(|| broker_image.as_deref() != Some(env!(\"CARGO_PKG_VERSION\")));\n*4391|        let pump_heartbeat_ms = if running {\n*4392|            spt_daemon::read_pump_heartbeat()\n 4393|        } else {\n 4394|            None\n 4395|        };\n...\n 4445|            net_up,\n*4446|            pump_heartbeat_ms,\n 4447|            managed_by,\n 4448|            managed_active,\n 4449|            subnets,\n...\n 4451|            broker_image,\n*4452|            broker_stale,\n 4453|            stall_evict_count,\n 4454|            stall_evict_last_ms,\n 4455|            project_index: spt_daemon::projwriter::read_stats_at(\n...\n 4472|        // self-heal after the autostart beat the network up) surfaces the REAL\n*4473|        // cause, not a STALLED alarm read off a stale pre-boot heartbeat.\n 4474|        // One broker handle answers both net-status and the F-025 image query.\n 4475|        let (net_up, broker_image, stall_stats) = match spt_daemon::brain::Brain::cold_start(\n 4476|            &spt_daemon::broker_socket_name(),\n...\n 4486|        };\n*4487|        let stale_after = 3 * spt_daemon::DaemonConfig::load()\n 4488|            .registry_pump_period\n 4489|            .as_millis() as u64;\n 4490|        print!(\n...\n 4493|                net_up,\n*4494|                spt_daemon::read_pump_heartbeat(),\n 4495|                now_ms(),\n*4496|                stale_after,\n 4497|            )\n 4498|        );\n 4499|        // [impl->REQ-UPDATE-RUNNING-IMAGE-SURFACE] surface the RUNNING broker\n...\n 4972|                 auto-rolled-back — refusing to re-apply it. Stage a newer version; the daemon \\\n*4973|                 is healthy on the previous one.\"\n 4974|            );\n 4975|            1\n 4976|        }\n...\n 6736|            // on a receiver-confirmed delivery/spool/dedup. Refused / no-perch /\n*6737|            // unconfirmed each read as their own non-zero failure, so a stale\n 6738|            // route or a dropped payload can no longer masquerade as delivered.\n 6739|            use crate::wansend::WanSendOutcome;\n 6740|            match crate::wansend::wan_send(&target, &from, body) {\n...\n 6754|                WanSendOutcome::NoPerchRemote { node } => {\n*6755|                    eprintln!(\"WAN_NO_PERCH:{target} — no perch on {node} (stale route? the endpoint may have moved or stopped)\");\n 6756|                    1\n 6757|                }\n 6758|                WanSendOutcome::Unconfirmed { node } => {\n...\n 7711|/// decayed must not vanish from its own subnet's view. Endpoint counts stay\n*7712|/// gossip-derived and stale-tolerant (they catch up as gossip lands).\n 7713|// [impl->REQ-SUBNET-1]\n 7714|fn subnet_status_rows(\n 7715|    store: &SubnetStore,\n...\n 7799|/// is older than 3 advertisement cadences — a half-dead daemon (the\n*7800|/// 2026-06-07 hfenduleam shape) must never render implied-healthy. `None` =\n 7801|/// no warning (heartbeat fresh, or never written — a pre-D4 daemon).\n 7802|// [impl->REQ-SUBNET-8]\n 7803|fn pump_stall_warning(now: u64) -> Option<String> {\n*7804|    let at = spt_daemon::read_pump_heartbeat()?;\n*7805|    let stale_after = 3 * spt_daemon::DaemonConfig::load()\n 7806|        .registry_pump_period\n 7807|        .as_millis() as u64;\n 7808|    let age = now.saturating_sub(at);\n*7809|    (age > stale_after).then(|| {\n 7810|        format!(\n 7811|            \"warning: peer pump STALLED ({}s since last tick) — subnet advertising/\\\n 7812|             connecting is not running; restart the daemon\\n\",\n...\n 7820|/// node rows are last-known gossip — not live state. Say so rather than render\n*7821|/// an implied-healthy \"online\" beside a stopped daemon (the `daemon stop` →\n 7822|/// `subnet status --nodes` still-\"online\" confusion). The zero-subnet view is\n 7823|/// already daemon-keyed by `standalone_text`; this covers the rows case. `None`\n 7824|/// when the daemon is up (the stall / inbound hints own that state).\n...\n 7941|/// Liveness: own node → online (we are running); rows all-Offline →\n*7942|/// offline; heard within `stale_after_ms` → online; otherwise (including\n 7943|/// a rowless member — absence is not evidence) → probe.\n 7944|// [impl->REQ-SUBNET-1]\n 7945|fn node_status_rows(\n...\n 7950|    now_ms: u64,\n*7951|    stale_after_ms: u64,\n 7952|) -> Vec<NodeRow> {\n 7953|    use spt_net::net::registry::Status;\n 7954|    // node → (label, active, routable_total, any_routable, raw_total)\n...\n 8008|                .get(&node)\n*8009|                .is_some_and(|&at| now_ms.saturating_sub(at) <= stale_after_ms)\n 8010|            {\n 8011|                NodeLiveness::Online\n 8012|            } else {\n...\n 8072|\n*8073|/// Probe a stale node: dial it over the broker's QUIC endpoint (the hybrid\n 8074|/// liveness's expensive half — spent only on rows gossip could not settle).\n 8075|/// Any failure (daemon down, no address, dial refused/timed out) reads\n 8076|/// offline — fail-quiet, this is a status view.\n...\n 8374|    .unwrap_or_default();\n*8375|    // Stale = silent for 3 advertisement cadences (the daemon re-gossips\n 8376|    // every pump period; missing a couple is jitter, missing three is news).\n*8377|    let stale_after_ms = 3 * spt_daemon::DaemonConfig::load()\n 8378|        .registry_pump_period\n 8379|        .as_millis() as u64;\n 8380|    // Pass 1: classify every matching subnet's rows (pure `node_status_rows`),\n...\n 8401|        }\n*8402|        let rows = node_status_rows(reg, &members, &heard, &own_hex, now_ms(), stale_after_ms);\n 8403|        for r in &rows {\n 8404|            if r.liveness == NodeLiveness::Probe {\n 8405|                worklist.push((r.node.clone(), sub.name.clone()));\n...\n 8599|/// The pump dials roster members every tick, so a re-paired/retired machine's\n*8600|/// stale identity costs a failed dial forever until pruned. The tombstone is\n 8601|/// LOCAL (Mesh-D6): it drops the `is_member` gate and a later merge cannot\n 8602|/// re-admit it here — but it does NOT propagate or rotate the seed (the\n 8603|/// fleet-wide, seed-rotating revoke is `spt subnet revoke`, Mesh-D7).\n...\n 10211|/// untouched. Additive: a file dropped by the new version is left in place\n*10212|/// (adapter file deletions are rare; a stale unreferenced file is harmless), so a\n 10213|/// running binary that vanished from the manifest is never yanked mid-update.\n 10214|// [impl->REQ-ADAPTER-LIVE-UPDATE]\n 10215|fn apply_release_crc_swap(\n...\n 11761|                Ok(id) => {\n*11762|                    // A freed slot must not carry a stale can_shutdown grant\n 11763|                    // forward (best-effort, non-minting). [impl->REQ-SHELL-2]\n 11764|                    spt_daemon::grants::revoke_can_shutdown_grant(&id);\n 11765|                    eprintln!(\"SHELL_TORNDOWN:{id} (slot + alias freed)\");\n...\n 11910|            // the broker's retentive backpressured stream). The owner-side stream\n*11911|            // resolves only under the live link token (a stale generation is never\n 11912|            // surfaced — R1). Owner-exclusivity is structural (the ref resolves\n 11913|            // only under this owner's perch).\n 11914|            // [impl->REQ-SHELL-4]\n...\n 13807|        use spt_net::net::registry::Status;\n*13808|        // bignet: stale (epoch 1) Suspended; sptdev: fresh (epoch 5) Active.\n 13809|        let tagged = vec![\n 13810|            (\"bignet\".to_string(), res_row(\"eel\", \"node00hex\", \"REMOTE\", Status::Suspended, 1)),\n 13811|            (\"sptdev\".to_string(), res_row(\"eel\", \"node00hex\", \"REMOTE\", Status::Active, 5)),\n...\n 13816|        assert_eq!(g.cells.len(), 1, \"subnet duplication collapsed to one row\");\n*13817|        // The fresher (epoch 5, Active→Online) status wins over the stale Suspended.\n 13818|        assert_eq!(g.cells[0].display, EpDisplay::Online, \"freshest epoch status wins\");\n 13819|        // Both subnets unioned, sorted.\n 13820|        assert_eq!(g.shared_subnets, vec![\"bignet\".to_string(), \"sptdev\".to_string()]);\n...\n 16208|            ),\n*16209|            \"a freed slot carries no stale grant\"\n 16210|        );\n 16211|    }\n 16212|\n...\n 17451|    #[test]\n*17452|    fn node_status_rows_settle_cheap_signals_probe_only_stale() {\n 17453|        use spt_net::net::registry::{Instance, Status, SubnetRegistry};\n 17454|        let inst = |node: &str, status: Status, label: Option<&str>| Instance {\n 17455|            node: node.into(),\n...\n 17475|        reg.merge_instance(\"c1\", inst(\"dead00cc\", Status::Offline, None));\n*17476|        reg.merge_instance(\"d1\", inst(\"stale0dd\", Status::Active, Some(\"QUIET\")));\n 17477|\n 17478|        let now = 1_000_000u64;\n 17479|        let heard = std::collections::BTreeMap::from([(\"heard0bb\".to_string(), now - 10_000)]);\n...\n 17507|        assert_eq!(\n*17508|            by[\"stale0dd\"].liveness,\n 17509|            NodeLiveness::Probe,\n 17510|            \"silent + routable ⇒ probe\"\n 17511|        );\n*17512|        assert_eq!(by[\"stale0dd\"].label.as_deref(), Some(\"QUIET\"));\n 17513|        assert_eq!(\n 17514|            (by[\"rowless0\"].active, by[\"rowless0\"].total),\n 17515|            (0, 0),\n...\n 17932|    #[test]\n*17933|    fn broker_image_line_flags_a_stale_running_daemon() {\n 17934|        let matched = render_broker_image_line(Some(\"0.20.0\"), \"0.20.0\");\n 17935|        assert!(matched.contains(\"0.20.0\"), \"got {matched}\");\n 17936|        assert!(matched.contains(\"matches installed\"), \"got {matched}\");\n...\n 17941|\n*17942|        let stale = render_broker_image_line(Some(\"0.19.1\"), \"0.20.0\");\n*17943|        assert!(stale.contains(\"0.19.1\"), \"names the running image: {stale}\");\n*17944|        assert!(stale.contains(\"0.20.0\"), \"names the installed version: {stale}\");\n 17945|        assert!(\n*17946|            stale.contains(\"spt daemon stop\") && stale.contains(\"spt daemon start\"),\n*17947|            \"gives the restart recovery: {stale}\"\n 17948|        );\n 17949|\n 17950|        let too_old = render_broker_image_line(None, \"0.20.0\");\n...\n 17957|        // Public wording only — no internal REQ tags / SCREAMING_CODE markers leak.\n*17958|        for line in [&matched, &stale, &too_old] {\n 17959|            assert!(!line.contains(\"REQ-\"), \"no internal req tag: {line}\");\n 17960|            assert!(\n 17961|                !line.contains(\"BROKER_IMAGE\") && !line.contains(\"_FAIL\"),\n...\n 17968|    // status line: an unqueryable/too-old broker (None) shows NOTHING (no false\n*17969|    // signal); a healthy tally (Some(0,_)) states \"none stall-evicted\" as an\n 17970|    // explicit fact; a non-zero tally names the count + the last time so a wedged\n 17971|    // brain that never returned is diagnosable. Public wording, no internal codes.\n 17972|    #[test]\n...\n 17975|\n*17976|        let healthy = render_stall_evict_line(Some((0, 0))).expect(\"Some(0) renders a healthy line\");\n*17977|        assert!(healthy.contains(\"healthy\"), \"got {healthy}\");\n*17978|        assert!(healthy.contains(\"none\"), \"got {healthy}\");\n 17979|\n 17980|        let evicted =\n 17981|            render_stall_evict_line(Some((3, 1_700_000_000_000))).expect(\"a non-zero tally renders\");\n...\n 17989|        // Public wording only — no internal codes leak.\n*17990|        for line in [&healthy, &evicted] {\n 17991|            assert!(!line.contains(\"REQ-\"), \"no internal req tag: {line}\");\n 17992|            assert!(\n 17993|                !line.contains(\"STALL_EVICT\") && !line.contains(\"_DECOUPLE\"),\n...\n 18001|    // (every target failing) renders DEGRADED naming the stage, the window\n*18002|    // duration, and the last-good stamps; a live peer renders healthy. Public\n 18003|    // wording, no internal codes; verdict tokens mirror the same states.\n 18004|    #[test]\n 18005|    fn peer_health_line_names_the_stage_and_stays_silent_when_idle() {\n...\n 18027|\n*18028|        // Real progress flips it healthy — and only that.\n 18029|        h.note_connected(\"a\", 1, 1_700_000_090_000);\n*18030|        let line = render_peer_health_line(Some(&h), now).expect(\"healthy renders\");\n*18031|        assert!(line.contains(\"healthy\"), \"got {line}\");\n*18032|        assert_eq!(peer_health_verdict_token(&h), \"healthy\");\n 18033|\n 18034|        // Public wording only.\n 18035|        assert!(!line.contains(\"REQ-\"), \"no internal req tag: {line}\");\n...\n 18040|    // home with no writer stats shows NOTHING (a pre-W2 home is silent, not\n*18041|    // alarming); a healthy publish reads fresh + counts + the per-cycle\n 18042|    // complexity counters; a failed cycle SAYS it is serving last-known-good.\n 18043|    // Public wording, no internal codes.\n 18044|    #[test]\n...\n 18094|    // surfaces \"no connection (retrying)\" + a waiting pump and NEVER reads the\n*18095|    // heartbeat (so a stale pre-boot heartbeat can't render a bogus STALLED age\n 18096|    // — the kitsubito boot-race misreport). Net up ⇒ heartbeat drives the line.\n 18097|    #[test]\n*18098|    fn connection_lines_net_less_hides_stale_heartbeat() {\n*18099|        // Net-less: a wildly-stale (pre-boot) heartbeat must NOT surface as an age.\n 18100|        let netless = render_connection_lines(false, Some(0), 1_000_000, 30_000);\n 18101|        assert!(netless.contains(\"no connection\"), \"surfaces the real cause\");\n 18102|        assert!(netless.contains(\"waiting on network\"));\n*18103|        assert!(!netless.contains(\"STALLED\"), \"no false stall off a stale heartbeat\");\n 18104|        // Net up, fresh heartbeat ⇒ live.\n 18105|        let live = render_connection_lines(true, Some(95_000), 100_000, 30_000);\n 18106|        assert!(live.contains(\"peer pump: live\"));\n*18107|        // Net up, genuinely stale heartbeat ⇒ honest STALLED (a real wedge).\n 18108|        let stalled = render_connection_lines(true, Some(0), 100_000, 30_000);\n 18109|        assert!(stalled.contains(\"STALLED\"));\n 18110|        // Net up, no heartbeat yet ⇒ said as unknown."}],"details":{"scopePath":"crates/spt/src/cli.rs","searchPath":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt\\src\\cli.rs","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":99,"fileCount":1,"files":["crates/spt/src/cli.rs"],"fileMatches":[{"path":"crates/spt/src/cli.rs","count":99}],"truncated":false,"displayContent":"  1095│    /// The cleanup verb for a machine that re-paired under a new identity\n *1096│    /// or is gone for good: its stale trust rows cost a dial every pump\n  1097│    /// tick. Takes a full pubkey hex, an unambiguous prefix, or a node\n  1098│    /// label. Gated behind OS elevation (trust mutation).\n  1099│    Prune {\n      │...\n  1474│            DaemonCmd::Stop { force } => cmd_daemon_stop(force),\n *1475│            DaemonCmd::Status => cmd_daemon_status(json),\n  1476│            // [impl->REQ-DAEMON-REFRESH]\n  1477│            DaemonCmd::Refresh => cmd_daemon_refresh(),\n  1478│            DaemonCmd::Brain {\n      │...\n  2177│/// most recent): MRU-listed members first in MRU order, then any remaining names\n *2178│/// in their original order. A stale MRU entry (no longer a member) is skipped;\n  2179│/// an empty `mru` leaves `names` untouched. The ordered head is the proposed\n  2180│/// default and the order the confirm / `--subnet` guidance present subnets in.\n  2181│// [impl->REQ-RUN-MULTISUBNET-HOME]\n      │...\n  2422│        let mru_bignet = vec![\"bignet\".to_string()];\n *2423│        let mru_stale = vec![\"gonenet\".to_string()];\n  2424│        // multi-subnet, NON-interactive → refuse with the MRU-ordered list.\n  2425│        assert_eq!(\n  2426│            decide_run_home(Err(HomeError::Ambiguous(names.clone())), false, &mru_bignet),\n      │...\n  2436│        );\n *2437│        // INTERACTIVE, MRU stale (not a current member) → first subnet default.\n  2438│        assert_eq!(\n *2439│            decide_run_home(Err(HomeError::Ambiguous(names.clone())), true, &mru_stale),\n  2440│            RunHomeDecision::Confirm { default: \"homenet\".into(), subnets: names.clone() }\n  2441│        );\n  2442│        // INTERACTIVE, no MRU at all → first subnet default, original order.\n      │...\n  2449│    // [unit->REQ-RUN-MULTISUBNET-HOME] order_by_mru: listed members lead in MRU\n *2450│    // order, unlisted members trail in original order, stale MRU entries skip.\n  2451│    #[test]\n  2452│    fn order_by_mru_orders_guidance() {\n  2453│        let names = vec![\"a\".to_string(), \"b\".to_string(), \"c\".to_string()];\n *2454│        // MRU [c, a] (+ a stale \"z\") → c, a lead; b trails.\n  2455│        let mru = vec![\"c\".to_string(), \"z\".to_string(), \"a\".to_string()];\n  2456│        assert_eq!(\n  2457│            order_by_mru(names.clone(), &mru),\n      │...\n  2556│    }\n *2557│    // Join-time collision in the target (ADR-0006 §1 via the stale-tolerant\n  2558│    // snapshot): ANY holder — any node, any status — owns the name.\n  2559│    let regs = crate::wansend::load_snapshots(&perch::identity_dir().join(\"registry\"));\n  2560│    if let Some(reg) = regs.get(subnet) {\n      │...\n  2631│/// blurb on its perch record; `list` is the registry **projection** read off\n *2632│/// the daemon's stale-tolerant snapshots (`identity/registry/<subnet>.json`),\n  2633│/// visibility-filtered exactly like resolution — a hidden endpoint never\n  2634│/// appears (ADR-0006 §6, exclusion by construction).\n  2635│// [impl->REQ-INST-14]\n      │...\n  2964│        // projection is the persisted WAN snapshot (a lagged gossip), which can\n *2965│        // paint a SELF-OWNED endpoint stale — e.g. a pid-alive status-absent\n  2966│        // gateway as Suspended — while the human `endpoint list` / picker path\n  2967│        // reconciles it to LOCAL perch truth (`reconcile_self_owned`,\n  2968│        // picker/data.rs). Apply the SAME self-owned reconcile HERE (the same\n      │...\n  3028│        // O(P×B+C) per-perch git fanout is retired — readers never run git;\n *3029│        // absent/stale renders None → the same '-' semantics).\n  3030│        // [impl->REQ-PROJECT-INDEX-READER-CUTOVER]\n  3031│        let index = spt_store::projindex::read_index();\n  3032│        let local = all_local\n      │...\n  3710│        spt_daemon::RestRoute::NoOp { nodes } => {\n *3711│            // Already at the goal — advisory (gossiped status may be stale). Name\n  3712│            // the satisfying node(s) in operator language. The snapshot re-load\n  3713│            // here is display-only, on a rare arm; the qualifier disambiguates\n  3714│            // against ALL candidate nodes (pre-lift parity), not just the\n      │...\n  3882│// [impl->REQ-CLI-2]\n *3883│fn cmd_daemon_run(detached: bool) -> i32 {\n  3884│    // Broker self-detach (REQ-HAZARD-WMI-DAEMON-WINDOW): when the auto-start ladder\n  3885│    // launched us with `--detached`, drop our console FIRST so the conhost the\n  3886│    // WMI/schtasks `start /b` rung allocated exits — before any output or bind. A\n      │...\n  3901│    // detached-in-fact (no console OR a piped stderr) EVEN IF `--detached` was not\n *3902│    // passed — the stale-bare-at-logon-task / bare-deelevated-respawn / any-unknown\n  3903│    // rung case. Runs AFTER detach_console (idempotent) and BEFORE any bind/output, so\n  3904│    // a filling inherited pipe can never block the daemon. A foreground human keeps\n  3905│    // their console (both checks false).\n      │...\n  3946│// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\n *3947│fn cmd_daemon_brain(generation: u64, start_reason: &str) -> i32 {\n  3948│    match spt_daemon::Daemon::run_brain(generation, start_reason) {\n  3949│        Ok(()) => 0,\n  3950│        Err(e) => {\n      │...\n  3960│// [impl->REQ-DAEMON-6]\n *3961│fn cmd_daemon_start() -> i32 {\n  3962│    match spt_daemon::start_daemon() {\n  3963│        Ok(spt_daemon::StartOutcome::AlreadyRunning) => {\n  3964│            eprintln!(\"DAEMON_ALREADY_RUNNING\");\n      │...\n  4029│// [impl->REQ-DAEMON-STOP-LIVE-SESSION-WARN]\n *4030│fn cmd_daemon_stop(force: bool) -> i32 {\n  4031│    // Guard: refuse + name the sessions if stopping would kill live hosted endpoints,\n  4032│    // unless --force. Runs BEFORE the stop so nothing is torn down on a refusal.\n  4033│    let live = live_hosted_session_ids();\n      │...\n  4064│// [impl->REQ-DAEMON-REFRESH]\n *4065│fn cmd_daemon_refresh() -> i32 {\n  4066│    if !spt_daemon::is_running() {\n  4067│        eprintln!(\"DAEMON_NOT_RUNNING: nothing to refresh — `spt daemon start` brings it up fresh\");\n  4068│        return 1;\n      │...\n  4095│/// A net-LESS broker (`net_up == false`) surfaces \"no connection (retrying)\" +\n *4096│/// a pump waiting on the network — NOT a STALLED alarm read off a stale\n  4097│/// pre-boot heartbeat (the kitsubito 2026-06-08 boot-race misreport, where the\n  4098│/// heartbeat age exceeded uptime). With net up, the heartbeat drives\n  4099│/// live/stalled as before (a genuine wedge still reads STALLED honestly).\n      │...\n  4104│    now: u64,\n *4105│    stale_after: u64,\n  4106│) -> String {\n  4107│    if !net_up {\n  4108│        return \"connection: no connection — net endpoint not bound (retrying in background)\\n\\\n      │...\n  4114│            let age = now.saturating_sub(at);\n *4115│            if age <= stale_after {\n  4116│                format!(\"peer pump: live (last tick {}s ago)\\n\", age / 1000)\n  4117│            } else {\n  4118│                format!(\n      │...\n  4130│/// REQ-CLI-2): daemon state (running/stopped + the peer-pump heartbeat —\n *4131│/// a stalled pump renders honestly, never implied-healthy), the member\n  4132│/// subnets, and this node's local endpoints. Read-only and ungated.\n  4133│// [impl->REQ-CLI-2]\n  4134│/// `spt daemon status` --json: the same facts the human view renders — daemon\n      │...\n  4145│    /// Peer-pump last-tick wall-clock ms (`None` = no heartbeat recorded).\n *4146│    pump_heartbeat_ms: Option<u64>,\n  4147│    /// The managing service label, if a registered service owns this daemon.\n  4148│    managed_by: Option<String>,\n  4149│    managed_active: Option<bool>,\n      │...\n  4160│    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n *4161│    broker_stale: Option<bool>,\n  4162│    /// LIFECYCLE-TRUTH W2 observability rider: brain-subscriber stall-evicts since\n  4163│    /// broker boot (a controller detached for a suspended/black-holed brain conn).\n  4164│    /// `None` when the daemon is down or the broker is too old to report; `Some(0)`\n *4165│    /// = healthy, none evicted.\n  4166│    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n  4167│    stall_evict_count: Option<u64>,\n  4168│    /// Wall-ms of the most recent stall-evict (0 = none). Omitted when count is None.\n      │...\n  4172│    /// generated time, source generation, pending refresh, last duration/error,\n *4173│    /// counts, cache hits/misses, stale reads, repairs, and the per-cycle\n  4174│    /// complexity counters (the CI-gate surface). `None` = no writer has ever\n  4175│    /// run on this home (index presence alone is not health — this block IS the\n  4176│    /// health surface). A plain file read: reported whether or not the daemon\n      │...\n  4187│    peer_health: Option<spt_daemon::pump::health::PumpHealth>,\n *4188│    /// The rendered verdict over `peer_health`: `idle` / `healthy` /\n  4189│    /// `connecting` / `degraded`. Omitted with it.\n  4190│    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n  4191│    peer_health_verdict: Option<String>,\n      │...\n  4230│/// suspended / black-holed). `None` = the broker couldn't be queried / is too old\n *4231│/// (silent — no line). `Some(0)` renders a healthy line so \"none\" is an explicit\n  4232│/// fact, not an absence; `Some(n>0)` names the count + the most-recent time so a\n  4233│/// brain that never returned is diagnosable. Public wording, no internal codes.\n  4234│/// Pure — unit-tested.\n      │...\n  4238│/// proved `net_up`/heartbeat/counts all dodge. Degraded NAMES the stage the\n *4239│/// dials die in; healthy requires a live peer connection (real progress), so\n  4240│/// the incident fingerprint (all dials failing, everything else green) renders\n  4241│/// DEGRADED here. `None` = no health snapshot (older daemon / no pump yet) or\n  4242│/// a solo node with nobody to reach — silent, not alarming. Pure for tests.\n      │...\n  4255│        HealthVerdict::Idle => None,\n *4256│        HealthVerdict::Healthy => Some(format!(\n *4257│            \"peer reachability: healthy ({}/{} peers connected; last successful dial {})\",\n  4258│            h.live_peers,\n  4259│            h.peers_total.max(h.targets.len()),\n  4260│            ago(h.last_dial_ok_ms),\n      │...\n  4283│\n *4284│/// The machine-view verdict token for the same snapshot (`idle` / `healthy` /\n  4285│/// `connecting` / `degraded`). Pure for tests.\n  4286│// [impl->REQ-PUMP-STAGE-TRUTH]\n  4287│fn peer_health_verdict_token(h: &spt_daemon::pump::health::PumpHealth) -> &'static str {\n      │...\n  4290│        HealthVerdict::Idle => \"idle\",\n *4291│        HealthVerdict::Healthy => \"healthy\",\n  4292│        HealthVerdict::Connecting => \"connecting\",\n  4293│        HealthVerdict::Degraded { .. } => \"degraded\",\n  4294│    }\n      │...\n  4299│    if count == 0 {\n *4300│        return Some(\"brain subscribers: healthy (none stall-evicted)\".to_string());\n  4301│    }\n  4302│    let when = if last_ms == 0 {\n  4303│        String::new()\n      │...\n  4335│        \"project index: {health} — {generated}, {} endpoint(s) / {} project(s), last cycle \\\n *4336│         {}ms ({} branch enum, {} tree scan(s), {} derivation(s)), {} stale read(s), {} repair(s)\",\n  4337│        s.endpoints,\n  4338│        s.projects,\n  4339│        s.last_duration_ms,\n      │...\n  4342│        s.last_cycle.derivations,\n *4343│        s.stale_reads,\n  4344│        s.repairs,\n  4345│    ))\n  4346│}\n  4347│\n *4348│fn cmd_daemon_status(json: bool) -> i32 {\n  4349│    // Daemon state: the socket ping is liveness truth (never the pid file).\n  4350│    let running = spt_daemon::is_running();\n  4351│    // [impl->REQ-CLI-JSON] Machine-readable view: assemble the same facts the\n      │...\n  4370│                    // query) vs Err=couldn't query — keep them distinct so a\n *4371│                    // transient IPC failure does not read as a definite stale.\n  4372│                    match b.broker_image_version() {\n  4373│                        Ok(v) => (Some(n), v, true, stall),\n  4374│                        Err(_) => (Some(n), None, false, stall),\n      │...\n  4385│        };\n *4386│        // [impl->REQ-UPDATE-RUNNING-IMAGE-SURFACE] stale is only DEFINITE after a\n  4387│        // successful query: None when the daemon is down OR the broker could not be\n  4388│        // queried (no false-positive true on a transient failure — doyle F-025 nit).\n *4389│        let broker_stale = (running && broker_queried)\n  4390│            .then(|| broker_image.as_deref() != Some(env!(\"CARGO_PKG_VERSION\")));\n *4391│        let pump_heartbeat_ms = if running {\n *4392│            spt_daemon::read_pump_heartbeat()\n  4393│        } else {\n  4394│            None\n  4395│        };\n      │...\n  4445│            net_up,\n *4446│            pump_heartbeat_ms,\n  4447│            managed_by,\n  4448│            managed_active,\n  4449│            subnets,\n      │...\n  4451│            broker_image,\n *4452│            broker_stale,\n  4453│            stall_evict_count,\n  4454│            stall_evict_last_ms,\n  4455│            project_index: spt_daemon::projwriter::read_stats_at(\n      │...\n  4472│        // self-heal after the autostart beat the network up) surfaces the REAL\n *4473│        // cause, not a STALLED alarm read off a stale pre-boot heartbeat.\n  4474│        // One broker handle answers both net-status and the F-025 image query.\n  4475│        let (net_up, broker_image, stall_stats) = match spt_daemon::brain::Brain::cold_start(\n  4476│            &spt_daemon::broker_socket_name(),\n      │...\n  4486│        };\n *4487│        let stale_after = 3 * spt_daemon::DaemonConfig::load()\n  4488│            .registry_pump_period\n  4489│            .as_millis() as u64;\n  4490│        print!(\n      │...\n  4493│                net_up,\n *4494│                spt_daemon::read_pump_heartbeat(),\n  4495│                now_ms(),\n *4496│                stale_after,\n  4497│            )\n  4498│        );\n  4499│        // [impl->REQ-UPDATE-RUNNING-IMAGE-SURFACE] surface the RUNNING broker\n      │...\n  4972│                 auto-rolled-back — refusing to re-apply it. Stage a newer version; the daemon \\\n *4973│                 is healthy on the previous one.\"\n  4974│            );\n  4975│            1\n  4976│        }\n      │...\n  6736│            // on a receiver-confirmed delivery/spool/dedup. Refused / no-perch /\n *6737│            // unconfirmed each read as their own non-zero failure, so a stale\n  6738│            // route or a dropped payload can no longer masquerade as delivered.\n  6739│            use crate::wansend::WanSendOutcome;\n  6740│            match crate::wansend::wan_send(&target, &from, body) {\n      │...\n  6754│                WanSendOutcome::NoPerchRemote { node } => {\n *6755│                    eprintln!(\"WAN_NO_PERCH:{target} — no perch on {node} (stale route? the endpoint may have moved or stopped)\");\n  6756│                    1\n  6757│                }\n  6758│                WanSendOutcome::Unconfirmed { node } => {\n      │...\n  7711│/// decayed must not vanish from its own subnet's view. Endpoint counts stay\n *7712│/// gossip-derived and stale-tolerant (they catch up as gossip lands).\n  7713│// [impl->REQ-SUBNET-1]\n  7714│fn subnet_status_rows(\n  7715│    store: &SubnetStore,\n      │...\n  7799│/// is older than 3 advertisement cadences — a half-dead daemon (the\n *7800│/// 2026-06-07 hfenduleam shape) must never render implied-healthy. `None` =\n  7801│/// no warning (heartbeat fresh, or never written — a pre-D4 daemon).\n  7802│// [impl->REQ-SUBNET-8]\n  7803│fn pump_stall_warning(now: u64) -> Option<String> {\n *7804│    let at = spt_daemon::read_pump_heartbeat()?;\n *7805│    let stale_after = 3 * spt_daemon::DaemonConfig::load()\n  7806│        .registry_pump_period\n  7807│        .as_millis() as u64;\n  7808│    let age = now.saturating_sub(at);\n *7809│    (age > stale_after).then(|| {\n  7810│        format!(\n  7811│            \"warning: peer pump STALLED ({}s since last tick) — subnet advertising/\\\n  7812│             connecting is not running; restart the daemon\\n\",\n      │...\n  7820│/// node rows are last-known gossip — not live state. Say so rather than render\n *7821│/// an implied-healthy \"online\" beside a stopped daemon (the `daemon stop` →\n  7822│/// `subnet status --nodes` still-\"online\" confusion). The zero-subnet view is\n  7823│/// already daemon-keyed by `standalone_text`; this covers the rows case. `None`\n  7824│/// when the daemon is up (the stall / inbound hints own that state).\n      │...\n  7941│/// Liveness: own node → online (we are running); rows all-Offline →\n *7942│/// offline; heard within `stale_after_ms` → online; otherwise (including\n  7943│/// a rowless member — absence is not evidence) → probe.\n  7944│// [impl->REQ-SUBNET-1]\n  7945│fn node_status_rows(\n      │...\n  7950│    now_ms: u64,\n *7951│    stale_after_ms: u64,\n  7952│) -> Vec<NodeRow> {\n  7953│    use spt_net::net::registry::Status;\n  7954│    // node → (label, active, routable_total, any_routable, raw_total)\n      │...\n  8008│                .get(&node)\n *8009│                .is_some_and(|&at| now_ms.saturating_sub(at) <= stale_after_ms)\n  8010│            {\n  8011│                NodeLiveness::Online\n  8012│            } else {\n      │...\n  8072│\n *8073│/// Probe a stale node: dial it over the broker's QUIC endpoint (the hybrid\n  8074│/// liveness's expensive half — spent only on rows gossip could not settle).\n  8075│/// Any failure (daemon down, no address, dial refused/timed out) reads\n  8076│/// offline — fail-quiet, this is a status view.\n      │...\n  8374│    .unwrap_or_default();\n *8375│    // Stale = silent for 3 advertisement cadences (the daemon re-gossips\n  8376│    // every pump period; missing a couple is jitter, missing three is news).\n *8377│    let stale_after_ms = 3 * spt_daemon::DaemonConfig::load()\n  8378│        .registry_pump_period\n  8379│        .as_millis() as u64;\n  8380│    // Pass 1: classify every matching subnet's rows (pure `node_status_rows`),\n      │...\n  8401│        }\n *8402│        let rows = node_status_rows(reg, &members, &heard, &own_hex, now_ms(), stale_after_ms);\n  8403│        for r in &rows {\n  8404│            if r.liveness == NodeLiveness::Probe {\n  8405│                worklist.push((r.node.clone(), sub.name.clone()));\n      │...\n  8599│/// The pump dials roster members every tick, so a re-paired/retired machine's\n *8600│/// stale identity costs a failed dial forever until pruned. The tombstone is\n  8601│/// LOCAL (Mesh-D6): it drops the `is_member` gate and a later merge cannot\n  8602│/// re-admit it here — but it does NOT propagate or rotate the seed (the\n  8603│/// fleet-wide, seed-rotating revoke is `spt subnet revoke`, Mesh-D7).\n      │...\n 10211│/// untouched. Additive: a file dropped by the new version is left in place\n*10212│/// (adapter file deletions are rare; a stale unreferenced file is harmless), so a\n 10213│/// running binary that vanished from the manifest is never yanked mid-update.\n 10214│// [impl->REQ-ADAPTER-LIVE-UPDATE]\n 10215│fn apply_release_crc_swap(\n      │...\n 11761│                Ok(id) => {\n*11762│                    // A freed slot must not carry a stale can_shutdown grant\n 11763│                    // forward (best-effort, non-minting). [impl->REQ-SHELL-2]\n 11764│                    spt_daemon::grants::revoke_can_shutdown_grant(&id);\n 11765│                    eprintln!(\"SHELL_TORNDOWN:{id} (slot + alias freed)\");\n      │...\n 11910│            // the broker's retentive backpressured stream). The owner-side stream\n*11911│            // resolves only under the live link token (a stale generation is never\n 11912│            // surfaced — R1). Owner-exclusivity is structural (the ref resolves\n 11913│            // only under this owner's perch).\n 11914│            // [impl->REQ-SHELL-4]\n      │...\n 13807│        use spt_net::net::registry::Status;\n*13808│        // bignet: stale (epoch 1) Suspended; sptdev: fresh (epoch 5) Active.\n 13809│        let tagged = vec![\n 13810│            (\"bignet\".to_string(), res_row(\"eel\", \"node00hex\", \"REMOTE\", Status::Suspended, 1)),\n 13811│            (\"sptdev\".to_string(), res_row(\"eel\", \"node00hex\", \"REMOTE\", Status::Active, 5)),\n      │...\n 13816│        assert_eq!(g.cells.len(), 1, \"subnet duplication collapsed to one row\");\n*13817│        // The fresher (epoch 5, Active→Online) status wins over the stale Suspended.\n 13818│        assert_eq!(g.cells[0].display, EpDisplay::Online, \"freshest epoch status wins\");\n 13819│        // Both subnets unioned, sorted.\n 13820│        assert_eq!(g.shared_subnets, vec![\"bignet\".to_string(), \"sptdev\".to_string()]);\n      │...\n 16208│            ),\n*16209│            \"a freed slot carries no stale grant\"\n 16210│        );\n 16211│    }\n 16212│\n      │...\n 17451│    #[test]\n*17452│    fn node_status_rows_settle_cheap_signals_probe_only_stale() {\n 17453│        use spt_net::net::registry::{Instance, Status, SubnetRegistry};\n 17454│        let inst = |node: &str, status: Status, label: Option<&str>| Instance {\n 17455│            node: node.into(),\n      │...\n 17475│        reg.merge_instance(\"c1\", inst(\"dead00cc\", Status::Offline, None));\n*17476│        reg.merge_instance(\"d1\", inst(\"stale0dd\", Status::Active, Some(\"QUIET\")));\n 17477│\n 17478│        let now = 1_000_000u64;\n 17479│        let heard = std::collections::BTreeMap::from([(\"heard0bb\".to_string(), now - 10_000)]);\n      │...\n 17507│        assert_eq!(\n*17508│            by[\"stale0dd\"].liveness,\n 17509│            NodeLiveness::Probe,\n 17510│            \"silent + routable ⇒ probe\"\n 17511│        );\n*17512│        assert_eq!(by[\"stale0dd\"].label.as_deref(), Some(\"QUIET\"));\n 17513│        assert_eq!(\n 17514│            (by[\"rowless0\"].active, by[\"rowless0\"].total),\n 17515│            (0, 0),\n      │...\n 17932│    #[test]\n*17933│    fn broker_image_line_flags_a_stale_running_daemon() {\n 17934│        let matched = render_broker_image_line(Some(\"0.20.0\"), \"0.20.0\");\n 17935│        assert!(matched.contains(\"0.20.0\"), \"got {matched}\");\n 17936│        assert!(matched.contains(\"matches installed\"), \"got {matched}\");\n      │...\n 17941│\n*17942│        let stale = render_broker_image_line(Some(\"0.19.1\"), \"0.20.0\");\n*17943│        assert!(stale.contains(\"0.19.1\"), \"names the running image: {stale}\");\n*17944│        assert!(stale.contains(\"0.20.0\"), \"names the installed version: {stale}\");\n 17945│        assert!(\n*17946│            stale.contains(\"spt daemon stop\") && stale.contains(\"spt daemon start\"),\n*17947│            \"gives the restart recovery: {stale}\"\n 17948│        );\n 17949│\n 17950│        let too_old = render_broker_image_line(None, \"0.20.0\");\n      │...\n 17957│        // Public wording only — no internal REQ tags / SCREAMING_CODE markers leak.\n*17958│        for line in [&matched, &stale, &too_old] {\n 17959│            assert!(!line.contains(\"REQ-\"), \"no internal req tag: {line}\");\n 17960│            assert!(\n 17961│                !line.contains(\"BROKER_IMAGE\") && !line.contains(\"_FAIL\"),\n      │...\n 17968│    // status line: an unqueryable/too-old broker (None) shows NOTHING (no false\n*17969│    // signal); a healthy tally (Some(0,_)) states \"none stall-evicted\" as an\n 17970│    // explicit fact; a non-zero tally names the count + the last time so a wedged\n 17971│    // brain that never returned is diagnosable. Public wording, no internal codes.\n 17972│    #[test]\n      │...\n 17975│\n*17976│        let healthy = render_stall_evict_line(Some((0, 0))).expect(\"Some(0) renders a healthy line\");\n*17977│        assert!(healthy.contains(\"healthy\"), \"got {healthy}\");\n*17978│        assert!(healthy.contains(\"none\"), \"got {healthy}\");\n 17979│\n 17980│        let evicted =\n 17981│            render_stall_evict_line(Some((3, 1_700_000_000_000))).expect(\"a non-zero tally renders\");\n      │...\n 17989│        // Public wording only — no internal codes leak.\n*17990│        for line in [&healthy, &evicted] {\n 17991│            assert!(!line.contains(\"REQ-\"), \"no internal req tag: {line}\");\n 17992│            assert!(\n 17993│                !line.contains(\"STALL_EVICT\") && !line.contains(\"_DECOUPLE\"),\n      │...\n 18001│    // (every target failing) renders DEGRADED naming the stage, the window\n*18002│    // duration, and the last-good stamps; a live peer renders healthy. Public\n 18003│    // wording, no internal codes; verdict tokens mirror the same states.\n 18004│    #[test]\n 18005│    fn peer_health_line_names_the_stage_and_stays_silent_when_idle() {\n      │...\n 18027│\n*18028│        // Real progress flips it healthy — and only that.\n 18029│        h.note_connected(\"a\", 1, 1_700_000_090_000);\n*18030│        let line = render_peer_health_line(Some(&h), now).expect(\"healthy renders\");\n*18031│        assert!(line.contains(\"healthy\"), \"got {line}\");\n*18032│        assert_eq!(peer_health_verdict_token(&h), \"healthy\");\n 18033│\n 18034│        // Public wording only.\n 18035│        assert!(!line.contains(\"REQ-\"), \"no internal req tag: {line}\");\n      │...\n 18040│    // home with no writer stats shows NOTHING (a pre-W2 home is silent, not\n*18041│    // alarming); a healthy publish reads fresh + counts + the per-cycle\n 18042│    // complexity counters; a failed cycle SAYS it is serving last-known-good.\n 18043│    // Public wording, no internal codes.\n 18044│    #[test]\n      │...\n 18094│    // surfaces \"no connection (retrying)\" + a waiting pump and NEVER reads the\n*18095│    // heartbeat (so a stale pre-boot heartbeat can't render a bogus STALLED age\n 18096│    // — the kitsubito boot-race misreport). Net up ⇒ heartbeat drives the line.\n 18097│    #[test]\n*18098│    fn connection_lines_net_less_hides_stale_heartbeat() {\n*18099│        // Net-less: a wildly-stale (pre-boot) heartbeat must NOT surface as an age.\n 18100│        let netless = render_connection_lines(false, Some(0), 1_000_000, 30_000);\n 18101│        assert!(netless.contains(\"no connection\"), \"surfaces the real cause\");\n 18102│        assert!(netless.contains(\"waiting on network\"));\n*18103│        assert!(!netless.contains(\"STALLED\"), \"no false stall off a stale heartbeat\");\n 18104│        // Net up, fresh heartbeat ⇒ live.\n 18105│        let live = render_connection_lines(true, Some(95_000), 100_000, 30_000);\n 18106│        assert!(live.contains(\"peer pump: live\"));\n*18107│        // Net up, genuinely stale heartbeat ⇒ honest STALLED (a real wedge).\n 18108│        let stalled = render_connection_lines(true, Some(0), 100_000, 30_000);\n 18109│        assert!(stalled.contains(\"STALLED\"));\n 18110│        // Net up, no heartbeat yet ⇒ said as unknown."},"isError":false,"timestamp":1784247420327}}
{"type":"message","id":"0a03328b","parentId":"35746694","timestamp":"2026-07-17T00:17:00.329Z","message":{"role":"toolResult","toolCallId":"call_UwuUvjOWr5BPEDB8vgrPgRtr|fc_05a4d8ea8a10ef0b016a59747c3f788198a904306f073c3825","toolName":"glob","content":[{"type":"text","text":"# C:/Users/decid/AppData/Local/spt-core/\n## owlery/\n### deployah/\ninfo.json\nready\n### webbie/\ninfo.json\nready\n### lia/\ninfo.json\nready\n### doyle/\ninfo.json\nready\n### todlando/\ninfo.json\nready\n### perri/\ninfo.json\n### mobile-gw/\ninfo.json\nready\n### gaki-normal-probe/\ninfo.json\n### emphasys/\ninfo.json\nready\n### hertz/\nready\ninfo.json\n### flynn/\ninfo.json\n### chert/\ninfo.json\nready\n## identity/\npump-heartbeat.json\npump-ops.json"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/identity/pump-*.json, C:/Users/decid/AppData/Local/spt-core/owlery/*/info.json, C:/Users/decid/AppData/Local/spt-core/owlery/*/.ready, C:/Users/decid/AppData/Local/spt-core/owlery/*/ready","fileCount":23,"files":["C:/Users/decid/AppData/Local/spt-core/owlery/deployah/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/lia/info.json","C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json","C:/Users/decid/AppData/Local/spt-core/identity/pump-ops.json","C:/Users/decid/AppData/Local/spt-core/owlery/doyle/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/webbie/ready","C:/Users/decid/AppData/Local/spt-core/owlery/todlando/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/todlando/ready","C:/Users/decid/AppData/Local/spt-core/owlery/perri/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/doyle/ready","C:/Users/decid/AppData/Local/spt-core/owlery/deployah/ready","C:/Users/decid/AppData/Local/spt-core/owlery/lia/ready","C:/Users/decid/AppData/Local/spt-core/owlery/mobile-gw/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/gaki-normal-probe/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/emphasys/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/hertz/ready","C:/Users/decid/AppData/Local/spt-core/owlery/hertz/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/emphasys/ready","C:/Users/decid/AppData/Local/spt-core/owlery/flynn/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/mobile-gw/ready","C:/Users/decid/AppData/Local/spt-core/owlery/chert/info.json","C:/Users/decid/AppData/Local/spt-core/owlery/chert/ready"],"truncated":false,"cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core"},"isError":false,"timestamp":1784247420329}}
{"type":"message","id":"a170b65d","parentId":"0a03328b","timestamp":"2026-07-17T00:17:00.331Z","message":{"role":"toolResult","toolCallId":"call_AP2WZq9TeAG9V4BoYnbflPXB|fc_05a4d8ea8a10ef0b016a59747c3f5c819898217487298d8d06","toolName":"grep","content":[{"type":"text","text":"No matches found\nSearched only the first 4MB of large files (matches past the 4MB window are not shown; use `read` for the rest): ..\\..\\..\\AppData\\Local\\spt-core\\logs\\daemon.stderr.log"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":0,"fileCount":0,"files":[],"truncated":false},"isError":false,"useless":true,"timestamp":1784247420331}}
{"type":"message","id":"2a9e50eb","parentId":"a170b65d","timestamp":"2026-07-17T00:17:00.331Z","message":{"role":"toolResult","toolCallId":"call_yBL8cKaSqapXCm9PKhDDEioK|fc_05a4d8ea8a10ef0b016a59747c3f38819892c5f17e7283e28c","toolName":"grep","content":[{"type":"text","text":" 25018|CONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25019|CONN_WRITE_POISONED: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*25020|CONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 25021|CONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25022|CONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25023|CONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n...\n 25036|CONN_LIFECYCLE: conn=10189 role=brain wall_ms=1784244102368 mono_ms=8406568 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25037|DISPATCH:3907:Failed(\"failed to fill whole buffer\")\n 25038|CONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 25039|CONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25040|CONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25041|DISPATCH:3898:Failed(\"failed to fill whole buffer\")\n 25042|CONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 25043|CONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25044|CONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n\nSearched only the first 4MB of large files (matches past the 4MB window are not shown; use `read` for the rest): ..\\..\\..\\AppData\\Local\\spt-core\\logs\\daemon.stderr.log"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":4,"fileCount":1,"files":["C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"],"fileMatches":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","count":4}],"truncated":false,"displayContent":" 25018│CONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25019│CONN_WRITE_POISONED: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*25020│CONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 25021│CONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25022│CONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25023│CONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n      │...\n 25036│CONN_LIFECYCLE: conn=10189 role=brain wall_ms=1784244102368 mono_ms=8406568 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25037│DISPATCH:3907:Failed(\"failed to fill whole buffer\")\n 25038│CONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 25039│CONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25040│CONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25041│DISPATCH:3898:Failed(\"failed to fill whole buffer\")\n 25042│CONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n 25043│CONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25044│CONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]"},"isError":false,"timestamp":1784247420331}}
{"type":"message","id":"4791f670","parentId":"2a9e50eb","timestamp":"2026-07-17T00:17:00.339Z","message":{"role":"toolResult","toolCallId":"call_CTdRl4sloHHQyQbviToakUgn|fc_05a4d8ea8a10ef0b016a59747c3f88819898167ecf453c9220","toolName":"grep","content":[{"type":"text","text":"# crates/spt-daemon/src/\n## dispatch.rs\n 86|/// workers block on their stream's event feed).\n*87|pub const DEFAULT_DISPATCH_POLL: Duration = Duration::from_millis(100);\n 88|\n 89|/// What protocol a peer-initiated stream speaks, by its first record's shape.\n 90|#[derive(Debug, Clone, Copy, PartialEq, Eq)]\n...\n 190|/// Backoff base for a released claim (doubles per failed attempt).\n*191|const DISPATCH_RETRY_BASE: Duration = Duration::from_millis(500);\n 192|\n 193|/// The backoff before retry number `attempts` (1-based) runs.\n 194|fn retry_backoff(attempts: u32) -> Duration {\n...\n 375|        }\n*376|        thread::sleep(Duration::from_millis(10));\n 377|    }\n 378|    Err(last)\n 379|}\n## brainproc.rs\n 39|/// doubles, capped at [`SUPERVISE_BACKOFF_CAP`].\n*40|const SUPERVISE_BACKOFF_BASE: Duration = Duration::from_secs(2);\n 41|/// Backoff ceiling — a persistently-crashing brain stays visible and bounded,\n 42|/// never a hot respawn loop.\n*43|const SUPERVISE_BACKOFF_CAP: Duration = Duration::from_secs(60);\n 44|/// A run at least this long counts as healthy and resets the backoff floor.\n 45|/// Reused as the per-attempt **trial window** (ADR-0018 Q7, D6-2): a candidate\n 46|/// brain has this long to signal `ready` for its generation before the window\n 47|/// elapses (the \"up but useless\" alive-never-ready rollback path).\n*48|const SUPERVISE_HEALTHY_RUN: Duration = Duration::from_secs(30);\n 49|/// The readiness-trial retry budget (ADR-0018 Q7, D6-2): a candidate that\n 50|/// **exits before** signaling ready is respawned this many consecutive times\n 51|/// (a transient first-boot hiccup should not abandon a good binary) before the\n...\n 56|/// Poll/sleep slice so a `stop` request (and a child exit) land promptly.\n*57|const TICK: Duration = Duration::from_millis(200);\n 58|\n 59|/// How long the brain child retries connecting to the broker socket before\n 60|/// giving up (the broker may still be binding — the child is freshly spawned).\n...\n 62|/// Cadence the idle brain refreshes its ready breadcrumb + probes the broker.\n*63|const BRAIN_HEARTBEAT: Duration = Duration::from_millis(500);\n 64|\n 65|/// Why the broker spawned this brain — the Q4 update-vs-crash discriminator the\n 66|/// broker stamps at spawn time (ADR-0018 V2). One channel, three payloads: the\n...\n 342|                last = Some(e);\n*343|                thread::sleep(Duration::from_millis(10));\n 344|            }\n 345|        }\n 346|    }\n...\n 1187|            &restart,\n*1188|            Duration::from_millis(5),\n 1189|            &NoTrialEnv,\n*1190|            Duration::from_secs(30),\n 1191|            move |_gen, _reason, _binary| {\n 1192|                let n = count_c.fetch_add(1, Ordering::Relaxed) + 1;\n 1193|                if n >= 3 {\n...\n 1222|            &restart,\n*1223|            Duration::from_millis(5),\n 1224|            &NoTrialEnv,\n*1225|            Duration::from_secs(30),\n 1226|            move |generation, reason, _binary| {\n 1227|                seen_c.lock().unwrap().push((generation, reason));\n 1228|                // After the first (cold) spawn, request a planned restart; after\n...\n 1262|            &restart,\n*1263|            Duration::from_millis(5),\n 1264|            &NoTrialEnv,\n*1265|            Duration::from_secs(30),\n 1266|            move |generation, reason, _binary| {\n 1267|                let mut v = seen_c.lock().unwrap();\n 1268|                v.push((generation, reason));\n...\n 1339|    fn backoff_doubles_on_fast_death_resets_when_healthy() {\n*1340|        let base = Duration::from_secs(2);\n 1341|        // Fast death: doubles.\n*1342|        let b1 = next_backoff(base, Duration::from_millis(1), base);\n*1343|        assert_eq!(b1, Duration::from_secs(4));\n*1344|        let b2 = next_backoff(b1, Duration::from_millis(1), base);\n*1345|        assert_eq!(b2, Duration::from_secs(8));\n 1346|        // Capped.\n*1347|        let capped = next_backoff(SUPERVISE_BACKOFF_CAP, Duration::from_millis(1), base);\n 1348|        assert_eq!(capped, SUPERVISE_BACKOFF_CAP);\n 1349|        // Healthy run resets to the floor.\n 1350|        let reset = next_backoff(b2, SUPERVISE_HEALTHY_RUN, base);\n...\n 1594|            &restart,\n*1595|            Duration::from_millis(5),\n 1596|            env.as_ref(),\n*1597|            Duration::from_secs(5),\n 1598|            move |gen, reason, binary| {\n 1599|                let n = {\n 1600|                    let mut s = spawns_c.lock().unwrap();\n## broker.rs\n 153|/// untouched.\n*154|const CONTROLLER_WRITE_DEADLINE: Duration = Duration::from_secs(5);\n 155|\n 156|/// How long a controller's writer thread may sit BLOCKED inside a single socket\n 157|/// write — the brain subscriber suspended / black-holed — before a take/reattach\n...\n 171|// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*172|const BRAIN_WRITE_DEADLINE: Duration = Duration::from_secs(15);\n 173|\n 174|/// The EFFECTIVE brain-write deadline. Production is [`BRAIN_WRITE_DEADLINE`]; the\n 175|/// suspend-brain int rig shrinks it via `SPT_BRAIN_WRITE_DEADLINE_MS` so the\n...\n 184|            .parse::<u64>()\n*185|            .map(Duration::from_millis)\n 186|            .unwrap_or(BRAIN_WRITE_DEADLINE),\n 187|        Err(_) => BRAIN_WRITE_DEADLINE,\n 188|    }\n...\n 196|/// over — availability over a vanishingly rare dup.\n*197|const WAKE_DEDUP_WAIT: Duration = Duration::from_secs(2);\n 198|/// Poll slice while waiting on a racing wake's session to appear.\n*199|const WAKE_DEDUP_POLL: Duration = Duration::from_millis(50);\n 200|\n 201|/// RAII release of a single-flight wake claim (W4, REQ-SPAWN-COLLISION-GUARD-LIVE-DUP):\n 202|/// the broker holds an endpoint id in [`Broker::wake_inflight`] for the duration of a\n...\n 286|/// long. Mirrors [`CONTROLLER_WRITE_DEADLINE`]'s order (5 s).\n*287|const INJECT_COMMIT_DEADLINE: Duration = Duration::from_secs(5);\n 288|\n 289|/// The effective commit deadline. Production is the const above; the int gate\n 290|/// (Layer G no-commit FAULT test) shrinks it via `SPT_INJECT_COMMIT_DEADLINE_MS`\n...\n 297|            .parse::<u64>()\n*298|            .map(Duration::from_millis)\n 299|            .unwrap_or(INJECT_COMMIT_DEADLINE),\n 300|        Err(_) => INJECT_COMMIT_DEADLINE,\n 301|    }\n...\n 368|/// returns in a tick or two, well under this.\n*369|const INJECT_SETTLE_DEADLINE: Duration = Duration::from_millis(400);\n 370|/// Poll/probe cadence within the settle-gate and the echo-verify wait.\n*371|const INJECT_SETTLE_POLL: Duration = Duration::from_millis(40);\n 372|/// The benign readiness probe: a DSR cursor-position query (`ESC[6n`). Invisible to\n 373|/// a TUI input line and never a submit; a live terminal/child answers or re-renders,\n 374|/// producing output — the POSITIVE signal that the input reader is attached.\n...\n 382|            .parse::<u64>()\n*383|            .map(Duration::from_millis)\n 384|            .unwrap_or(INJECT_SETTLE_DEADLINE),\n 385|        Err(_) => INJECT_SETTLE_DEADLINE,\n 386|    }\n...\n 391|/// verify MISS (round-trip + XON-resume latency bound).\n*392|const INJECT_ECHO_VERIFY_DEADLINE: Duration = Duration::from_millis(1200);\n 393|\n 394|/// The effective echo-verify wait; the int gate tunes it via `SPT_INJECT_ECHO_MS`.\n 395|fn inject_echo_verify_deadline() -> Duration {\n...\n 398|            .parse::<u64>()\n*399|            .map(Duration::from_millis)\n 400|            .unwrap_or(INJECT_ECHO_VERIFY_DEADLINE),\n 401|        Err(_) => INJECT_ECHO_VERIFY_DEADLINE,\n 402|    }\n...\n 2193|            Ok(KeyCmd::Delay { delay_ms }) => {\n*2194|                let want = Duration::from_millis(delay_ms);\n 2195|                let cap = deadline.saturating_duration_since(Instant::now());\n 2196|                thread::sleep(want.min(cap));\n 2197|            }\n...\n 2580|/// this long before a code must arrive (ADR-0030 / REQ-JOIN-TWO-PHASE).\n*2581|const PAIR_CODE_WAIT: Duration = Duration::from_secs(5 * 60);\n 2582|\n 2583|/// Whether a held meet is still within its wait-for-code window\n 2584|/// (REQ-JOIN-TWO-PHASE). Pure (the testable core of the timeout).\n...\n 2806|        };\n*2807|        let Some(blocked) = Instant::now().checked_sub(Duration::from_millis(blocked_ms_ago))\n 2808|        else {\n 2809|            return false;\n 2810|        };\n...\n 4643|        assert!(\n*4644|            hold_is_live(now + Duration::from_secs(1), now),\n 4645|            \"a future deadline is live\"\n 4646|        );\n 4647|        assert!(\n*4648|            !hold_is_live(now, now + Duration::from_secs(1)),\n 4649|            \"a lapsed deadline is dead (expired meet → re-run join)\"\n 4650|        );\n 4651|\n...\n 4758|            assert!(\n*4759|                try_read_frame(client, Duration::from_secs(2)).is_none(),\n 4760|                \"a NORMAL teardown (evicted=false) writes NOTHING — no spurious \\\n 4761|                 viewer_evicted marker that would trigger an uncalled-for re-subscribe\"\n 4762|            );\n...\n 4916|            c.last_ok = Instant::now()\n*4917|                .checked_sub(CONTROLLER_WRITE_DEADLINE + Duration::from_secs(1))\n 4918|                .expect(\"CI uptime exceeds the deadline\");\n 4919|        }\n 4920|        assert_eq!(\n...\n 5412|        let dead = {\n*5413|            let deadline = Instant::now() + Duration::from_secs(5);\n 5414|            loop {\n 5415|                if !spt_store::proc::is_process_alive(pid) {\n 5416|                    break true;\n\n## pump/\n### mod.rs\n 96|/// The pump's tick granularity — each cadence fires when its period elapsed.\n*97|const TICK: Duration = Duration::from_millis(200);\n 98|\n 99|/// Heartbeat write throttle (M8 decision 23, REQ-DAEMON-5): the stall\n 100|/// warning reads 3-cadence staleness, so a few seconds of heartbeat\n 101|/// granularity is invisible to it — and 5 writes/sec of disk churn is not.\n*102|const HEARTBEAT_PERIOD: Duration = Duration::from_secs(5);\n 103|\n 104|/// Per-call deadline budget for the pump's brain-IPC reads (REQ-HAZARD-PUMP-\n 105|/// IPC-DEADLINE). Far above any legitimate stream-open / sync round-trip, below\n...\n 108|/// escalated to a supervised restart, NEVER a per-peer retry.\n*109|const PUMP_PEER_IO_TIMEOUT: Duration = Duration::from_secs(30);\n 110|\n 111|/// Supervisor backoff floor: the first restart after a pump death.\n*112|const SUPERVISE_BACKOFF_BASE: Duration = Duration::from_secs(5);\n 113|\n 114|/// Supervisor backoff cap (M8 decision 23): a persistently-crashing pump\n 115|/// retries at most every 5 minutes — visible, bounded, never silent.\n*116|const SUPERVISE_BACKOFF_CAP: Duration = Duration::from_secs(300);\n 117|\n 118|/// A run that survived this long before dying counts as healthy — the next\n 119|/// backoff resets to the floor instead of doubling (a once-a-day panic must\n 120|/// not ratchet the pump toward permanent 5-minute outages).\n*121|const SUPERVISE_HEALTHY_RUN: Duration = Duration::from_secs(60);\n 122|\n 123|/// Per-peer dial-backoff floor (PUMP-TRUTH W2, REQ-PUMP-PEER-ISOLATION, G5): the\n 124|/// first failed dial to a peer waits this long before the pump re-dials THAT\n 125|/// peer. Scoped to the peer — a dead peer backs off while live peers stay hot.\n*126|const PEER_BACKOFF_BASE: Duration = Duration::from_secs(5);\n 127|\n 128|/// Per-peer dial-backoff cap (G5): a persistently-dead peer is re-dialed at most\n 129|/// every 5 minutes (same bound as the supervisor) — bounded, never a hot redial\n 130|/// loop, never silent. Reset to the floor on any successful connect.\n*131|const PEER_BACKOFF_CAP: Duration = Duration::from_secs(300);\n 132|\n 133|/// Round-drain margin over W1's per-dial reply-read budget (G3, Q1): because the\n 134|/// dials are CONCURRENT, every outcome lands within ~one W1 bound, so the round\n...\n 136|/// [`PEER_REPLY_READ_BUDGET`] (not a hardcoded 12s) so it tracks any W1 retune.\n*137|const ROUND_DRAIN_MARGIN: Duration = Duration::from_secs(2);\n 138|\n 139|/// Per-peer dial schedule (PUMP-TRUTH W2, REQ-PUMP-PEER-ISOLATION, G5): a peer is\n 140|/// dial-eligible when `now >= next_due`. A `DIAL_FAILED` (or a mid-round\n...\n 1136|        }\n*1137|        thread::sleep(Duration::from_millis(10));\n 1138|    }\n 1139|    Err(last)\n 1140|}\n...\n 1282|        // instant anywhere in the path. (No wake edge.)\n*1283|        assert!(due(None, false, now, Duration::from_secs(86_400)));\n 1284|        // A leg that just ran is not due until its cadence elapses.\n*1285|        assert!(!due(Some(now), false, now, Duration::from_secs(86_400)));\n 1286|        // And it becomes due once enough has elapsed.\n*1287|        let earlier = now - Duration::from_millis(50);\n*1288|        assert!(due(Some(earlier), false, now, Duration::from_millis(10)));\n*1289|        assert!(!due(Some(earlier), false, now, Duration::from_millis(500)));\n 1290|    }\n 1291|\n 1292|    // [unit->REQ-CONV-2] [unit->REQ-INST-3] the wake edge (a worker's\n...\n 1300|        let now = Instant::now();\n*1301|        let day = Duration::from_secs(86_400);\n 1302|        // Just ran, nowhere near due — wake forces it anyway.\n 1303|        assert!(due(Some(now), true, now, day));\n 1304|        // Without the wake it would NOT be due (the contrast the marker buys).\n...\n 1308|        // Wake on an already-elapsed leg is due (the same single round).\n*1309|        let earlier = now - Duration::from_millis(50);\n*1310|        assert!(due(Some(earlier), true, now, Duration::from_millis(10)));\n 1311|    }\n 1312|\n 1313|    // [unit->REQ-MESH-3] the widened fan-out: the push target is EVERY roster\n...\n 1405|        let log = Rc::new(RefCell::new(Vec::new()));\n*1406|        let day = Duration::from_secs(86_400);\n 1407|        let mut a = rec(day, false, &log, 'a');\n 1408|        let mut b = rec(day, false, &log, 'b');\n 1409|        let mut workers: [&mut dyn PumpWorker; 2] = [&mut a, &mut b];\n...\n 1420|        let log = Rc::new(RefCell::new(Vec::new()));\n*1421|        let day = Duration::from_secs(86_400);\n 1422|        let now = Instant::now();\n 1423|        let mut a = rec(day, false, &log, 'a'); // ran, no wake → not due\n 1424|        let mut b = rec(day, true, &log, 'b'); // ran, but woke → forced"}],"details":{"scopePath":"crates/spt-daemon/src/pump/mod.rs, crates/spt-daemon/src/dispatch.rs, crates/spt-daemon/src/brainproc.rs, crates/spt-daemon/src/broker.rs","searchPath":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":63,"fileCount":4,"files":["crates/spt-daemon/src/pump/mod.rs","crates/spt-daemon/src/dispatch.rs","crates/spt-daemon/src/brainproc.rs","crates/spt-daemon/src/broker.rs"],"fileMatches":[{"path":"crates/spt-daemon/src/pump/mod.rs","count":20},{"path":"crates/spt-daemon/src/dispatch.rs","count":3},{"path":"crates/spt-daemon/src/brainproc.rs","count":20},{"path":"crates/spt-daemon/src/broker.rs","count":20}],"truncated":true,"perFileLimitReached":20,"displayContent":"# crates/spt-daemon/src/\n## dispatch.rs\n  86│/// workers block on their stream's event feed).\n *87│pub const DEFAULT_DISPATCH_POLL: Duration = Duration::from_millis(100);\n  88│\n  89│/// What protocol a peer-initiated stream speaks, by its first record's shape.\n  90│#[derive(Debug, Clone, Copy, PartialEq, Eq)]\n    │...\n 190│/// Backoff base for a released claim (doubles per failed attempt).\n*191│const DISPATCH_RETRY_BASE: Duration = Duration::from_millis(500);\n 192│\n 193│/// The backoff before retry number `attempts` (1-based) runs.\n 194│fn retry_backoff(attempts: u32) -> Duration {\n    │...\n 375│        }\n*376│        thread::sleep(Duration::from_millis(10));\n 377│    }\n 378│    Err(last)\n 379│}\n## brainproc.rs\n   39│/// doubles, capped at [`SUPERVISE_BACKOFF_CAP`].\n  *40│const SUPERVISE_BACKOFF_BASE: Duration = Duration::from_secs(2);\n   41│/// Backoff ceiling — a persistently-crashing brain stays visible and bounded,\n   42│/// never a hot respawn loop.\n  *43│const SUPERVISE_BACKOFF_CAP: Duration = Duration::from_secs(60);\n   44│/// A run at least this long counts as healthy and resets the backoff floor.\n   45│/// Reused as the per-attempt **trial window** (ADR-0018 Q7, D6-2): a candidate\n   46│/// brain has this long to signal `ready` for its generation before the window\n   47│/// elapses (the \"up but useless\" alive-never-ready rollback path).\n  *48│const SUPERVISE_HEALTHY_RUN: Duration = Duration::from_secs(30);\n   49│/// The readiness-trial retry budget (ADR-0018 Q7, D6-2): a candidate that\n   50│/// **exits before** signaling ready is respawned this many consecutive times\n   51│/// (a transient first-boot hiccup should not abandon a good binary) before the\n     │...\n   56│/// Poll/sleep slice so a `stop` request (and a child exit) land promptly.\n  *57│const TICK: Duration = Duration::from_millis(200);\n   58│\n   59│/// How long the brain child retries connecting to the broker socket before\n   60│/// giving up (the broker may still be binding — the child is freshly spawned).\n     │...\n   62│/// Cadence the idle brain refreshes its ready breadcrumb + probes the broker.\n  *63│const BRAIN_HEARTBEAT: Duration = Duration::from_millis(500);\n   64│\n   65│/// Why the broker spawned this brain — the Q4 update-vs-crash discriminator the\n   66│/// broker stamps at spawn time (ADR-0018 V2). One channel, three payloads: the\n     │...\n  342│                last = Some(e);\n *343│                thread::sleep(Duration::from_millis(10));\n  344│            }\n  345│        }\n  346│    }\n     │...\n 1187│            &restart,\n*1188│            Duration::from_millis(5),\n 1189│            &NoTrialEnv,\n*1190│            Duration::from_secs(30),\n 1191│            move |_gen, _reason, _binary| {\n 1192│                let n = count_c.fetch_add(1, Ordering::Relaxed) + 1;\n 1193│                if n >= 3 {\n     │...\n 1222│            &restart,\n*1223│            Duration::from_millis(5),\n 1224│            &NoTrialEnv,\n*1225│            Duration::from_secs(30),\n 1226│            move |generation, reason, _binary| {\n 1227│                seen_c.lock().unwrap().push((generation, reason));\n 1228│                // After the first (cold) spawn, request a planned restart; after\n     │...\n 1262│            &restart,\n*1263│            Duration::from_millis(5),\n 1264│            &NoTrialEnv,\n*1265│            Duration::from_secs(30),\n 1266│            move |generation, reason, _binary| {\n 1267│                let mut v = seen_c.lock().unwrap();\n 1268│                v.push((generation, reason));\n     │...\n 1339│    fn backoff_doubles_on_fast_death_resets_when_healthy() {\n*1340│        let base = Duration::from_secs(2);\n 1341│        // Fast death: doubles.\n*1342│        let b1 = next_backoff(base, Duration::from_millis(1), base);\n*1343│        assert_eq!(b1, Duration::from_secs(4));\n*1344│        let b2 = next_backoff(b1, Duration::from_millis(1), base);\n*1345│        assert_eq!(b2, Duration::from_secs(8));\n 1346│        // Capped.\n*1347│        let capped = next_backoff(SUPERVISE_BACKOFF_CAP, Duration::from_millis(1), base);\n 1348│        assert_eq!(capped, SUPERVISE_BACKOFF_CAP);\n 1349│        // Healthy run resets to the floor.\n 1350│        let reset = next_backoff(b2, SUPERVISE_HEALTHY_RUN, base);\n     │...\n 1594│            &restart,\n*1595│            Duration::from_millis(5),\n 1596│            env.as_ref(),\n*1597│            Duration::from_secs(5),\n 1598│            move |gen, reason, binary| {\n 1599│                let n = {\n 1600│                    let mut s = spawns_c.lock().unwrap();\n## broker.rs\n  153│/// untouched.\n *154│const CONTROLLER_WRITE_DEADLINE: Duration = Duration::from_secs(5);\n  155│\n  156│/// How long a controller's writer thread may sit BLOCKED inside a single socket\n  157│/// write — the brain subscriber suspended / black-holed — before a take/reattach\n     │...\n  171│// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n *172│const BRAIN_WRITE_DEADLINE: Duration = Duration::from_secs(15);\n  173│\n  174│/// The EFFECTIVE brain-write deadline. Production is [`BRAIN_WRITE_DEADLINE`]; the\n  175│/// suspend-brain int rig shrinks it via `SPT_BRAIN_WRITE_DEADLINE_MS` so the\n     │...\n  184│            .parse::<u64>()\n *185│            .map(Duration::from_millis)\n  186│            .unwrap_or(BRAIN_WRITE_DEADLINE),\n  187│        Err(_) => BRAIN_WRITE_DEADLINE,\n  188│    }\n     │...\n  196│/// over — availability over a vanishingly rare dup.\n *197│const WAKE_DEDUP_WAIT: Duration = Duration::from_secs(2);\n  198│/// Poll slice while waiting on a racing wake's session to appear.\n *199│const WAKE_DEDUP_POLL: Duration = Duration::from_millis(50);\n  200│\n  201│/// RAII release of a single-flight wake claim (W4, REQ-SPAWN-COLLISION-GUARD-LIVE-DUP):\n  202│/// the broker holds an endpoint id in [`Broker::wake_inflight`] for the duration of a\n     │...\n  286│/// long. Mirrors [`CONTROLLER_WRITE_DEADLINE`]'s order (5 s).\n *287│const INJECT_COMMIT_DEADLINE: Duration = Duration::from_secs(5);\n  288│\n  289│/// The effective commit deadline. Production is the const above; the int gate\n  290│/// (Layer G no-commit FAULT test) shrinks it via `SPT_INJECT_COMMIT_DEADLINE_MS`\n     │...\n  297│            .parse::<u64>()\n *298│            .map(Duration::from_millis)\n  299│            .unwrap_or(INJECT_COMMIT_DEADLINE),\n  300│        Err(_) => INJECT_COMMIT_DEADLINE,\n  301│    }\n     │...\n  368│/// returns in a tick or two, well under this.\n *369│const INJECT_SETTLE_DEADLINE: Duration = Duration::from_millis(400);\n  370│/// Poll/probe cadence within the settle-gate and the echo-verify wait.\n *371│const INJECT_SETTLE_POLL: Duration = Duration::from_millis(40);\n  372│/// The benign readiness probe: a DSR cursor-position query (`ESC[6n`). Invisible to\n  373│/// a TUI input line and never a submit; a live terminal/child answers or re-renders,\n  374│/// producing output — the POSITIVE signal that the input reader is attached.\n     │...\n  382│            .parse::<u64>()\n *383│            .map(Duration::from_millis)\n  384│            .unwrap_or(INJECT_SETTLE_DEADLINE),\n  385│        Err(_) => INJECT_SETTLE_DEADLINE,\n  386│    }\n     │...\n  391│/// verify MISS (round-trip + XON-resume latency bound).\n *392│const INJECT_ECHO_VERIFY_DEADLINE: Duration = Duration::from_millis(1200);\n  393│\n  394│/// The effective echo-verify wait; the int gate tunes it via `SPT_INJECT_ECHO_MS`.\n  395│fn inject_echo_verify_deadline() -> Duration {\n     │...\n  398│            .parse::<u64>()\n *399│            .map(Duration::from_millis)\n  400│            .unwrap_or(INJECT_ECHO_VERIFY_DEADLINE),\n  401│        Err(_) => INJECT_ECHO_VERIFY_DEADLINE,\n  402│    }\n     │...\n 2193│            Ok(KeyCmd::Delay { delay_ms }) => {\n*2194│                let want = Duration::from_millis(delay_ms);\n 2195│                let cap = deadline.saturating_duration_since(Instant::now());\n 2196│                thread::sleep(want.min(cap));\n 2197│            }\n     │...\n 2580│/// this long before a code must arrive (ADR-0030 / REQ-JOIN-TWO-PHASE).\n*2581│const PAIR_CODE_WAIT: Duration = Duration::from_secs(5 * 60);\n 2582│\n 2583│/// Whether a held meet is still within its wait-for-code window\n 2584│/// (REQ-JOIN-TWO-PHASE). Pure (the testable core of the timeout).\n     │...\n 2806│        };\n*2807│        let Some(blocked) = Instant::now().checked_sub(Duration::from_millis(blocked_ms_ago))\n 2808│        else {\n 2809│            return false;\n 2810│        };\n     │...\n 4643│        assert!(\n*4644│            hold_is_live(now + Duration::from_secs(1), now),\n 4645│            \"a future deadline is live\"\n 4646│        );\n 4647│        assert!(\n*4648│            !hold_is_live(now, now + Duration::from_secs(1)),\n 4649│            \"a lapsed deadline is dead (expired meet → re-run join)\"\n 4650│        );\n 4651│\n     │...\n 4758│            assert!(\n*4759│                try_read_frame(client, Duration::from_secs(2)).is_none(),\n 4760│                \"a NORMAL teardown (evicted=false) writes NOTHING — no spurious \\\n 4761│                 viewer_evicted marker that would trigger an uncalled-for re-subscribe\"\n 4762│            );\n     │...\n 4916│            c.last_ok = Instant::now()\n*4917│                .checked_sub(CONTROLLER_WRITE_DEADLINE + Duration::from_secs(1))\n 4918│                .expect(\"CI uptime exceeds the deadline\");\n 4919│        }\n 4920│        assert_eq!(\n     │...\n 5412│        let dead = {\n*5413│            let deadline = Instant::now() + Duration::from_secs(5);\n 5414│            loop {\n 5415│                if !spt_store::proc::is_process_alive(pid) {\n 5416│                    break true;\n\n## pump/\n### mod.rs\n   96│/// The pump's tick granularity — each cadence fires when its period elapsed.\n  *97│const TICK: Duration = Duration::from_millis(200);\n   98│\n   99│/// Heartbeat write throttle (M8 decision 23, REQ-DAEMON-5): the stall\n  100│/// warning reads 3-cadence staleness, so a few seconds of heartbeat\n  101│/// granularity is invisible to it — and 5 writes/sec of disk churn is not.\n *102│const HEARTBEAT_PERIOD: Duration = Duration::from_secs(5);\n  103│\n  104│/// Per-call deadline budget for the pump's brain-IPC reads (REQ-HAZARD-PUMP-\n  105│/// IPC-DEADLINE). Far above any legitimate stream-open / sync round-trip, below\n     │...\n  108│/// escalated to a supervised restart, NEVER a per-peer retry.\n *109│const PUMP_PEER_IO_TIMEOUT: Duration = Duration::from_secs(30);\n  110│\n  111│/// Supervisor backoff floor: the first restart after a pump death.\n *112│const SUPERVISE_BACKOFF_BASE: Duration = Duration::from_secs(5);\n  113│\n  114│/// Supervisor backoff cap (M8 decision 23): a persistently-crashing pump\n  115│/// retries at most every 5 minutes — visible, bounded, never silent.\n *116│const SUPERVISE_BACKOFF_CAP: Duration = Duration::from_secs(300);\n  117│\n  118│/// A run that survived this long before dying counts as healthy — the next\n  119│/// backoff resets to the floor instead of doubling (a once-a-day panic must\n  120│/// not ratchet the pump toward permanent 5-minute outages).\n *121│const SUPERVISE_HEALTHY_RUN: Duration = Duration::from_secs(60);\n  122│\n  123│/// Per-peer dial-backoff floor (PUMP-TRUTH W2, REQ-PUMP-PEER-ISOLATION, G5): the\n  124│/// first failed dial to a peer waits this long before the pump re-dials THAT\n  125│/// peer. Scoped to the peer — a dead peer backs off while live peers stay hot.\n *126│const PEER_BACKOFF_BASE: Duration = Duration::from_secs(5);\n  127│\n  128│/// Per-peer dial-backoff cap (G5): a persistently-dead peer is re-dialed at most\n  129│/// every 5 minutes (same bound as the supervisor) — bounded, never a hot redial\n  130│/// loop, never silent. Reset to the floor on any successful connect.\n *131│const PEER_BACKOFF_CAP: Duration = Duration::from_secs(300);\n  132│\n  133│/// Round-drain margin over W1's per-dial reply-read budget (G3, Q1): because the\n  134│/// dials are CONCURRENT, every outcome lands within ~one W1 bound, so the round\n     │...\n  136│/// [`PEER_REPLY_READ_BUDGET`] (not a hardcoded 12s) so it tracks any W1 retune.\n *137│const ROUND_DRAIN_MARGIN: Duration = Duration::from_secs(2);\n  138│\n  139│/// Per-peer dial schedule (PUMP-TRUTH W2, REQ-PUMP-PEER-ISOLATION, G5): a peer is\n  140│/// dial-eligible when `now >= next_due`. A `DIAL_FAILED` (or a mid-round\n     │...\n 1136│        }\n*1137│        thread::sleep(Duration::from_millis(10));\n 1138│    }\n 1139│    Err(last)\n 1140│}\n     │...\n 1282│        // instant anywhere in the path. (No wake edge.)\n*1283│        assert!(due(None, false, now, Duration::from_secs(86_400)));\n 1284│        // A leg that just ran is not due until its cadence elapses.\n*1285│        assert!(!due(Some(now), false, now, Duration::from_secs(86_400)));\n 1286│        // And it becomes due once enough has elapsed.\n*1287│        let earlier = now - Duration::from_millis(50);\n*1288│        assert!(due(Some(earlier), false, now, Duration::from_millis(10)));\n*1289│        assert!(!due(Some(earlier), false, now, Duration::from_millis(500)));\n 1290│    }\n 1291│\n 1292│    // [unit->REQ-CONV-2] [unit->REQ-INST-3] the wake edge (a worker's\n     │...\n 1300│        let now = Instant::now();\n*1301│        let day = Duration::from_secs(86_400);\n 1302│        // Just ran, nowhere near due — wake forces it anyway.\n 1303│        assert!(due(Some(now), true, now, day));\n 1304│        // Without the wake it would NOT be due (the contrast the marker buys).\n     │...\n 1308│        // Wake on an already-elapsed leg is due (the same single round).\n*1309│        let earlier = now - Duration::from_millis(50);\n*1310│        assert!(due(Some(earlier), true, now, Duration::from_millis(10)));\n 1311│    }\n 1312│\n 1313│    // [unit->REQ-MESH-3] the widened fan-out: the push target is EVERY roster\n     │...\n 1405│        let log = Rc::new(RefCell::new(Vec::new()));\n*1406│        let day = Duration::from_secs(86_400);\n 1407│        let mut a = rec(day, false, &log, 'a');\n 1408│        let mut b = rec(day, false, &log, 'b');\n 1409│        let mut workers: [&mut dyn PumpWorker; 2] = [&mut a, &mut b];\n     │...\n 1420│        let log = Rc::new(RefCell::new(Vec::new()));\n*1421│        let day = Duration::from_secs(86_400);\n 1422│        let now = Instant::now();\n 1423│        let mut a = rec(day, false, &log, 'a'); // ran, no wake → not due\n 1424│        let mut b = rec(day, true, &log, 'b'); // ran, but woke → forced"},"isError":false,"timestamp":1784247420339}}
{"type":"message","id":"80bf530c","parentId":"4791f670","timestamp":"2026-07-17T00:17:00.339Z","message":{"role":"toolResult","toolCallId":"call_K1qElGxQnGcuapPDXS7CRBf9|fc_05a4d8ea8a10ef0b016a59747c3f688198ad6fd7da6582674a","toolName":"grep","content":[{"type":"text","text":" 25018|CONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25019|CONN_WRITE_POISONED: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n 25020|CONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 25021|CONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25022|CONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n\nSearched only the first 4MB of large files (matches past the 4MB window are not shown; use `read` for the rest): ..\\..\\..\\AppData\\Local\\spt-core\\logs\\daemon.stderr.log"}],"details":{"scopePath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","searchPath":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":1,"fileCount":1,"files":["C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"],"fileMatches":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","count":1}],"truncated":false,"displayContent":" 25018│CONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n*25019│CONN_WRITE_POISONED: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n 25020│CONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\n 25021│CONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\n 25022│CONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]"},"isError":false,"timestamp":1784247420339}}
{"type":"message","id":"0f66c97f","parentId":"80bf530c","timestamp":"2026-07-17T00:17:14.940Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Planning partial log scanning strategy**\n\n**Verifying pump and brain status inconsistencies**"},{"type":"toolCall","id":"call_91wfCenosBZZaX0flsaOWiyb|fc_05a4d8ea8a10ef0b016a59748ae17c8198856edf14aa546e46","name":"read","arguments":{"i":"Verifying brain PID breadcrumb","path":"C:/Users/decid/AppData/Local/spt-core/brain.ready","selector":"raw"}},{"type":"toolCall","id":"call_9r4Xo4TwwUmIoJafBwUarR41|fc_05a4d8ea8a10ef0b016a59748ae19481989c3f67658fc1efa0","name":"read","arguments":{"i":"Checking pump health snapshot","path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-health.json","selector":"raw"}},{"type":"toolCall","id":"call_x4hdPIMeurMVKs1Yy83fM4jc|fc_05a4d8ea8a10ef0b016a59748ae19c81988662269ac24a7951","name":"read","arguments":{"i":"Reading Doyle runtime record","path":"C:/Users/decid/AppData/Local/spt-core/owlery/doyle/info.json","selector":"raw"}},{"type":"toolCall","id":"call_PwUmFsSR1Ku4JMxGZkbnbPP9|fc_05a4d8ea8a10ef0b016a59748ae1a08198bef2d000d5ecf842","name":"read","arguments":{"i":"Reading Deployah runtime record","path":"C:/Users/decid/AppData/Local/spt-core/owlery/deployah/info.json","selector":"raw"}},{"type":"toolCall","id":"call_SENIP8UuUkPCrOr8KjyMf9Ak|fc_05a4d8ea8a10ef0b016a59748ae1a881989590d631ca733f8e","name":"read","arguments":{"i":"Reading Lia runtime record","path":"C:/Users/decid/AppData/Local/spt-core/owlery/lia/info.json","selector":"raw"}},{"type":"toolCall","id":"call_UOtBo8YZIl8QaA37cCBldrwu|fc_05a4d8ea8a10ef0b016a59748ae1ac8198a430f9bc95d705c3","name":"read","arguments":{"i":"Reading Webbie runtime record","path":"C:/Users/decid/AppData/Local/spt-core/owlery/webbie/info.json","selector":"raw"}},{"type":"toolCall","id":"call_Qoo6KpnjRjx3bdU6FLDJGRrL|fc_05a4d8ea8a10ef0b016a59748ae1b08198865874b91647a280","name":"read","arguments":{"i":"Reading Todlando runtime record","path":"C:/Users/decid/AppData/Local/spt-core/owlery/todlando/info.json","selector":"raw"}},{"type":"toolCall","id":"call_cCJ7PFWi9kG7KhkAkPeU95kx|fc_05a4d8ea8a10ef0b016a59748ae1b4819894781e3849c221e9","name":"read","arguments":{"i":"Reading Emphasys runtime record","path":"C:/Users/decid/AppData/Local/spt-core/owlery/emphasys/info.json","selector":"raw"}},{"type":"toolCall","id":"call_UwiWEkNa8VjYDdIbelMmcjaE|fc_05a4d8ea8a10ef0b016a59748ae1b8819882fbf1c80a0b59a9","name":"read","arguments":{"i":"Reading heartbeat again","path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json","selector":"raw"}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":14691,"output":710,"cacheRead":113152,"cacheWrite":0,"totalTokens":128553,"reasoningTokens":304,"cost":{"input":0.073455,"output":0.0213,"cacheRead":0.056575999999999994,"cacheWrite":0,"total":0.151331}},"stopReason":"toolUse","timestamp":1784247420387,"responseId":"resp_05a4d8ea8a10ef0b016a59747c9c3881989bff65eb05b6325a","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a59747e07dc8198853a77ce296acf14","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXSKMqX5r1jyrjnfEp3OmlO5IM3NKA7pu3EQ8MNsKAN3-M46cJIJA6m0GZkL_EU7xwirxlzEKN23oJ_qkAVsusJ95W_nf1cRbdLjqDqDlq4WCKmS9Olu4iUJMEGK_b3_rmVUH4PQrvkMgBlYx0qCQTagbSLJ09GwD50m1QVJpaATwdZ1xpPaZ-u5QjywqBAFCLHiOnSzETSDjXK_dsbTRMW3dS1JllpC0r7dOj87m-udg40Aa7fBiYrIxDSymoCAeu8LV7BBYgCI8D4y9bz-sBDfZrYocQ0tNjvLe0AGnJYPD-zSFi4sGwXxH6VLJBgMdb4fVQ9g1CqrKa3srdn1GbslptKlqO4rfuDJ4yt01NRxZxeCty5ZRQ3kxRK-u3WYY_7DdkPix1X99MmSA026Pe1qbE4wRMMFQnNZVDiIaUZpHCNTm7LV0SukXUnfNpun-iMPlOtaLjMNVIs3cgTPfTx526jyGf9go3hfz4Tg8KglJl-a3pRlFN12AhuHhS6CSU52_OJNZ42iAq2Xzd6PlIXIRqvCs1CiTCUm9JtI3GWd7BgydPI5mDFE45A9_ysswNhy3Heaouqb9xufK579knbHe8G34NRdhXiRgmLmWnX0oo5tDziGABuM80QinjrFgKENaom6GGLsb5c7Gb-N7LerhaHPYY01KF-K0fK6yX8VrhoLBIXiLlqOLTiWyLbSWGEgZcp4l4h0t0A9sgzJvDbn3lIZ_CTL-zDzOWeuzVcwM7sHcOKcm-4wXPl9m4v4tWKW01HhuchDFzkQIZEWy3lpLp-ZqRBHQ2rVb4JHlySOuhhgVrQH32bmuXUdaEx8ml76iA3nbaVpg4nnHC5r6UBN1jheSgTOKfOdoACfZ4Lw2OgiBhuGS5wimZfztnjZeLgOzE5ptFaK6eeB01iAJMB19YZ-mbkxfdU3BbvegTt9sPaHd2S9t39jirWcurVYdmbxmsXoHyVpQkvR0z8Dr0Ou3mbKYIQxMcirHlQij6ib2PcWSnTrZOAfvNwgft1rBHxZjYMDBp7r6gxML7iQnHIfVTRrTI_sCPP-74ASB4Misk5yakc3Jq4UV73arz140R94wjuv7_JTGG4JRFN9f8P7vEJ7704A97jJRRDfIonXijIzivJdjE-O81fw353okUdtNSYOcFmNSlZzo5yvhAecWy4EM6YH84q5MChEoCv-lZexHVSYn6Q2NuQHDOj8F1wwtLvBEEWJHKwORpN2c-NStzcSML-o4gDsO097JTDlrsshfTgVhugM_PPPV4y5QSO0rB0qQwoteBCW78uOPgjVgOFwcfFrQ0DIqQoZq7AXbQMQKKd8UA4-bmMefyWYPSlo1GkDSpKaySbIL0PnqHMiWkKGOBiGwrFru3f8yZMwI3sblk4B6iQ1Z4vV2Zs86xIfFKALcROMasTJM3AC9o80rokulvBC3ieiSmVzim_zadWfNVH0WI59F13BFZZF_4t_rRdYQnyytRLXNn1WV4OIlSy1aUDdWFos4HjSS71hLEDdEE1aEHEUYPlnHT-DE_45njN3tcFCJCJam99jB8lJ0F2woGLMlTM1lN21b1dsKU5JEx5wY_Lw-Fmc-jtfZY3q8lIA7Dqva0--dKgfZLG2cWpksn64WJtWSb7g_Wl7B-KGfWr1MexyTNxApgUFyU8D92l0UUgWX1yEv5Pcmf-05SdEcfEWjrFBK_q3XZlTSdKUOM1I6QGYDsbnHEcdlHsm6Rfe50CGSdF5ncmAJGRjMEhQHRnMMAEmi07c_rOJHin2a7p05GJNlRwjgka8Uf0u80aQ9FVueecQZ2pCV1iqejOtNFKD14nbevIUGLJxVe3Nr-TeOKpox8S0NnaXkdGDHpcTLZhIYoYLW3n6ovrps01Wo69CJBLdfs6P2mLR2g3RDa6SXdhCXB8mPOO6OAGlo2p6Q8LqLZCuDxXDRygNQrmgw9blt26c_Big8a3jL7ISUKYoUTTryTRbR5qOkhpgjIkZHs7axMJpDz2Ui-C9M-NwkVv_Bfh9_MB-oc_r0US99IrfFNedUqVPCDa1W8Ul7ITdFKeqXqJZSft435dEdIJd5Jb8K5IMsC26nhZnNuIPwWYzWeEjGGm69-GjrzB_hx8ZNjv-dr5upZfPFRfhsXtmnqwkHQx6PEg59nDnpCf0nY7JKFCzOskrY7Ep3WGHU1sM-6K29xfeaGT446l9k4Gy5vawIZWF0yzi20pQyK-1J9XYzrFA-4qSS12NmgAo1D_HxGuLWhiX89zyumi40lZcR5PuIjeewnd2K74hK4ej6m_R1n_IXIerhAsrU3juoA6y3Z9feVLihte6_SgOIhV3OvLJFM6lTpjeoIx2dtZla3nB6p3kn6aCpIIQOsvCe7_0VhmFpescf2Dm6aTg0rdlChdDRsBxsBg895hHNYFI5Ruu5Vze8LTAgg71Fd6M1yb0I7Y6M8rAEs35vomYwQTfJKN_5eLaF9YO22U_ikem_t5q9OBuUiJyvQEimICSRYAQ4Fikv2HmTUJVzTKk6eAsJFnE9xYxn1J8aolYAbr4jk-IvfU9V3jaUdAscDOWF62gO7hTwe__c1nx5o33KtXwHzWG3ApyirKsVUi1Nc08rQtae7XYVT_3inD7YgOoCFSpxDw5fcyj_bo4jaOuzI2EGApV9NQm8K_zcL0SyqjLsdRqracLcTOOz6rf6JuK4pvDoVAcEeSJE6oJhwN4yP9fQg1zqC0EEOKigWVV110=","summary":[{"type":"summary_text","text":"**Planning partial log scanning strategy**"},{"type":"summary_text","text":"**Verifying pump and brain status inconsistencies**"}]},{"id":"fc_05a4d8ea8a10ef0b016a59748ae17c8198856edf14aa546e46","type":"function_call","status":"completed","arguments":"{\"i\":\"Verifying brain PID breadcrumb\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/brain.ready\",\"selector\":\"raw\"}","call_id":"call_91wfCenosBZZaX0flsaOWiyb","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59748ae19481989c3f67658fc1efa0","type":"function_call","status":"completed","arguments":"{\"i\":\"Checking pump health snapshot\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/identity/pump-health.json\",\"selector\":\"raw\"}","call_id":"call_9r4Xo4TwwUmIoJafBwUarR41","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59748ae19c81988662269ac24a7951","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading Doyle runtime record\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/owlery/doyle/info.json\",\"selector\":\"raw\"}","call_id":"call_x4hdPIMeurMVKs1Yy83fM4jc","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59748ae1a08198bef2d000d5ecf842","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading Deployah runtime record\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/owlery/deployah/info.json\",\"selector\":\"raw\"}","call_id":"call_PwUmFsSR1Ku4JMxGZkbnbPP9","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59748ae1a881989590d631ca733f8e","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading Lia runtime record\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/owlery/lia/info.json\",\"selector\":\"raw\"}","call_id":"call_SENIP8UuUkPCrOr8KjyMf9Ak","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59748ae1ac8198a430f9bc95d705c3","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading Webbie runtime record\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/owlery/webbie/info.json\",\"selector\":\"raw\"}","call_id":"call_UOtBo8YZIl8QaA37cCBldrwu","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59748ae1b08198865874b91647a280","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading Todlando runtime record\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/owlery/todlando/info.json\",\"selector\":\"raw\"}","call_id":"call_Qoo6KpnjRjx3bdU6FLDJGRrL","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59748ae1b4819894781e3849c221e9","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading Emphasys runtime record\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/owlery/emphasys/info.json\",\"selector\":\"raw\"}","call_id":"call_cCJ7PFWi9kG7KhkAkPeU95kx","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59748ae1b8819882fbf1c80a0b59a9","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading heartbeat again\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json\",\"selector\":\"raw\"}","call_id":"call_UwiWEkNa8VjYDdIbelMmcjaE","name":"read"}]},"duration":14552.128699995577,"ttft":1635.2510999962687,"contextSnapshot":{"promptTokens":127843,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_91wfCenosBZZaX0flsaOWiyb|fc_05a4d8ea8a10ef0b016a59748ae17c8198856edf14aa546e46","toolName":"read","startedAt":"2026-07-17T00:17:14.940Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/brain.ready"},"intent":"Verifying brain PID breadcrumb"},"id":"2aae9c17","parentId":"0f66c97f","timestamp":"2026-07-17T00:17:14.940Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_9r4Xo4TwwUmIoJafBwUarR41|fc_05a4d8ea8a10ef0b016a59748ae19481989c3f67658fc1efa0","toolName":"read","startedAt":"2026-07-17T00:17:14.940Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-health.json"},"intent":"Checking pump health snapshot"},"id":"290c1c0c","parentId":"2aae9c17","timestamp":"2026-07-17T00:17:14.940Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_x4hdPIMeurMVKs1Yy83fM4jc|fc_05a4d8ea8a10ef0b016a59748ae19c81988662269ac24a7951","toolName":"read","startedAt":"2026-07-17T00:17:14.940Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/owlery/doyle/info.json"},"intent":"Reading Doyle runtime record"},"id":"30aedc55","parentId":"290c1c0c","timestamp":"2026-07-17T00:17:14.940Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_PwUmFsSR1Ku4JMxGZkbnbPP9|fc_05a4d8ea8a10ef0b016a59748ae1a08198bef2d000d5ecf842","toolName":"read","startedAt":"2026-07-17T00:17:14.940Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/owlery/deployah/info.json"},"intent":"Reading Deployah runtime record"},"id":"a5344161","parentId":"30aedc55","timestamp":"2026-07-17T00:17:14.940Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_SENIP8UuUkPCrOr8KjyMf9Ak|fc_05a4d8ea8a10ef0b016a59748ae1a881989590d631ca733f8e","toolName":"read","startedAt":"2026-07-17T00:17:14.940Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/owlery/lia/info.json"},"intent":"Reading Lia runtime record"},"id":"4cb54b46","parentId":"a5344161","timestamp":"2026-07-17T00:17:14.940Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_UOtBo8YZIl8QaA37cCBldrwu|fc_05a4d8ea8a10ef0b016a59748ae1ac8198a430f9bc95d705c3","toolName":"read","startedAt":"2026-07-17T00:17:14.940Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/owlery/webbie/info.json"},"intent":"Reading Webbie runtime record"},"id":"4dbb1701","parentId":"4cb54b46","timestamp":"2026-07-17T00:17:14.940Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_Qoo6KpnjRjx3bdU6FLDJGRrL|fc_05a4d8ea8a10ef0b016a59748ae1b08198865874b91647a280","toolName":"read","startedAt":"2026-07-17T00:17:14.940Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/owlery/todlando/info.json"},"intent":"Reading Todlando runtime record"},"id":"191d6a0a","parentId":"4dbb1701","timestamp":"2026-07-17T00:17:14.940Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_cCJ7PFWi9kG7KhkAkPeU95kx|fc_05a4d8ea8a10ef0b016a59748ae1b4819894781e3849c221e9","toolName":"read","startedAt":"2026-07-17T00:17:14.940Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/owlery/emphasys/info.json"},"intent":"Reading Emphasys runtime record"},"id":"727e9d63","parentId":"191d6a0a","timestamp":"2026-07-17T00:17:14.940Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_UwiWEkNa8VjYDdIbelMmcjaE|fc_05a4d8ea8a10ef0b016a59748ae1b8819882fbf1c80a0b59a9","toolName":"read","startedAt":"2026-07-17T00:17:14.940Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json"},"intent":"Reading heartbeat again"},"id":"b3e0b361","parentId":"727e9d63","timestamp":"2026-07-17T00:17:14.940Z"}
{"type":"message","id":"b1c6c3c1","parentId":"b3e0b361","timestamp":"2026-07-17T00:17:14.944Z","message":{"role":"toolResult","toolCallId":"call_91wfCenosBZZaX0flsaOWiyb|fc_05a4d8ea8a10ef0b016a59748ae17c8198856edf14aa546e46","toolName":"read","content":[{"type":"text","text":"{\"pid\":47668,\"generation\":0,\"exe_hash\":\"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3\"}"}],"details":{"displayContent":{"text":"{\"pid\":47668,\"generation\":0,\"exe_hash\":\"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3\"}","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/brain.ready"}}},"isError":false,"timestamp":1784247434944}}
{"type":"message","id":"635a80d6","parentId":"b1c6c3c1","timestamp":"2026-07-17T00:17:14.945Z","message":{"role":"toolResult","toolCallId":"call_SENIP8UuUkPCrOr8KjyMf9Ak|fc_05a4d8ea8a10ef0b016a59748ae1a881989590d631ca733f8e","toolName":"read","content":[{"type":"text","text":"{\"id\":\"lia\",\"started\":\"1784235700\",\"pid\":69996,\"session_id\":\"bf353802-556c-46ce-9865-e74a3092bbe9\",\"state\":\"live_agent\",\"parent_pid\":46032,\"cwd\":\"C:\\\\Users\\\\decid\\\\Documents\\\\projects\",\"status\":\"online\",\"last_active_ms\":1784247433852,\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"resources\":\"Multipurpose subnet liaison for user Reavo.\",\"home_subnet\":\"SPT_DEV\",\"adapter\":\"claude-spt\",\"controllable\":true}"}],"details":{"displayContent":{"text":"{\"id\":\"lia\",\"started\":\"1784235700\",\"pid\":69996,\"session_id\":\"bf353802-556c-46ce-9865-e74a3092bbe9\",\"state\":\"live_agent\",\"parent_pid\":46032,\"cwd\":\"C:\\\\Users\\\\decid\\\\Documents\\\\projects\",\"status\":\"online\",\"last_active_ms\":1784247433852,\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"resources\":\"Multipurpose subnet liaison for user Reavo.\",\"home_subnet\":\"SPT_DEV\",\"adapter\":\"claude-spt\",\"controllable\":true}","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/owlery/lia/info.json"}}},"isError":false,"timestamp":1784247434945}}
{"type":"message","id":"6e04952e","parentId":"635a80d6","timestamp":"2026-07-17T00:17:14.945Z","message":{"role":"toolResult","toolCallId":"call_Qoo6KpnjRjx3bdU6FLDJGRrL|fc_05a4d8ea8a10ef0b016a59748ae1b08198865874b91647a280","toolName":"read","content":[{"type":"text","text":"{\"id\":\"todlando\",\"started\":\"1784236626\",\"pid\":42588,\"session_id\":\"a939a0fc-5494-4c46-bc4a-dead01317ec1\",\"state\":\"ready_agent\",\"parent_pid\":87324,\"cwd\":\"C:\\\\Users\\\\decid\\\\Documents\\\\projects\\\\spt-core\",\"status\":\"online\",\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"home_subnet\":\"SPT_DEV\",\"adapter\":\"claude-spt:ccs\",\"controllable\":true,\"read_env\":{\"CLAUDE_CONFIG_DIR\":\"C:\\\\Users\\\\decid\\\\.ccs\\\\instances\\\\bigscreen\"}}"}],"details":{"displayContent":{"text":"{\"id\":\"todlando\",\"started\":\"1784236626\",\"pid\":42588,\"session_id\":\"a939a0fc-5494-4c46-bc4a-dead01317ec1\",\"state\":\"ready_agent\",\"parent_pid\":87324,\"cwd\":\"C:\\\\Users\\\\decid\\\\Documents\\\\projects\\\\spt-core\",\"status\":\"online\",\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"home_subnet\":\"SPT_DEV\",\"adapter\":\"claude-spt:ccs\",\"controllable\":true,\"read_env\":{\"CLAUDE_CONFIG_DIR\":\"C:\\\\Users\\\\decid\\\\.ccs\\\\instances\\\\bigscreen\"}}","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/owlery/todlando/info.json"}}},"isError":false,"timestamp":1784247434945}}
{"type":"message","id":"065ad21d","parentId":"6e04952e","timestamp":"2026-07-17T00:17:14.945Z","message":{"role":"toolResult","toolCallId":"call_PwUmFsSR1Ku4JMxGZkbnbPP9|fc_05a4d8ea8a10ef0b016a59748ae1a08198bef2d000d5ecf842","toolName":"read","content":[{"type":"text","text":"{\"id\":\"deployah\",\"started\":\"1784235716\",\"pid\":16844,\"session_id\":\"89cc9038-e5d9-429e-b4a9-40fba8af71ee\",\"state\":\"live_agent\",\"parent_pid\":86420,\"cwd\":\"C:\\\\Users\\\\decid\\\\Documents\\\\projects\\\\spt-core\",\"status\":\"online\",\"last_active_ms\":1784247434012,\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"home_subnet\":\"SPT_DEV\",\"adapter\":\"claude-spt:ccs\",\"controllable\":true,\"read_env\":{\"CLAUDE_CONFIG_DIR\":\"C:\\\\Users\\\\decid\\\\.ccs\\\\instances\\\\bigscreen\"}}"}],"details":{"displayContent":{"text":"{\"id\":\"deployah\",\"started\":\"1784235716\",\"pid\":16844,\"session_id\":\"89cc9038-e5d9-429e-b4a9-40fba8af71ee\",\"state\":\"live_agent\",\"parent_pid\":86420,\"cwd\":\"C:\\\\Users\\\\decid\\\\Documents\\\\projects\\\\spt-core\",\"status\":\"online\",\"last_active_ms\":1784247434012,\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"home_subnet\":\"SPT_DEV\",\"adapter\":\"claude-spt:ccs\",\"controllable\":true,\"read_env\":{\"CLAUDE_CONFIG_DIR\":\"C:\\\\Users\\\\decid\\\\.ccs\\\\instances\\\\bigscreen\"}}","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/owlery/deployah/info.json"}}},"isError":false,"timestamp":1784247434945}}
{"type":"message","id":"ed221d6c","parentId":"065ad21d","timestamp":"2026-07-17T00:17:14.945Z","message":{"role":"toolResult","toolCallId":"call_x4hdPIMeurMVKs1Yy83fM4jc|fc_05a4d8ea8a10ef0b016a59748ae19c81988662269ac24a7951","toolName":"read","content":[{"type":"text","text":"{\"id\":\"doyle\",\"started\":\"1784235718\",\"pid\":13800,\"session_id\":\"a2fdb848-6643-4e10-b221-6baee7e91b7b\",\"state\":\"live_agent\",\"parent_pid\":67068,\"cwd\":\"C:\\\\Users\\\\decid\\\\Documents\\\\projects\\\\spt-core\",\"status\":\"online\",\"last_active_ms\":1784247059062,\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"home_subnet\":\"SPT_DEV\",\"adapter\":\"claude-spt:ccs\",\"controllable\":true,\"read_env\":{\"CLAUDE_CONFIG_DIR\":\"C:\\\\Users\\\\decid\\\\.ccs\\\\instances\\\\bigscreen\"}}"}],"details":{"displayContent":{"text":"{\"id\":\"doyle\",\"started\":\"1784235718\",\"pid\":13800,\"session_id\":\"a2fdb848-6643-4e10-b221-6baee7e91b7b\",\"state\":\"live_agent\",\"parent_pid\":67068,\"cwd\":\"C:\\\\Users\\\\decid\\\\Documents\\\\projects\\\\spt-core\",\"status\":\"online\",\"last_active_ms\":1784247059062,\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"home_subnet\":\"SPT_DEV\",\"adapter\":\"claude-spt:ccs\",\"controllable\":true,\"read_env\":{\"CLAUDE_CONFIG_DIR\":\"C:\\\\Users\\\\decid\\\\.ccs\\\\instances\\\\bigscreen\"}}","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/owlery/doyle/info.json"}}},"isError":false,"timestamp":1784247434945}}
{"type":"message","id":"f3c08902","parentId":"ed221d6c","timestamp":"2026-07-17T00:17:14.945Z","message":{"role":"toolResult","toolCallId":"call_UOtBo8YZIl8QaA37cCBldrwu|fc_05a4d8ea8a10ef0b016a59748ae1ac8198a430f9bc95d705c3","toolName":"read","content":[{"type":"text","text":"{\"id\":\"webbie\",\"started\":\"1784245866\",\"pid\":81556,\"session_id\":\"e5b62b57-69a0-452c-9c7e-cd3708186344\",\"state\":\"live_agent\",\"parent_pid\":45520,\"cwd\":\"C:\\\\Users\\\\decid\\\\Documents\\\\projects\\\\website\",\"status\":\"online\",\"last_active_ms\":1784247433857,\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"home_subnet\":\"BIGNET\",\"adapter\":\"claude-spt:ccs\",\"controllable\":true,\"read_env\":{\"CLAUDE_CONFIG_DIR\":\"C:\\\\Users\\\\decid\\\\.ccs\\\\instances\\\\bigscreen\"}}"}],"details":{"displayContent":{"text":"{\"id\":\"webbie\",\"started\":\"1784245866\",\"pid\":81556,\"session_id\":\"e5b62b57-69a0-452c-9c7e-cd3708186344\",\"state\":\"live_agent\",\"parent_pid\":45520,\"cwd\":\"C:\\\\Users\\\\decid\\\\Documents\\\\projects\\\\website\",\"status\":\"online\",\"last_active_ms\":1784247433857,\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"home_subnet\":\"BIGNET\",\"adapter\":\"claude-spt:ccs\",\"controllable\":true,\"read_env\":{\"CLAUDE_CONFIG_DIR\":\"C:\\\\Users\\\\decid\\\\.ccs\\\\instances\\\\bigscreen\"}}","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/owlery/webbie/info.json"}}},"isError":false,"timestamp":1784247434945}}
{"type":"message","id":"bc81afbf","parentId":"f3c08902","timestamp":"2026-07-17T00:17:14.946Z","message":{"role":"toolResult","toolCallId":"call_UwiWEkNa8VjYDdIbelMmcjaE|fc_05a4d8ea8a10ef0b016a59748ae1b8819882fbf1c80a0b59a9","toolName":"read","content":[{"type":"text","text":"1784247430856"}],"details":{"displayContent":{"text":"1784247430856","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json"}}},"isError":false,"timestamp":1784247434946}}
{"type":"message","id":"8760c5ea","parentId":"bc81afbf","timestamp":"2026-07-17T00:17:14.946Z","message":{"role":"toolResult","toolCallId":"call_cCJ7PFWi9kG7KhkAkPeU95kx|fc_05a4d8ea8a10ef0b016a59748ae1b4819894781e3849c221e9","toolName":"read","content":[{"type":"text","text":"{\"id\":\"emphasys\",\"started\":\"1784188602\",\"pid\":31352,\"session_id\":\"019f657c-b509-7000-86f2-0cc67e63a2b7\",\"state\":\"ready_agent\",\"parent_pid\":39736,\"cwd\":\"C:/Users/decid/Documents/projects/omp-spt\",\"status\":\"online\",\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"home_subnet\":\"SPT_DEV\",\"adapter\":\"omp-spt\",\"controllable\":false}"}],"details":{"displayContent":{"text":"{\"id\":\"emphasys\",\"started\":\"1784188602\",\"pid\":31352,\"session_id\":\"019f657c-b509-7000-86f2-0cc67e63a2b7\",\"state\":\"ready_agent\",\"parent_pid\":39736,\"cwd\":\"C:/Users/decid/Documents/projects/omp-spt\",\"status\":\"online\",\"driven_by\":\"14efb80cb72297a1068c87a4aa45f30547c4474b60d1284b122bdc1a91c85f2d\",\"controlled\":true,\"rest_state\":\"active\",\"home_subnet\":\"SPT_DEV\",\"adapter\":\"omp-spt\",\"controllable\":false}","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/owlery/emphasys/info.json"}}},"isError":false,"timestamp":1784247434946}}
{"type":"message","id":"fb0856c6","parentId":"8760c5ea","timestamp":"2026-07-17T00:17:14.950Z","message":{"role":"toolResult","toolCallId":"call_9r4Xo4TwwUmIoJafBwUarR41|fc_05a4d8ea8a10ef0b016a59748ae19481989c3f67658fc1efa0","toolName":"read","content":[{"type":"text","text":"Path 'C:/Users/decid/AppData/Local/spt-core/identity/pump-health.json' not found"}],"details":{},"isError":true,"timestamp":1784247434950}}
{"type":"message","id":"4dbb456a","parentId":"fb0856c6","timestamp":"2026-07-17T00:17:19.113Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Verifying process and host details**"},{"type":"toolCall","id":"call_aK0f7owI1FhpkbpO3HoZcGRA|fc_05a4d8ea8a10ef0b016a59748e7a9c8198adb302096af5f888","name":"irc","arguments":{"i":"Checking regression findings","op":"inbox","to":null,"message":null,"replyTo":null,"await":null,"from":null,"timeoutMs":null,"peek":false}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":2265,"output":141,"cacheRead":127488,"cacheWrite":0,"totalTokens":129894,"reasoningTokens":84,"cost":{"input":0.011325000000000002,"output":0.00423,"cacheRead":0.063744,"cacheWrite":0,"total":0.079299}},"stopReason":"toolUse","timestamp":1784247434966,"responseId":"resp_05a4d8ea8a10ef0b016a59748b2c308198ad7afe435289ee7c","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a59748c799081989d55d6603d85c59b","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXSO5-OH9OtqjbBPkNJZ54FcDD2V75TaXGZJbBcP22U3rmTOmiJVJtUE4id1OUFeyZp3qI2UfoRmA4jugYmDi_vMqDf2yOUcL6nQAPLhNWouIhkYzDqK5Tz2Wc78AMjjohmE2RWzS66gMq290JzTxvZtU3N_0D12YONsVmOZDTJDu-3A-Y8W05_FDUdjb79iwxjo6PzpWO-DNYz3LiyaZ-UfkGvQQJCKFaSBkWpYVJ6x1dlxi_0GilxcesH_KBSyLhlFhbqUjbWF-s1SPzlBwR9ziSP4q9QD3FsX622byr9alrj5fsSf_mnelYGgnLRc8SI1hPTAJBcnE1lfmybftdWKDcG_S7FtA9DN1Au0gfiKpg2I14HtIB-D5lOprUTwqdfEpctsPuAboBbhlQuUEmYbhAm2KPFz5JP5x_MJS0qzsQKQG_dqbOJ64nw1NI1iKk7AfzE1IDSdwJkJRHbPM2Tp5--jb6H0RGEG2ST0uHUofPGE_Y3fTj-pG8BIhyT7Z3GfWmCXyZG_2Hluc03n7Ki0N08M0uF58libWb6isVv7U-1yDmjEC2cIF6eJolDm4Fp6VQilZ_Rh_DzGaqrq4Xi2sbTjGifRCGTUJVwHR9lg1QfvUnTTAPf54VPZn2zHZJhHtzWA83bYi1E_QT4aMD1NK7TXcuA_yVyJMdw120sJISflpT0U008tAdG7U_P7Lc4XMMELw8ySN66_FmAxnByzSbeKQsFomwHh8B3rHQcGnl1ydTpAKk-zf2XK_udsJv7eH270jhhWTipvq_Zg-Qv_58w9TOMNauzIHyAFDmxJQ8vPHf6OuFrhDJo7Dn7RvhVydVM0_goUfbg50Rz3bLu01LdqaCZB-tRoVUfc09m64S07aN7dEpNz6_AUimrPa2X7-np9COzjSKePMZxKPBXBrbmzmBzj-lc0FN0N9d9TFvbYtDiV0xocwojJmPcIPJQrLuIXiaPd8GfdB9FeXkuXMUZf6Drhw6QPwSemApn7ck0aVy8DPDMmoBvgOr0Lh8UZ01VD3L9T7V0NJqvCEnBjoH1mtyJUUSwe4Y7CwvP8WAWB8iuvjuipK8ftSZe7vmuTxDdbmdtxT-K9WWUKhs4FwfPYXw_TekDVtigCBpDCv7yEBBnYq5gIFYs2VfsJE7b4VM1l4nO14ImxYxVqmikz_BQQO-XlT8r5TZKSFKpVnS0HDqR5RYVjeaML6n3HjgNEssDaMaRuMlkxcPup8nY1vwtJzyRpGD23hFvYcHFeL9gsuPRllqMfpm8IEM6m2ED2M_pqYhnlzbUChn0h1Mbfr30wbWCzzX20Xe4aaeuTgXTH3gBczbNLebxhQXRQLkG5soIkl4qwFq1pOsyMHM6H_A==","summary":[{"type":"summary_text","text":"**Verifying process and host details**"}]},{"id":"fc_05a4d8ea8a10ef0b016a59748e7a9c8198adb302096af5f888","type":"function_call","status":"completed","arguments":"{\"i\":\"Checking regression findings\",\"op\":\"inbox\",\"to\":null,\"message\":null,\"replyTo\":null,\"await\":null,\"from\":null,\"timeoutMs\":null,\"peek\":false}","call_id":"call_aK0f7owI1FhpkbpO3HoZcGRA","name":"irc"}]},"duration":4124.57349999994,"ttft":1498.8263999968767,"contextSnapshot":{"promptTokens":129753,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_aK0f7owI1FhpkbpO3HoZcGRA|fc_05a4d8ea8a10ef0b016a59748e7a9c8198adb302096af5f888","toolName":"irc","startedAt":"2026-07-17T00:17:19.113Z","intent":"Checking regression findings"},"id":"5a6ca1ba","parentId":"4dbb456a","timestamp":"2026-07-17T00:17:19.113Z"}
{"type":"message","id":"ff28ff9c","parentId":"5a6ca1ba","timestamp":"2026-07-17T00:17:19.113Z","message":{"role":"toolResult","toolCallId":"call_aK0f7owI1FhpkbpO3HoZcGRA|fc_05a4d8ea8a10ef0b016a59748e7a9c8198adb302096af5f888","toolName":"irc","content":[{"type":"text","text":"Inbox empty."}],"details":{"op":"inbox","from":"LiveLogRca","inbox":[]},"isError":false,"useless":true,"timestamp":1784247439113}}
{"type":"message","id":"54f44de2","parentId":"ff28ff9c","timestamp":"2026-07-17T00:17:28.129Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Searching version markers in files**"},{"type":"toolCall","id":"call_xPWvIuGIyrYN2XGKs0hZofFu|fc_05a4d8ea8a10ef0b016a5974980ae08198a2d8c9d16e21c659","name":"grep","arguments":{"i":"Finding v034 release notes","pattern":"0\\.34\\.0|v0\\.34|BRAIN_WRITE_DEADLINE|subscriber stall|stream subscriber|dispatch replay|redispatch","path":"CHANGELOG*;docs;README*;crates","selector":null,"case":false,"gitignore":true,"skip":null}},{"type":"toolCall","id":"call_mVUtSHdg5eHkcPv0VtdRZPJS|fc_05a4d8ea8a10ef0b016a5974980aec819894e96e94c0f0d98b","name":"read","arguments":{"i":"Reading broker deadline design","path":"crates/spt-daemon/src/broker.rs","selector":"130-195,2760-2845"}},{"type":"toolCall","id":"call_aY3Or09HwFaYagW9qGEKrzgX|fc_05a4d8ea8a10ef0b016a5974980af4819890703fb7165967e1","name":"grep","arguments":{"i":"Locating stall tally protocol","pattern":"stall_evict|StallEvict|subscriber_stall|STALL_EVICT","path":"crates/spt-daemon/src;crates/spt-proto/src;crates/spt/src","selector":null,"case":false,"gitignore":true,"skip":null}},{"type":"toolCall","id":"call_klvpk91B6b36ko5qsn43i8Ew|fc_05a4d8ea8a10ef0b016a5974980af88198a52ca74f3842a71c","name":"read","arguments":{"i":"Reading dispatch retry policy","path":"crates/spt-daemon/src/dispatch.rs","selector":"175-230,375-485"}},{"type":"toolCall","id":"call_f75uGG3r3vImMLnGHwwTmDHo|fc_05a4d8ea8a10ef0b016a5974980afc819898759be883bfe66e","name":"grep","arguments":{"i":"Locating stream subscriber writes","pattern":"stream-subscriber|net_stream_subscribe|subscriber|write_with|write_deadline|brain_write_deadline","path":"crates/spt-daemon/src/broker.rs;crates/spt-daemon/src/brain.rs;crates/spt-daemon/src/conn.rs","selector":null,"case":false,"gitignore":true,"skip":null}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":372,"output":387,"cacheRead":129536,"cacheWrite":0,"totalTokens":130295,"reasoningTokens":30,"cost":{"input":0.00186,"output":0.01161,"cacheRead":0.06476799999999999,"cacheWrite":0,"total":0.07823799999999999}},"stopReason":"toolUse","timestamp":1784247439129,"responseId":"resp_05a4d8ea8a10ef0b016a59748f60d081988695c48d2daea830","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a597490cf0c8198b664bb3aad570d99","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXSY9wm54A74lynMhbeBAXz8dkT58rOPm7b2GTfs07RzbZg5dkYGQIAnWaFO-9dvRDr5TzafUKsu36mYBnBiu5bzvh6xLuQGl8zCRttTr_97Diy2ngPuYEoyiZqUaT5s7Bvjfcj9OWT-eeJQGcO5VyjJADGINIx0uTyUmR55XH08HB2684NF7reO_FSSs9xbZtivwW2aMttSL99lCTpb428BsVRMSJgMOz4tb0Yx8Ar79X-l-zfNDo7QjaxrrBVg5IGS2fdHetYxVXfbfM_VMEe4dWKBEEE8PFrEiI7XgeQJFvOweyzsUychaVeBgVvghSwyRK4u4kHZPjzxWU6HSuokAj3M6zJH3ZQuBSwEnX0xRyrXHBiSl4RwEat0rUqcfKy_oghzCEMuJmT8AANE9c29zZni935DDphdDHiu201spjaTQ1wfirLlBiAr41kyLtsi5H8_-ly3ss5uLyOqSMc1kBgKvM533y9cs5WjC_RITNeh0kUtwm_93USMjF99AFZUmwHE5YyDqoiYtj_lJxGwqGZH_4TAmhLYMwYpYbyxR8s0N0BStbNYnYJGWGjTy9yYSxRV9ckm65ONDT0QA1NqPDQqZdnuA9TbBYgfcp2OU3xlzeb3pcFWeXdyQNGt4sly6BRlr4pA_Ad4SCdqSSGrGw3uOTViG7ubEZks-XBbAZ1-bzDJR7ANMJEbRquKgD40oUsM1XROAZ_rNXVNMwE07iKxTARW0_SeERm7pg1ZyUmNUX8l6l7ld_fTTAIQRQunDzc5TmRDXjOZGxTM9hQuoPAwZHwBVUmYBL3ZSq3l6WT2vrZjPEyGQOYoSKcNI6aD-B3ctwdR2ABKCBJS_Y4y4ql-1o8YesBpuGCd-vJNC7a7zO9hhrtwLszRoc4uMEEoKMWlfFfcY2bCyVWFdyC983YcO3kF-4CgxU6_XO6P5FRlmsivuPEhweKrtOpYkmjOg6WQHsNspQwi-Z-FFOhg34h8Qh496BR3OeIUjpiP13j74VqpAwW5tdixlyoEKBvkrGPVXLoO56OnMjpjjPyDRUGVmrUAmDY6qhoujMRAObg30ElNsS0XUOyOFpbwDHstXnr7cvaL1XJIajQO3Oo28g==","summary":[{"type":"summary_text","text":"**Searching version markers in files**"}]},{"id":"fc_05a4d8ea8a10ef0b016a5974980ae08198a2d8c9d16e21c659","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding v034 release notes\",\"pattern\":\"0\\\\.34\\\\.0|v0\\\\.34|BRAIN_WRITE_DEADLINE|subscriber stall|stream subscriber|dispatch replay|redispatch\",\"path\":\"CHANGELOG*;docs;README*;crates\",\"selector\":null,\"case\":false,\"gitignore\":true,\"skip\":null}","call_id":"call_xPWvIuGIyrYN2XGKs0hZofFu","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a5974980aec819894e96e94c0f0d98b","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading broker deadline design\",\"path\":\"crates/spt-daemon/src/broker.rs\",\"selector\":\"130-195,2760-2845\"}","call_id":"call_mVUtSHdg5eHkcPv0VtdRZPJS","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a5974980af4819890703fb7165967e1","type":"function_call","status":"completed","arguments":"{\"i\":\"Locating stall tally protocol\",\"pattern\":\"stall_evict|StallEvict|subscriber_stall|STALL_EVICT\",\"path\":\"crates/spt-daemon/src;crates/spt-proto/src;crates/spt/src\",\"selector\":null,\"case\":false,\"gitignore\":true,\"skip\":null}","call_id":"call_aY3Or09HwFaYagW9qGEKrzgX","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a5974980af88198a52ca74f3842a71c","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading dispatch retry policy\",\"path\":\"crates/spt-daemon/src/dispatch.rs\",\"selector\":\"175-230,375-485\"}","call_id":"call_klvpk91B6b36ko5qsn43i8Ew","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a5974980afc819898759be883bfe66e","type":"function_call","status":"completed","arguments":"{\"i\":\"Locating stream subscriber writes\",\"pattern\":\"stream-subscriber|net_stream_subscribe|subscriber|write_with|write_deadline|brain_write_deadline\",\"path\":\"crates/spt-daemon/src/broker.rs;crates/spt-daemon/src/brain.rs;crates/spt-daemon/src/conn.rs\",\"selector\":null,\"case\":false,\"gitignore\":true,\"skip\":null}","call_id":"call_f75uGG3r3vImMLnGHwwTmDHo","name":"grep"}]},"duration":8999.197599999607,"ttft":1676.8461999967694,"contextSnapshot":{"promptTokens":129908,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_xPWvIuGIyrYN2XGKs0hZofFu|fc_05a4d8ea8a10ef0b016a5974980ae08198a2d8c9d16e21c659","toolName":"grep","startedAt":"2026-07-17T00:17:28.129Z","args":{"path":"CHANGELOG*;docs;README*;crates"},"intent":"Finding v034 release notes"},"id":"71d419eb","parentId":"54f44de2","timestamp":"2026-07-17T00:17:28.129Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_mVUtSHdg5eHkcPv0VtdRZPJS|fc_05a4d8ea8a10ef0b016a5974980aec819894e96e94c0f0d98b","toolName":"read","startedAt":"2026-07-17T00:17:28.129Z","args":{"path":"crates/spt-daemon/src/broker.rs"},"intent":"Reading broker deadline design"},"id":"acadd090","parentId":"71d419eb","timestamp":"2026-07-17T00:17:28.129Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_aY3Or09HwFaYagW9qGEKrzgX|fc_05a4d8ea8a10ef0b016a5974980af4819890703fb7165967e1","toolName":"grep","startedAt":"2026-07-17T00:17:28.129Z","args":{"path":"crates/spt-daemon/src;crates/spt-proto/src;crates/spt/src"},"intent":"Locating stall tally protocol"},"id":"ab3d4216","parentId":"acadd090","timestamp":"2026-07-17T00:17:28.129Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_klvpk91B6b36ko5qsn43i8Ew|fc_05a4d8ea8a10ef0b016a5974980af88198a52ca74f3842a71c","toolName":"read","startedAt":"2026-07-17T00:17:28.129Z","args":{"path":"crates/spt-daemon/src/dispatch.rs"},"intent":"Reading dispatch retry policy"},"id":"58d9b348","parentId":"ab3d4216","timestamp":"2026-07-17T00:17:28.129Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_f75uGG3r3vImMLnGHwwTmDHo|fc_05a4d8ea8a10ef0b016a5974980afc819898759be883bfe66e","toolName":"grep","startedAt":"2026-07-17T00:17:28.129Z","args":{"path":"crates/spt-daemon/src/broker.rs;crates/spt-daemon/src/brain.rs;crates/spt-daemon/src/conn.rs"},"intent":"Locating stream subscriber writes"},"id":"9f131658","parentId":"58d9b348","timestamp":"2026-07-17T00:17:28.129Z"}
{"type":"message","id":"bf99dd6d","parentId":"9f131658","timestamp":"2026-07-17T00:17:28.186Z","message":{"role":"toolResult","toolCallId":"call_klvpk91B6b36ko5qsn43i8Ew|fc_05a4d8ea8a10ef0b016a5974980af88198a52ca74f3842a71c","toolName":"read","content":[{"type":"text","text":"#[derive(Debug, Clone, Copy, PartialEq, Eq)]\nenum ClaimState {\n    /// A worker owns the stream right now (`attempts` = prior failures).\n    InFlight { attempts: u32 },\n    /// Done for this dispatcher's lifetime: served, unclassifiable, or\n    /// retries exhausted. Terminal outcomes never re-enter the queue.\n    Terminal,\n    /// A transient failure released the claim; eligible again at `next_at`.\n    Retry { attempts: u32, next_at: Instant },\n}\n\n/// Bounded retry budget per stream per dispatcher lifetime — transient setup\n/// failures recover, a persistently-failing stream goes terminal loud.\nconst MAX_DISPATCH_ATTEMPTS: u32 = 3;\n\n/// Backoff base for a released claim (doubles per failed attempt).\nconst DISPATCH_RETRY_BASE: Duration = Duration::from_millis(500);\n\n/// The backoff before retry number `attempts` (1-based) runs.\nfn retry_backoff(attempts: u32) -> Duration {\n    DISPATCH_RETRY_BASE * 2u32.saturating_pow(attempts.saturating_sub(1))\n}\n\n/// PURE claim decision: may this row be (re)claimed now? `Some(prior\n/// failures)` = claim it; `None` = leave it (in flight, terminal, or backing\n/// off). The unit-tested seam for the no-hot-loop ruling.\n// [impl->REQ-DISPATCH-CLAIM-RETRY]\nfn should_claim(state: Option<&ClaimState>, now: Instant) -> Option<u32> {\n    match state {\n        None => Some(0),\n        Some(ClaimState::Retry { attempts, next_at }) if now >= *next_at => Some(*attempts),\n        _ => None,\n    }\n}\n\n/// PURE outcome transition: what a finished worker's claim becomes. Served\n/// and Unknown (unclassifiable) are TERMINAL — a terminal classification never\n/// hot-loops. A failure requeues with backoff until the bounded budget is\n/// spent, then goes terminal.\n// [impl->REQ-DISPATCH-CLAIM-RETRY]\nfn outcome_transition(outcome: &DispatchOutcome, attempts: u32, now: Instant) -> ClaimState {\n    match outcome {\n        DispatchOutcome::Served(_) | DispatchOutcome::Unknown => ClaimState::Terminal,\n        DispatchOutcome::Failed(_) => {\n            let attempts = attempts + 1;\n            if attempts >= MAX_DISPATCH_ATTEMPTS {\n                ClaimState::Terminal\n            } else {\n                ClaimState::Retry {\n                    attempts,\n                    next_at: now + retry_backoff(attempts),\n                }\n            }\n        }\n    }\n}\n…\nfn connect(broker_name: &str) -> io::Result<Brain> {\n…\n    for _ in 0..300 {\n        match Brain::cold_start(broker_name, now_ms()) {\n…\n        }\n        thread::sleep(Duration::from_millis(10));\n    }\n    Err(last)\n}\n\nfn now_ms() -> u64 {\n    std::time::SystemTime::now()\n        .duration_since(std::time::UNIX_EPOCH)\n        .map(|d| d.as_millis() as u64)\n        .unwrap_or(0)\n}\n\n/// The stream's first NDJSON line, restart-durable (ADR-0038 B,\n/// REQ-STREAM-OPENER-DURABLE): read the broker-pinned opener fact first —\n/// it survives any ring roll — and fall back to the ring peek only when the\n/// broker predates the verb (KH-2.3 N-1 window). `Ok(None)` = unclassifiable\n/// (terminal); `Err` = transient (the claim requeues bounded).\nfn first_line(\n    broker_name: &str,\n    stream_id: u64,\n    floor_seq: u64,\n) -> io::Result<Option<serde_json::Value>> {\n    match connect(broker_name).and_then(|mut b| b.net_stream_opener(stream_id)) {\n        // Pinned: classify from the durable fact. A pinned line that does not\n        // parse is terminally unclassifiable (same contract as the peek path).\n        Ok(Some(bytes)) => return Ok(serde_json::from_slice(&bytes).ok()),\n        // The broker holds the stream but no opener is pinned yet (first\n        // newline still in flight, or the capture gave up bounded). The\n        // next_seq guard proved bytes exist, so treat as transient — the\n        // bounded claim retry re-reads it shortly, and a stream that never\n        // pins goes terminal when the budget is spent (no hot loop).\n        Ok(None) => {\n            return Err(io::Error::other(format!(\n                \"stream {stream_id}: opener not pinned yet\"\n            )))\n        }\n        // Older broker (unknown verb answers error) or the row vanished —\n        // fall through to the ring peek, the pre-ADR-0038 path.\n        Err(_) => {}\n    }\n    peek_first_line(broker_name, stream_id, floor_seq)\n}\n\n/// Peek the stream's first retained NDJSON line on a throwaway brain\n/// connection (the pre-ADR-0038 fallback — subject to ring eviction, kept\n/// only for the older-broker window). Subscribes from `floor_seq` (the oldest\n/// retained chunk) so a rolled ring replays instead of tripping the brain's\n/// gap check.\nfn peek_first_line(\n    broker_name: &str,\n    stream_id: u64,\n    floor_seq: u64,\n) -> io::Result<Option<serde_json::Value>> {\n    let mut brain = connect(broker_name)?;\n    brain.net_stream_subscribe(stream_id, floor_seq)?;\n    let mut buf: Vec<u8> = Vec::new();\n    loop {\n        match brain.read_event()? {\n            BrokerEvent::NetStreamData {\n                stream_id: sid,\n                bytes,\n                ..\n            } if sid == stream_id => {\n                buf.extend_from_slice(&bytes);\n                if let Some(nl) = buf.iter().position(|&b| b == b'\\n') {\n                    return Ok(serde_json::from_slice(&buf[..nl]).ok());\n                }\n            }\n            BrokerEvent::NetStreamEof { stream_id: sid, .. } if sid == stream_id => {\n                // Finished without a complete line: classify what we have\n                // (a line without a trailing newline before EOF still counts).\n                return Ok(serde_json::from_slice(&buf).ok());\n            }\n            BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n            _ => {}\n        }\n    }\n}\n\n/// One claimed stream's worker: peek → classify → run the family's serve\n/// loop on a fresh brain connection.\n#[allow(clippy::too_many_arguments)]\nfn worker(\n    broker_name: &str,\n    stream_id: u64,\n    origin: &str,\n    floor_seq: u64,\n    finished: bool,\n    paths: &DispatchPaths,\n    registry: &RegistryHost,\n) -> DispatchOutcome {\n    if take_injected_transient() {\n        return DispatchOutcome::Failed(\n            \"injected transient worker-start failure (test valve)\".into(),\n        );\n    }\n    let line = match first_line(broker_name, stream_id, floor_seq) {\n        Ok(Some(v)) => v,\n        Ok(None) => return DispatchOutcome::Unknown,\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\n    };\n    let family = classify_first_line(&line);\n\n    // Gate round 1 (retire-on-sight, KNOWN-HAZARDS 7.41): a finished ATTACH\n    // row's exchange is over — the operator detached — and replaying it would\n    // take the live controller (pre-existing backlog + brain-down-detach\n    // orderings, which the Served-report path can never see). Report Served\n    // WITHOUT serving: the loop's completion path retires the row, so the\n    // backlog also drains from the table. Finished request/reply rows fall\n    // through — their FIN is protocol, not completion (see\n…\n}"}],"details":{"displayContent":{"text":"#[derive(Debug, Clone, Copy, PartialEq, Eq)]\nenum ClaimState {\n    /// A worker owns the stream right now (`attempts` = prior failures).\n    InFlight { attempts: u32 },\n    /// Done for this dispatcher's lifetime: served, unclassifiable, or\n    /// retries exhausted. Terminal outcomes never re-enter the queue.\n    Terminal,\n    /// A transient failure released the claim; eligible again at `next_at`.\n    Retry { attempts: u32, next_at: Instant },\n}\n\n/// Bounded retry budget per stream per dispatcher lifetime — transient setup\n/// failures recover, a persistently-failing stream goes terminal loud.\nconst MAX_DISPATCH_ATTEMPTS: u32 = 3;\n\n/// Backoff base for a released claim (doubles per failed attempt).\nconst DISPATCH_RETRY_BASE: Duration = Duration::from_millis(500);\n\n/// The backoff before retry number `attempts` (1-based) runs.\nfn retry_backoff(attempts: u32) -> Duration {\n    DISPATCH_RETRY_BASE * 2u32.saturating_pow(attempts.saturating_sub(1))\n}\n\n/// PURE claim decision: may this row be (re)claimed now? `Some(prior\n/// failures)` = claim it; `None` = leave it (in flight, terminal, or backing\n/// off). The unit-tested seam for the no-hot-loop ruling.\n// [impl->REQ-DISPATCH-CLAIM-RETRY]\nfn should_claim(state: Option<&ClaimState>, now: Instant) -> Option<u32> {\n    match state {\n        None => Some(0),\n        Some(ClaimState::Retry { attempts, next_at }) if now >= *next_at => Some(*attempts),\n        _ => None,\n    }\n}\n\n/// PURE outcome transition: what a finished worker's claim becomes. Served\n/// and Unknown (unclassifiable) are TERMINAL — a terminal classification never\n/// hot-loops. A failure requeues with backoff until the bounded budget is\n/// spent, then goes terminal.\n// [impl->REQ-DISPATCH-CLAIM-RETRY]\nfn outcome_transition(outcome: &DispatchOutcome, attempts: u32, now: Instant) -> ClaimState {\n    match outcome {\n        DispatchOutcome::Served(_) | DispatchOutcome::Unknown => ClaimState::Terminal,\n        DispatchOutcome::Failed(_) => {\n            let attempts = attempts + 1;\n            if attempts >= MAX_DISPATCH_ATTEMPTS {\n                ClaimState::Terminal\n            } else {\n                ClaimState::Retry {\n                    attempts,\n                    next_at: now + retry_backoff(attempts),\n                }\n            }\n        }\n    }\n}\n…\nfn connect(broker_name: &str) -> io::Result<Brain> {\n…\n    for _ in 0..300 {\n        match Brain::cold_start(broker_name, now_ms()) {\n…\n        }\n        thread::sleep(Duration::from_millis(10));\n    }\n    Err(last)\n}\n\nfn now_ms() -> u64 {\n    std::time::SystemTime::now()\n        .duration_since(std::time::UNIX_EPOCH)\n        .map(|d| d.as_millis() as u64)\n        .unwrap_or(0)\n}\n\n/// The stream's first NDJSON line, restart-durable (ADR-0038 B,\n/// REQ-STREAM-OPENER-DURABLE): read the broker-pinned opener fact first —\n/// it survives any ring roll — and fall back to the ring peek only when the\n/// broker predates the verb (KH-2.3 N-1 window). `Ok(None)` = unclassifiable\n/// (terminal); `Err` = transient (the claim requeues bounded).\nfn first_line(\n    broker_name: &str,\n    stream_id: u64,\n    floor_seq: u64,\n) -> io::Result<Option<serde_json::Value>> {\n    match connect(broker_name).and_then(|mut b| b.net_stream_opener(stream_id)) {\n        // Pinned: classify from the durable fact. A pinned line that does not\n        // parse is terminally unclassifiable (same contract as the peek path).\n        Ok(Some(bytes)) => return Ok(serde_json::from_slice(&bytes).ok()),\n        // The broker holds the stream but no opener is pinned yet (first\n        // newline still in flight, or the capture gave up bounded). The\n        // next_seq guard proved bytes exist, so treat as transient — the\n        // bounded claim retry re-reads it shortly, and a stream that never\n        // pins goes terminal when the budget is spent (no hot loop).\n        Ok(None) => {\n            return Err(io::Error::other(format!(\n                \"stream {stream_id}: opener not pinned yet\"\n            )))\n        }\n        // Older broker (unknown verb answers error) or the row vanished —\n        // fall through to the ring peek, the pre-ADR-0038 path.\n        Err(_) => {}\n    }\n    peek_first_line(broker_name, stream_id, floor_seq)\n}\n\n/// Peek the stream's first retained NDJSON line on a throwaway brain\n/// connection (the pre-ADR-0038 fallback — subject to ring eviction, kept\n/// only for the older-broker window). Subscribes from `floor_seq` (the oldest\n/// retained chunk) so a rolled ring replays instead of tripping the brain's\n/// gap check.\nfn peek_first_line(\n    broker_name: &str,\n    stream_id: u64,\n    floor_seq: u64,\n) -> io::Result<Option<serde_json::Value>> {\n    let mut brain = connect(broker_name)?;\n    brain.net_stream_subscribe(stream_id, floor_seq)?;\n    let mut buf: Vec<u8> = Vec::new();\n    loop {\n        match brain.read_event()? {\n            BrokerEvent::NetStreamData {\n                stream_id: sid,\n                bytes,\n                ..\n            } if sid == stream_id => {\n                buf.extend_from_slice(&bytes);\n                if let Some(nl) = buf.iter().position(|&b| b == b'\\n') {\n                    return Ok(serde_json::from_slice(&buf[..nl]).ok());\n                }\n            }\n            BrokerEvent::NetStreamEof { stream_id: sid, .. } if sid == stream_id => {\n                // Finished without a complete line: classify what we have\n                // (a line without a trailing newline before EOF still counts).\n                return Ok(serde_json::from_slice(&buf).ok());\n            }\n            BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n            _ => {}\n        }\n    }\n}\n\n/// One claimed stream's worker: peek → classify → run the family's serve\n/// loop on a fresh brain connection.\n#[allow(clippy::too_many_arguments)]\nfn worker(\n    broker_name: &str,\n    stream_id: u64,\n    origin: &str,\n    floor_seq: u64,\n    finished: bool,\n    paths: &DispatchPaths,\n    registry: &RegistryHost,\n) -> DispatchOutcome {\n    if take_injected_transient() {\n        return DispatchOutcome::Failed(\n            \"injected transient worker-start failure (test valve)\".into(),\n        );\n    }\n    let line = match first_line(broker_name, stream_id, floor_seq) {\n        Ok(Some(v)) => v,\n        Ok(None) => return DispatchOutcome::Unknown,\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\n    };\n    let family = classify_first_line(&line);\n\n    // Gate round 1 (retire-on-sight, KNOWN-HAZARDS 7.41): a finished ATTACH\n    // row's exchange is over — the operator detached — and replaying it would\n    // take the live controller (pre-existing backlog + brain-down-detach\n    // orderings, which the Served-report path can never see). Report Served\n    // WITHOUT serving: the loop's completion path retires the row, so the\n    // backlog also drains from the table. Finished request/reply rows fall\n    // through — their FIN is protocol, not completion (see\n…\n}","startLine":175,"lineNumbers":[175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,null,369,null,371,372,null,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,null,658]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\dispatch.rs"}}},"isError":false,"timestamp":1784247448186}}
{"type":"message","id":"671d93ea","parentId":"bf99dd6d","timestamp":"2026-07-17T00:17:28.187Z","message":{"role":"toolResult","toolCallId":"call_mVUtSHdg5eHkcPv0VtdRZPJS|fc_05a4d8ea8a10ef0b016a5974980aec819894e96e94c0f0d98b","toolName":"read","content":[{"type":"text","text":"struct ViewerSink {\n…\n    evicted: Arc<AtomicBool>,\n    /// The writer thread handle (held for ownership; it exits when `tx` drops or\n    /// a socket write fails).\n    _writer: JoinHandle<()>,\n}\n\n/// The controller live-frame channel depth (frames). Deeper than a viewer's\n/// queue because the controller is the AUTHORITATIVE view — unlike a viewer it is\n/// NOT evicted on a SINGLE full `try_send` (W1 / REQ-HAZARD-INJECT-CONTROL-COEXIST).\n/// b4: the drain does ONE non-blocking `try_send` per chunk and NEVER blocks; a\n/// merely-slow controller DROPS chunks + falls behind the ring, and only a channel\n/// that stays full for [`CONTROLLER_WRITE_DEADLINE`] (tracked via\n/// [`ControllerSink::last_ok`]) is detached. Generous so a momentary slow consumer\n/// never trips the deadline.\nconst CONTROLLER_CHANNEL_DEPTH: usize = 4096;\n\n/// How long a CONTROLLER's channel may stay FULL (no successful handoff since\n/// [`ControllerSink::last_ok`]) before the drain declares it stalled and detaches it\n/// (W1, refined by b4 / REQ-HAZARD-VIEWER-STARVE-UNDER-CONTROLLER-BACKPRESSURE). This\n/// BOUNDS the wedge: a backed-up controller falls behind for at most this long before\n/// eviction — never forever (the v0.12.x root) — and the drain NEVER blocks or sleeps\n/// (a single off-lock `try_send` per chunk; see [`OutputLog::append`]). A live but\n/// merely slow operator lands a frame before this elapses (resetting `last_ok`) and is\n/// untouched.\nconst CONTROLLER_WRITE_DEADLINE: Duration = Duration::from_secs(5);\n\n/// How long a controller's writer thread may sit BLOCKED inside a single socket\n/// write — the brain subscriber suspended / black-holed — before a take/reattach\n/// or the `KIND_SESSIONS` reap stall-evicts it (LIFECYCLE-TRUTH W2,\n/// REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE). Distinct from and 3× longer than\n/// [`CONTROLLER_WRITE_DEADLINE`] on PURPOSE (doyle ruling Q1): that 5 s bound\n/// protects the fan-out against ONE per-client conn falling behind and is\n/// output-driven (the drain observes a Full channel); THIS bound is measured\n/// full-with-**zero writer progress** and covers the case the output-driven path\n/// can't — an IDLE session whose brain-subscriber conn is suspended produces no\n/// output, so `append`/`mark_controller_gone` never runs, and the stalled\n/// controller would otherwise latch `driven_by` forever (reattach refused, `--take`\n/// blocked). The brain aggregates every session + psyche + WAN feed, so its drain\n/// is bursty; 15 s tolerates a normal burst-stall while still bounding the wedge.\n/// A slow-but-DRAINING brain never trips it — the clock only advances while a write\n/// is genuinely in flight past the deadline (see [`ControllerSink::write_blocked_since`]).\n// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\nconst BRAIN_WRITE_DEADLINE: Duration = Duration::from_secs(15);\n\n/// The EFFECTIVE brain-write deadline. Production is [`BRAIN_WRITE_DEADLINE`]; the\n/// suspend-brain int rig shrinks it via `SPT_BRAIN_WRITE_DEADLINE_MS` so the\n/// structural outcome (a wedged controller is stall-evicted → take/reattach frees\n/// the slot) is provable in ~1 s instead of 15 (mirrors the\n/// `SPT_INJECT_COMMIT_DEADLINE_MS` env-knob precedent). Grants test wall-clock\n/// ONLY — never relaxes an assertion.\n// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\nfn brain_write_deadline() -> Duration {\n    match std::env::var(\"SPT_BRAIN_WRITE_DEADLINE_MS\") {\n        Ok(ms) => ms\n            .parse::<u64>()\n            .map(Duration::from_millis)\n            .unwrap_or(BRAIN_WRITE_DEADLINE),\n        Err(_) => BRAIN_WRITE_DEADLINE,\n    }\n}\n\n/// Bounded wait for a concurrent wake's session to register before a second wake for\n/// the same endpoint stops deduping and spawns itself (W4, REQ-SPAWN-COLLISION-GUARD-\n/// LIVE-DUP). A racing broker spawn registers its session in PTY-spawn time (ms), so a\n/// loser waits for the winner's session then no-op acks it (exactly one launch tree);\n/// only a spawn that OVERRAN this ceiling (presumed dead, its claim leaked) is taken\n…\n    /// call, or a call after the loop already exited, just fails the dial harmlessly.\n    /// Fills the honest gap that `serve` is otherwise unstoppable (the leaked-serve\n    /// load that starved the seed stop barrier — REQ-HAZARD-DAEMON-STOP-BARRIER).\n    // [impl->REQ-HAZARD-DAEMON-STOP-BARRIER]\n    pub fn stop(&self) {\n        self.stop.store(true, Ordering::Release);\n        let _ = LocalSocketTransport::connect(&self.name);\n    }\n\n    /// Accept exactly one connection and handle it on a spawned thread, returning\n    /// that thread's handle. The single-brain entry point the tests exercise.\n    pub fn serve_once(self: &Arc<Self>) -> io::Result<JoinHandle<()>> {\n        let conn = self.listener.accept()?;\n        let me = Arc::clone(self);\n        Ok(thread::spawn(move || {\n            let _ = me.handle_conn(conn);\n        }))\n    }\n\n    /// Number of currently hosted sessions (for tests / introspection).\n    pub fn session_count(&self) -> usize {\n        recover(&self.sessions).len()\n    }\n\n    /// TEST-SUPPORT seam (round-4 false_promote rig, doyle Option C ruling\n    /// `docs/UPDATE-WEDGE-R4-FALSE-PROMOTE-RULING.md`): install a STATICALLY-\n    /// wedged LOCAL controller (`by: None`) on hosted session `id` — a sink\n    /// whose `write_blocked_since` is seeded `blocked_ms_ago` in the past and\n    /// whose writer thread only drains its channel (it NEVER calls\n    /// [`BrokerConn::write`], so no watchdog is armed and the round-4 physical\n    /// bound cannot clear the injected wedge). Lets an integration rig\n    /// exercise the REQ-UPDATE-PROMOTE-DRAINED gate DECISION in isolation —\n    /// the physical bound itself is `brain_decouple.rs`'s concern. The wedge\n    /// drains through the REAL logical paths (a take's `stall_evict_controller`\n    /// or a `KIND_SESSIONS` reap), exactly like a production stall-evict.\n    /// Returns false if the session doesn't exist or the seed can't be built.\n    /// `#[doc(hidden)]` — test support, not a product surface.\n    // [impl->REQ-UPDATE-PROMOTE-DRAINED]\n    #[doc(hidden)]\n    pub fn test_seed_wedged_local_controller(&self, id: u64, blocked_ms_ago: u64) -> bool {\n        let log = {\n            let sessions = recover(&self.sessions);\n            match sessions.get(&id) {\n                Some(h) => Arc::clone(&h.log),\n                None => return false,\n            }\n        };\n        let Some(blocked) = Instant::now().checked_sub(Duration::from_millis(blocked_ms_ago))\n        else {\n            return false;\n        };\n        // A real (immediately-abandoned) socket pair for the sink's SharedSend\n        // identity — nothing ever writes to it (the fixture invariant), so the\n        // dropped peer is irrelevant; the stall signal is the injected\n        // `write_blocked_since`, not a real socket block.\n        static SEED_SEQ: AtomicU32 = AtomicU32::new(0);\n        let name = format!(\n            \"spt-daemon-wedgeseed-{}-{}.sock\",\n            std::process::id(),\n            SEED_SEQ.fetch_add(1, Ordering::Relaxed)\n        );\n        let Ok(listener) = LocalSocketTransport::bind(&name) else {\n            return false;\n        };\n        let Ok(_client) = LocalSocketTransport::connect(&name) else {\n            return false;\n        };\n        let Ok(server) = listener.accept() else {\n            return false;\n        };\n        let (_recv, send_half) = server.split();\n        let send: SharedSend = Arc::new(BrokerConn::new(send_half, brain_write_deadline()));\n        let (tx, rx) = sync_channel::<CtrlMsg>(CONTROLLER_CHANNEL_DEPTH);\n        // Drain-forever (never a socket write, never finishes while tx lives):\n        // stays un-reapable as a live-but-wedged writer even under child output.\n        let writer = thread::spawn(move || for _ in rx.iter() {});\n        recover_log(&log).controller = Some(ControllerSink {\n            tx,\n            send,\n            by: None,\n            last_ok: Instant::now(),\n            write_blocked_since: Arc::new(Mutex::new(Some(blocked))),\n            _writer: writer,\n        });\n        true\n    }"}],"details":{"displayContent":{"text":"struct ViewerSink {\n…\n    evicted: Arc<AtomicBool>,\n    /// The writer thread handle (held for ownership; it exits when `tx` drops or\n    /// a socket write fails).\n    _writer: JoinHandle<()>,\n}\n\n/// The controller live-frame channel depth (frames). Deeper than a viewer's\n/// queue because the controller is the AUTHORITATIVE view — unlike a viewer it is\n/// NOT evicted on a SINGLE full `try_send` (W1 / REQ-HAZARD-INJECT-CONTROL-COEXIST).\n/// b4: the drain does ONE non-blocking `try_send` per chunk and NEVER blocks; a\n/// merely-slow controller DROPS chunks + falls behind the ring, and only a channel\n/// that stays full for [`CONTROLLER_WRITE_DEADLINE`] (tracked via\n/// [`ControllerSink::last_ok`]) is detached. Generous so a momentary slow consumer\n/// never trips the deadline.\nconst CONTROLLER_CHANNEL_DEPTH: usize = 4096;\n\n/// How long a CONTROLLER's channel may stay FULL (no successful handoff since\n/// [`ControllerSink::last_ok`]) before the drain declares it stalled and detaches it\n/// (W1, refined by b4 / REQ-HAZARD-VIEWER-STARVE-UNDER-CONTROLLER-BACKPRESSURE). This\n/// BOUNDS the wedge: a backed-up controller falls behind for at most this long before\n/// eviction — never forever (the v0.12.x root) — and the drain NEVER blocks or sleeps\n/// (a single off-lock `try_send` per chunk; see [`OutputLog::append`]). A live but\n/// merely slow operator lands a frame before this elapses (resetting `last_ok`) and is\n/// untouched.\nconst CONTROLLER_WRITE_DEADLINE: Duration = Duration::from_secs(5);\n\n/// How long a controller's writer thread may sit BLOCKED inside a single socket\n/// write — the brain subscriber suspended / black-holed — before a take/reattach\n/// or the `KIND_SESSIONS` reap stall-evicts it (LIFECYCLE-TRUTH W2,\n/// REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE). Distinct from and 3× longer than\n/// [`CONTROLLER_WRITE_DEADLINE`] on PURPOSE (doyle ruling Q1): that 5 s bound\n/// protects the fan-out against ONE per-client conn falling behind and is\n/// output-driven (the drain observes a Full channel); THIS bound is measured\n/// full-with-**zero writer progress** and covers the case the output-driven path\n/// can't — an IDLE session whose brain-subscriber conn is suspended produces no\n/// output, so `append`/`mark_controller_gone` never runs, and the stalled\n/// controller would otherwise latch `driven_by` forever (reattach refused, `--take`\n/// blocked). The brain aggregates every session + psyche + WAN feed, so its drain\n/// is bursty; 15 s tolerates a normal burst-stall while still bounding the wedge.\n/// A slow-but-DRAINING brain never trips it — the clock only advances while a write\n/// is genuinely in flight past the deadline (see [`ControllerSink::write_blocked_since`]).\n// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\nconst BRAIN_WRITE_DEADLINE: Duration = Duration::from_secs(15);\n\n/// The EFFECTIVE brain-write deadline. Production is [`BRAIN_WRITE_DEADLINE`]; the\n/// suspend-brain int rig shrinks it via `SPT_BRAIN_WRITE_DEADLINE_MS` so the\n/// structural outcome (a wedged controller is stall-evicted → take/reattach frees\n/// the slot) is provable in ~1 s instead of 15 (mirrors the\n/// `SPT_INJECT_COMMIT_DEADLINE_MS` env-knob precedent). Grants test wall-clock\n/// ONLY — never relaxes an assertion.\n// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\nfn brain_write_deadline() -> Duration {\n    match std::env::var(\"SPT_BRAIN_WRITE_DEADLINE_MS\") {\n        Ok(ms) => ms\n            .parse::<u64>()\n            .map(Duration::from_millis)\n            .unwrap_or(BRAIN_WRITE_DEADLINE),\n        Err(_) => BRAIN_WRITE_DEADLINE,\n    }\n}\n\n/// Bounded wait for a concurrent wake's session to register before a second wake for\n/// the same endpoint stops deduping and spawns itself (W4, REQ-SPAWN-COLLISION-GUARD-\n/// LIVE-DUP). A racing broker spawn registers its session in PTY-spawn time (ms), so a\n/// loser waits for the winner's session then no-op acks it (exactly one launch tree);\n/// only a spawn that OVERRAN this ceiling (presumed dead, its claim leaked) is taken\n…\n    /// call, or a call after the loop already exited, just fails the dial harmlessly.\n    /// Fills the honest gap that `serve` is otherwise unstoppable (the leaked-serve\n    /// load that starved the seed stop barrier — REQ-HAZARD-DAEMON-STOP-BARRIER).\n    // [impl->REQ-HAZARD-DAEMON-STOP-BARRIER]\n    pub fn stop(&self) {\n        self.stop.store(true, Ordering::Release);\n        let _ = LocalSocketTransport::connect(&self.name);\n    }\n\n    /// Accept exactly one connection and handle it on a spawned thread, returning\n    /// that thread's handle. The single-brain entry point the tests exercise.\n    pub fn serve_once(self: &Arc<Self>) -> io::Result<JoinHandle<()>> {\n        let conn = self.listener.accept()?;\n        let me = Arc::clone(self);\n        Ok(thread::spawn(move || {\n            let _ = me.handle_conn(conn);\n        }))\n    }\n\n    /// Number of currently hosted sessions (for tests / introspection).\n    pub fn session_count(&self) -> usize {\n        recover(&self.sessions).len()\n    }\n\n    /// TEST-SUPPORT seam (round-4 false_promote rig, doyle Option C ruling\n    /// `docs/UPDATE-WEDGE-R4-FALSE-PROMOTE-RULING.md`): install a STATICALLY-\n    /// wedged LOCAL controller (`by: None`) on hosted session `id` — a sink\n    /// whose `write_blocked_since` is seeded `blocked_ms_ago` in the past and\n    /// whose writer thread only drains its channel (it NEVER calls\n    /// [`BrokerConn::write`], so no watchdog is armed and the round-4 physical\n    /// bound cannot clear the injected wedge). Lets an integration rig\n    /// exercise the REQ-UPDATE-PROMOTE-DRAINED gate DECISION in isolation —\n    /// the physical bound itself is `brain_decouple.rs`'s concern. The wedge\n    /// drains through the REAL logical paths (a take's `stall_evict_controller`\n    /// or a `KIND_SESSIONS` reap), exactly like a production stall-evict.\n    /// Returns false if the session doesn't exist or the seed can't be built.\n    /// `#[doc(hidden)]` — test support, not a product surface.\n    // [impl->REQ-UPDATE-PROMOTE-DRAINED]\n    #[doc(hidden)]\n    pub fn test_seed_wedged_local_controller(&self, id: u64, blocked_ms_ago: u64) -> bool {\n        let log = {\n            let sessions = recover(&self.sessions);\n            match sessions.get(&id) {\n                Some(h) => Arc::clone(&h.log),\n                None => return false,\n            }\n        };\n        let Some(blocked) = Instant::now().checked_sub(Duration::from_millis(blocked_ms_ago))\n        else {\n            return false;\n        };\n        // A real (immediately-abandoned) socket pair for the sink's SharedSend\n        // identity — nothing ever writes to it (the fixture invariant), so the\n        // dropped peer is irrelevant; the stall signal is the injected\n        // `write_blocked_since`, not a real socket block.\n        static SEED_SEQ: AtomicU32 = AtomicU32::new(0);\n        let name = format!(\n            \"spt-daemon-wedgeseed-{}-{}.sock\",\n            std::process::id(),\n            SEED_SEQ.fetch_add(1, Ordering::Relaxed)\n        );\n        let Ok(listener) = LocalSocketTransport::bind(&name) else {\n            return false;\n        };\n        let Ok(_client) = LocalSocketTransport::connect(&name) else {\n            return false;\n        };\n        let Ok(server) = listener.accept() else {\n            return false;\n        };\n        let (_recv, send_half) = server.split();\n        let send: SharedSend = Arc::new(BrokerConn::new(send_half, brain_write_deadline()));\n        let (tx, rx) = sync_channel::<CtrlMsg>(CONTROLLER_CHANNEL_DEPTH);\n        // Drain-forever (never a socket write, never finishes while tx lives):\n        // stays un-reapable as a live-but-wedged writer even under child output.\n        let writer = thread::spawn(move || for _ in rx.iter() {});\n        recover_log(&log).controller = Some(ControllerSink {\n            tx,\n            send,\n            by: None,\n            last_ok: Instant::now(),\n            write_blocked_since: Arc::new(Mutex::new(Some(blocked))),\n            _writer: writer,\n        });\n        true\n    }","startLine":118,"lineNumbers":[118,null,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,null,2760,2761,2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2781,2782,2783,2784,2785,2786,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\broker.rs"}}},"isError":false,"timestamp":1784247448186}}
{"type":"message","id":"fcbd1770","parentId":"671d93ea","timestamp":"2026-07-17T00:17:28.194Z","message":{"role":"toolResult","toolCallId":"call_xPWvIuGIyrYN2XGKs0hZofFu|fc_05a4d8ea8a10ef0b016a5974980ae08198a2d8c9d16e21c659","toolName":"grep","content":[{"type":"text","text":"# CHANGELOG.md\n 42|\n*43|## [0.34.0] - 2026-07-16\n 44|\n 45|A stability fix for live remote sessions during a daemon update.\n 46|\n\n# crates/\n\n## spt-daemon/\n### Cargo.toml\n 7|\n*8|# Test-only REDISPATCH-TRUTH dispatcher-generation fixture for\n*9|# `tests/redispatch.rs` (REQ-HAZARD-REDISPATCH-CONTROL-STEAL /\n 10|# REQ-STREAM-OPENER-DURABLE / REQ-DISPATCH-CLAIM-RETRY): the REAL\n 11|# `run_dispatch_loop` as a KILLABLE child process — a killed generation drops\n 12|# its workers' broker conns exactly like a production brain death. Same\n\n### src/\n#### brain.rs\n 1154|\n*1155|    /// Query the broker's brain-subscriber stall-evict tally (LIFECYCLE-TRUTH W2\n 1156|    /// observability rider, REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE): `(count,\n 1157|    /// last_ms)` — how many controllers were stall-evicted for a suspended/black-holed\n 1158|    /// brain conn since boot, and when the most recent fired. `None` when the broker\n...\n 1445|\n*1446|    /// Retire a completed stream row from redispatch eligibility (ADR-0038 A).\n 1447|    /// The dispatcher calls this when a serve loop runs to completion, so no\n 1448|    /// future dispatcher generation rediscovers and replays the stream\n 1449|    /// (KNOWN-HAZARDS 7.41). Best-effort at the caller: an older broker\n...\n 1451|    /// broker to cycle onto the new binary).\n*1452|    // [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n 1453|    pub fn net_stream_retire(&mut self, stream_id: u64) -> io::Result<bool> {\n 1454|        self.send(\n 1455|            KIND_NET_STREAM_RETIRE,\n#### brainproc.rs\n 476|    /// brain round-trip): the supervisor promotes a ready candidate only once this is\n*477|    /// `true`, so `brain.ready` arriving inside the W2 `BRAIN_WRITE_DEADLINE` window\n 478|    /// can no longer promote onto a still-frozen control plane (the 22:47 false-\n 479|    /// promote). Fail-safe toward DRAINED (`true`) where there is nothing to read — a\n 480|    /// net-less broker, no hosted sessions, or [`NoTrialEnv`] — so the gate never\n...\n 667|/// NOT a promote: the W2 stall-evict only BOUNDS the false-promote window to\n*668|/// `BRAIN_WRITE_DEADLINE`, so a new brain can signal ready while the OLD generation's\n 669|/// local controller conn is still wedged (the 22:47 apply \"promoted\" onto a frozen\n 670|/// control plane). So readiness is LATCHED (`ready_seen` — a candidate that stamped\n 671|/// ready then exited is not demoted, preserving the ready-then-exit-still-promotes\n...\n 676|/// The normal case drains well inside the window — W2 bounds a real drain to\n*677|/// `BRAIN_WRITE_DEADLINE` (15 s) < [`SUPERVISE_HEALTHY_RUN`] (30 s) — and a cleanly-\n 678|/// closed old conn drains at once. `child.try_wait()` is consulted only while\n 679|/// NOT-yet-ready, so a ready-then-exited candidate still promotes once drained.\n 680|fn run_trial(\n#### broker.rs\n 171|// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*172|const BRAIN_WRITE_DEADLINE: Duration = Duration::from_secs(15);\n 173|\n*174|/// The EFFECTIVE brain-write deadline. Production is [`BRAIN_WRITE_DEADLINE`]; the\n*175|/// suspend-brain int rig shrinks it via `SPT_BRAIN_WRITE_DEADLINE_MS` so the\n 176|/// structural outcome (a wedged controller is stall-evicted → take/reattach frees\n 177|/// the slot) is provable in ~1 s instead of 15 (mirrors the\n 178|/// `SPT_INJECT_COMMIT_DEADLINE_MS` env-knob precedent). Grants test wall-clock\n...\n 180|// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*181|fn brain_write_deadline() -> Duration {\n*182|    match std::env::var(\"SPT_BRAIN_WRITE_DEADLINE_MS\") {\n 183|        Ok(ms) => ms\n 184|            .parse::<u64>()\n 185|            .map(Duration::from_millis)\n*186|            .unwrap_or(BRAIN_WRITE_DEADLINE),\n*187|        Err(_) => BRAIN_WRITE_DEADLINE,\n 188|    }\n 189|}\n 190|\n...\n 251|\n*252|/// Broker-global tally of brain-subscriber stall-evicts (W2 observability rider,\n 253|/// doyle ruling Q3): the count since broker boot + the wall-ms of the most recent.\n 254|/// A brain that never returns is then a DIAGNOSABLE fact — surfaced on `daemon\n 255|/// status` (via [`Broker::stall_evict_stats`]) alongside the per-evict broker log\n...\n 515|    /// ([`OutputLog::controller_stalled`]) sees a `Some` older than\n*516|    /// [`BRAIN_WRITE_DEADLINE`] as a writer WEDGED on a suspended/black-holed brain\n 517|    /// conn and stall-evicts it — the signal `last_ok` (channel-handoff time) cannot\n 518|    /// give: an IDLE controller (writer parked on `rx.recv()`, `None` here) and a\n 519|    /// BLOCKED one (writer stuck in the socket write, `Some` here) both leave\n...\n 1004|        // writer is BLOCKED (not exited) on a suspended brain conn past\n*1005|        // BRAIN_WRITE_DEADLINE is also reaped here, so the honest `KIND_SESSIONS`\n 1006|        // truth + the off-lock converge_perch_stamps release its stale `driven_by`\n 1007|        // stamp even when nobody take/reattaches. Deferred stamp: the reap runs in\n 1008|        // the multi-session snapshot closure (no I/O under the shared sessions lock).\n...\n 1051|\n*1052|    /// Stall-evict a controller wedged past [`BRAIN_WRITE_DEADLINE`]: clear the slot\n 1053|    /// and re-stamp `driven_by`/`controlled` (the BROKER-side release — no brain\n 1054|    /// round-trip, so `controlled-by` can never latch behind a dead transit) and\n 1055|    /// record the evict for observability (broker log now; W3 persists the stderr,\n...\n 1064|    fn stall_evict_controller(&mut self, now: Instant, stamp: StampMode) -> bool {\n*1065|        let deadline = brain_write_deadline();\n 1066|        if !self.controller_write_stalled(now, deadline) {\n 1067|            return false;\n 1068|        }\n...\n 1167|        // W2 decouple (REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE): a controller WEDGED\n*1168|        // on a suspended/black-holed brain conn past BRAIN_WRITE_DEADLINE is\n 1169|        // stall-evicted HERE — the take/reattach self-heals against broker truth\n 1170|        // without waiting for new output (the output-driven mark_controller_gone\n 1171|        // never fires on an idle session). Inline stamp: this path already writes the\n...\n 1435|/// write, or a gate-wait behind one exhausted the bound) IS the\n*1436|/// brain-subscriber stall-evict fact the W2 tally counts. Pre-round-4 that\n 1437|/// wedge aged until a logical sampler (`stall_evict_controller`) observed it;\n 1438|/// the physical bound now fires FIRST, so the tally is recorded here — same\n 1439|/// event class, same `daemon status` surface. An ORGANIC write failure (peer\n...\n 2830|        let (_recv, send_half) = server.split();\n*2831|        let send: SharedSend = Arc::new(BrokerConn::new(send_half, brain_write_deadline()));\n 2832|        let (tx, rx) = sync_channel::<CtrlMsg>(CONTROLLER_CHANNEL_DEPTH);\n 2833|        // Drain-forever (never a socket write, never finishes while tx lives):\n 2834|        // stays un-reapable as a live-but-wedged writer even under child output.\n...\n 2934|        let now = Instant::now();\n*2935|        let deadline = brain_write_deadline();\n 2936|        let sessions = match self.sessions.lock() {\n 2937|            Ok(g) => g,\n 2938|            Err(p) => p.into_inner(),\n...\n 2996|        // [impl->REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*2997|        let send: SharedSend = Arc::new(BrokerConn::new(send, brain_write_deadline()));\n 2998|        // Base attribution fact (F-039 leg b): broker clients are brains; role\n*2999|        // facts (controller/viewer/presence/stream subscriber) accrete at the\n 3000|        // attach sites. [impl->REQ-CONN-POISON-ATTRIBUTION]\n 3001|        send.describe(\"role=brain\");\n 3002|\n...\n 3872|\n*3873|    /// Answer the brain-subscriber stall-evict tally query (LIFECYCLE-TRUTH W2\n 3874|    /// observability rider) from the broker-global counters — so `daemon status` can\n 3875|    /// surface a brain that never returned as a diagnosable fact, not a silent absence.\n 3876|    // [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n...\n 4314|\n*4315|    /// Retire a completed stream row from redispatch eligibility (ADR-0038 A):\n 4316|    /// the dispatcher reports a serve loop that ran to completion, and the row\n 4317|    /// leaves the table so no future dispatcher generation can rediscover and\n 4318|    /// replay it (the KNOWN-HAZARDS 7.41 control-steal class).\n#### conn.rs\n 424|    /// deadline (gate-wait + OS write completion) — the broker passes its\n*425|    /// `brain_write_deadline()` (`SPT_BRAIN_WRITE_DEADLINE_MS` knob).\n 426|    pub(crate) fn new(half: SendHalf, bound: Duration) -> Self {\n 427|        let raw = raw_of(&half);\n 428|        let inner = Arc::new(Inner {\n#### dispatch.rs\n 233|/// \"excluded by lifecycle state\" half): is a `finished` row TERMINAL for\n*234|/// redispatch — retire unserved, never replay?\n 235|///\n 236|/// `finished` alone is NOT the answer, and a bare `s.finished` claim filter\n 237|/// would be a regression: the request/reply families FIN their send WITH the\n...\n 250|/// else = a pending request — serve it.\n*251|// [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n*252|// [impl->REQ-HAZARD-REDISPATCH-CONTROL-STEAL]\n 253|fn finished_row_is_terminal(family: StreamFamily, finished: bool) -> bool {\n 254|    finished && family == StreamFamily::Attach\n 255|}\n...\n 343|                if matches!(outcome, DispatchOutcome::Served(_)) {\n*344|                    // Retirement (ADR-0038 A, REQ-REDISPATCH-FINISHED-RETIRE):\n 345|                    // this stream's exchange is over — take its row out of\n 346|                    // every FUTURE dispatcher generation's enumeration (the\n 347|                    // KNOWN-HAZARDS 7.41 control-steal class). Best-effort:\n...\n 1002|\n*1003|    // [unit->REQ-REDISPATCH-FINISHED-RETIRE] the lifecycle+family\n 1004|    // discriminator (gate round 1): a finished ATTACH is terminal for\n*1005|    // redispatch (the operator detached — replay = the 7.41 controller\n 1006|    // steal), while a finished REQUEST/REPLY stream is NOT — sync and update\n 1007|    // requesters FIN their send WITH the request (sync.rs request_sync /\n 1008|    // propagate.rs fetch_update) and await the reply, so a bare finished\n#### livehost.rs\n 1016|            // spawns a real release `spt daemon brain` child cfg(test) can't reach — the\n*1017|            // SPT_BRAIN_WRITE_DEADLINE_MS precedent. Still honors `stop` on a tight tick.\n 1018|            // [impl->REQ-UPDATE-TRIAL-DRAIN-DRIVE]\n 1019|            if std::env::var_os(\"SPT_LIVEHOST_RECONCILE_DISABLE\").is_some() {\n 1020|                std::thread::sleep(Duration::from_millis(100));\n#### msg.rs\n 101|pub const KIND_BROKER_IMAGE_REPLY: &str = \"broker-image-reply\";\n*102|/// Brain→broker query: the brain-subscriber stall-evict tally (LIFECYCLE-TRUTH W2\n 103|/// observability rider, REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE) — how many\n 104|/// controllers were stall-evicted for a suspended/black-holed brain conn since\n 105|/// boot, and when the most recent fired. Surfaced on `daemon status` so a brain\n...\n 152|/// the caller treats retire as best-effort).\n*153|// [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n 154|pub const KIND_NET_STREAM_RETIRE: &str = \"net-stream-retire\";\n 155|/// Broker→brain: the retire ack (`removed` = a row actually left the table).\n 156|pub const KIND_NET_STREAM_RETIRED: &str = \"net-stream-retired\";\n...\n 571|/// `stall-evicts-reply` payload (LIFECYCLE-TRUTH W2, REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE):\n*572|/// the broker-global brain-subscriber stall-evict tally. Both fields defaulted so a\n 573|/// truncated/older reply still decodes (2.3 forward-compat).\n 574|#[derive(Debug, Clone, Serialize, Deserialize)]\n 575|pub struct StallEvictsReply {\n...\n 808|pub struct NetStreamRetireReq {\n*809|    /// The completed stream to retire from redispatch eligibility.\n 810|    pub stream_id: u64,\n 811|}\n 812|\n#### nethost.rs\n 544|    /// is load-bearing; physical teardown belongs to the conn-close sweep only.\n*545|    // [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n 546|    retired: std::sync::atomic::AtomicBool,\n 547|}\n 548|\n...\n 707|        // else reads a dead conn's stream ring.\n*708|        // [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n 709|        sh_close\n 710|            .streams\n 711|            .lock()\n...\n 1560|    /// call newly retired the row (idempotent; absent row = false).\n*1561|    // [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n 1562|    pub fn retire_stream(&self, stream_id: u64) -> bool {\n 1563|        let Some(entry) = self\n 1564|            .shared\n...\n 2091|\n*2092|    // [unit->REQ-REDISPATCH-FINISHED-RETIRE] retirement hides EXACTLY the\n 2093|    // named row from dispatch eligibility: the retired stream leaves the\n 2094|    // dispatch enumeration (stream_infos) while the active sibling stays\n 2095|    // claimable, a second retire is a no-op, and the pinned-opener query\n...\n 2130|\n*2131|    // [unit->REQ-REDISPATCH-FINISHED-RETIRE] retirement never severs the\n 2132|    // transport: a reply sent AFTER the row was retired still flushes to the\n 2133|    // peer. This is the field race's lost ordering made deterministic — the\n 2134|    // worker's reply send is fire-and-forget (brain returns before the broker\n...\n 2176|\n*2177|    // [unit->REQ-REDISPATCH-FINISHED-RETIRE] a dead CONNECTION retires its\n 2178|    // stream rows with it: the closed-watcher sweep leaves nothing for a\n 2179|    // future dispatcher generation to replay on a transport that can never\n 2180|    // serve again (the field bug's historical-rows-forever half).\n\n### tests/\n#### brain_decouple.rs\n 21|//! (a peer that stopped draining). This is the same analog the 7.12 wedge gate uses.\n*22|//! `SPT_BRAIN_WRITE_DEADLINE_MS` shrinks the 15 s production deadline so the\n 23|//! structural outcome is provable in ~1 s (the deadline knob grants wall-clock only;\n 24|//! it never relaxes an assertion).\n 25|//!\n...\n 46|//!\n*47|//! Shares ONE process-global `SPT_HOME` + the `SPT_BRAIN_WRITE_DEADLINE_MS` env, and\n 48|//! spins a REAL broker + PTY child. Run isolated with\n 49|//! `cargo nextest run --test brain_decouple` (process-per-test — CI's path) or\n 50|//! `cargo test --test brain_decouple -- --test-threads=1`. Never a bare\n...\n 227|    // stall-evict can free the slot in the window this test acts in.\n*228|    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\n 229|\n 230|    let name = unique_name();\n 231|    let broker = Broker::bind(&name).expect(\"bind broker\");\n...\n 476|    // Shrink the brain-write deadline so the wedged writer is \"stalled\" in ~400 ms.\n*477|    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\n 478|\n 479|    let name = unique_name();\n 480|    let broker = Broker::bind(&name).expect(\"bind broker\");\n#### brain_resume_conn_deadlock.rs\n 256|/// which went stale after the r4 Option-C fix bounded every physical-conn write (the\n*257|/// `BrokerConn` watchdog retires a blocked write at `brain_write_deadline()`), so a\n 258|/// non-draining subscriber no longer starves the heartbeat to ~0 and the timing-based\n 259|/// proof was invalidated — it failed REAL on kitsubito Linux CI (\"worst completed 10\").\n 260|/// doyle ruling `docs/UPDATE-WEDGE-R4-STALE-GUARD-RULING.md` (2026-07-10). The two\n#### conn_blackhole_lifecycle.rs\n 70|//!\n*71|//! Shares ONE process-global `SPT_HOME` + `SPT_BRAIN_WRITE_DEADLINE_MS`, spins a\n 72|//! REAL broker + TWO PTY children. HEAVY class. Run isolated with\n 73|//! `cargo nextest run -p spt-daemon --test conn_blackhole_lifecycle` (CI's path)\n 74|//! or `cargo test --test conn_blackhole_lifecycle -- --test-threads=1`. NEVER a\n...\n 253|    // grants wall-clock only; it never relaxes an assertion).\n*254|    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\n 255|\n 256|    let name = unique_name();\n 257|    let broker = Broker::bind(&name).expect(\"bind broker\");\n#### false_promote.rs\n 8|//! W2's stall-evict (REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE) only BOUNDS the false-\n*9|//! promote window to `BRAIN_WRITE_DEADLINE` (15 s) — it does NOT close it. A new brain\n 10|//! can signal `brain.ready` INSIDE that window while the OLD generation's local\n 11|//! controller conn is still wedged (blocked writes pending), so `update apply`\n 12|//! \"promotes\" onto a still-frozen control plane (the incident-night 22:47 apply). The\n...\n 22|//! write an independent watchdog that CANCELS + retires a wedged write at the SAME\n*23|//! `brain_write_deadline()` bound — so a real parked writer now self-heals at the\n 24|//! deadline and the rig's persistent-wedge precondition cannot exist (that is the\n 25|//! fix working, not a regression; the 22:47 permanent-frozen-plane class is dead by\n 26|//! construction). Ruling `docs/UPDATE-WEDGE-R4-FALSE-PROMOTE-RULING.md`: this rig\n...\n 33|//! rides the REAL logical path (the take's `stall_evict_controller`), unchanged.\n*34|//! `SPT_BRAIN_WRITE_DEADLINE_MS` still shrinks the 15 s deadline (the knob grants\n 35|//! wall-clock only; it never relaxes an assertion).\n 36|//!\n 37|//! ## What this rig asserts (the DRAINED invariant)\n...\n 48|//!\n*49|//! Shares ONE process-global `SPT_HOME` + the `SPT_BRAIN_WRITE_DEADLINE_MS` env and\n 50|//! spins a REAL broker + PTY child. Run isolated with\n 51|//! `cargo nextest run --test false_promote` (process-per-test — CI's path) or\n 52|//! `cargo test --test false_promote -- --test-threads=1`. Never a bare\n...\n 240|    // ~400 ms instead of 15 s (the structural outcome, fast + deterministic).\n*241|    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\n 242|\n 243|    let name = unique_name();\n 244|    let broker = Broker::bind(&name).expect(\"bind broker\");\n#### redispatch.rs\n*1|//! REDISPATCH-TRUTH W1 — the three production-path regressions (ADR-0038 D,\n 2|//! KNOWN-HAZARDS 7.41): every leg drives the REAL\n 3|//! `dispatch::run_dispatch_loop` (as a killable `dispatch_fixture` child —\n 4|//! a dispatcher GENERATION whose death drops its workers' broker conns\n...\n 211|\n*212|// [int->REQ-HAZARD-REDISPATCH-CONTROL-STEAL] D1 — the field bug, end to end\n 213|// through PRODUCTION rediscovery: a finished historical Attach and a current\n 214|// active Attach on the same endpoint/origin; only the dispatcher generation\n 215|// restarts. The historical stream must neither take nor clear the current\n...\n 219|// and the retired row is GONE from the broker's enumeration\n*220|// (REQ-REDISPATCH-FINISHED-RETIRE observed at the seam that matters).\n 221|#[test]\n 222|fn finished_historical_attach_neither_takes_nor_clears_current_controller() {\n 223|    init_home();\n...\n 302|\n*303|// [int->REQ-HAZARD-REDISPATCH-CONTROL-STEAL] D1b (gate round 1) — the\n 304|// finished-UNRETIRED orderings the Served-report path can never see: the\n 305|// pre-existing backlog and the brain-down-detach window. s1 is attached and\n 306|// driven under gen1, gen1 is KILLED mid-serve (no Served report), THEN the\n...\n 315|// ever being served (retire-on-sight drains the backlog).\n*316|// [int->REQ-REDISPATCH-FINISHED-RETIRE]\n 317|#[test]\n 318|fn finished_unretired_attach_is_skipped_and_drained_not_replayed() {\n 319|    init_home();\n...\n 413|\n*414|// [int->REQ-REDISPATCH-FINISHED-RETIRE] the GUARD leg for the family-aware\n 415|// discriminator (gate round 1 counter-check): a request/reply stream reads\n 416|// `finished=true` the moment its requester FINs with the request — sync's\n 417|// `request_sync` does exactly that — so a finished row must NOT be blanket-\n\n#### fixtures/\n##### dispatch_fixture.rs\n*1|//! Test-only dispatcher-generation fixture (REDISPATCH-TRUTH D-regressions,\n*2|//! `tests/redispatch.rs`): runs the REAL `dispatch::run_dispatch_loop` against\n 3|//! the named broker, as a child process the test can KILL — a killed\n 4|//! generation drops its workers' broker connections exactly like a production\n 5|//! brain death, which no in-process thread can simulate (a parked serve-loop\n\n## spt/\n\n### src/\n#### cli.rs\n 4161|    broker_stale: Option<bool>,\n*4162|    /// LIFECYCLE-TRUTH W2 observability rider: brain-subscriber stall-evicts since\n 4163|    /// broker boot (a controller detached for a suspended/black-holed brain conn).\n 4164|    /// `None` when the daemon is down or the broker is too old to report; `Some(0)`\n 4165|    /// = healthy, none evicted.\n...\n 4228|/// LIFECYCLE-TRUTH W2 observability rider: the `daemon status` line reporting\n*4229|/// brain-subscriber stall-evicts (a controller detached because its brain conn was\n 4230|/// suspended / black-holed). `None` = the broker couldn't be queried / is too old\n 4231|/// (silent — no line). `Some(0)` renders a healthy line so \"none\" is an explicit\n 4232|/// fact, not an absence; `Some(n>0)` names the count + the most-recent time so a\n...\n 4506|        // [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE] W2 observability rider:\n*4507|        // surface brain-subscriber stall-evicts so a suspended/wedged brain that\n 4508|        // never returned is a diagnosable fact, not a silent absence.\n 4509|        if let Some(line) = render_stall_evict_line(stall_stats) {\n 4510|            println!(\"{line}\");\n\n### tests/\n#### resume_no_control_steal_e2e.rs\n 343|    // reconcile loop so the boot is a clean, isolated real brain.\n*344|    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"800\");\n 345|    std::env::set_var(\"SPT_LIVEHOST_RECONCILE_DISABLE\", \"1\");\n 346|\n 347|    let spt_bin = PathBuf::from(env!(\"CARGO_BIN_EXE_spt\"));\n#### trial_drain_drive_e2e.rs\n 45|//! reads only `by.is_none()` + `write_blocked_since`, so it cannot tell the two apart\n*46|//! (doyle FINALIZE). `SPT_BRAIN_WRITE_DEADLINE_MS` shrinks the 15s maturity to ~800ms\n 47|//! (the knob grants wall-clock only — it never relaxes an assertion); the deadline is\n 48|//! read BROKER-side, in THIS process's in-proc broker where the reap + the drained read\n 49|//! both run.\n...\n 139|/// detach (5s, tripped only by a channel that stays FULL as new chunks arrive) never fires,\n*140|/// and the wedge PERSISTS until the `BRAIN_WRITE_DEADLINE` reap (the fix's heartbeat drive)\n 141|/// clears it. This is the FAITHFUL analog of the field's idle-brain black-hole (broker.rs\n*142|/// BRAIN_WRITE_DEADLINE doc): a suspended brain conn with a stuck write on an idle session.\n 143|/// A CONTINUOUS flood (false_promote.rs) instead trips the 5s output-driven detach and only\n 144|/// works because that rig finishes < 5s — the slower subprocess rig would self-heal.\n 145|fn burst_then_idle_spawn_req(endpoint: &str) -> SpawnReq {\n...\n 339|    // the drained read both run here). The knob grants wall-clock only.\n*340|    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"800\");\n 341|    // Silence the subprocess brain's livehost reconcile loop (inherited by the child).\n 342|    // livehost's own `brain.sessions()` poll (every 5s) would OTHERWISE drive the same\n 343|    // broker reap and MASK the fix — reproducing the field's livehost-silent trial\n\n# docs/\n## KNOWN-HAZARDS.md\n 626|- **Failure (paid-for, rig-CONFIRMED 2026-07-06/07 — `NtSuspendProcess` on the brain, no update involved):** a controller's writer thread does a BLOCKING socket write to its brain subscriber conn. When that brain is suspended (or black-holed) the write never returns. The output-driven eviction path (`append` → `mark_controller_gone`, bounded by 7.12's `CONTROLLER_WRITE_DEADLINE`) only fires on NEW output, and `reap_dead_controller` (7.29 companion) only caught a writer that had EXITED — so a contro...\n*627|- **Invariant:** no broker client ever observes a wedge because the BRAIN stalled. (1) The controller's writer publishes its IN-FLIGHT-write window (`write_blocked_since`: `Some(Instant)` set immediately before the blocking `write_frame`, `None` after — the mutex never held ACROSS the write); a reader sees a `Some` older than `BRAIN_WRITE_DEADLINE` (15 s = 3× the 7.12 controller bound, measured full-with-**zero writer progress**, so a slow-but-DRAINING brain never trips it) as a WEDGED writer and stal...\n 628|- **spt-core mapping:** `broker.rs` — `ControllerSink::write_blocked_since` + `controller_writer` (marks the in-flight window around both the initial-batch and live-loop writes) + `controller_write_stalled` (pure predicate over injected `now`/`deadline`) + `stall_evict_controller` (Inline stamp at `resolve_subscribe`, Deferred stamp at `reap_dead_controller` so the reap closure does no I/O under the shared sessions lock) + `record_stall_evict`/`stall_evict_stats` (the tally) + `dispatch_stall_evicts` (...\n*629|- **Source:** LIFECYCLE-TRUTH W2 (doyle rig `NtSuspendProcess` root + design ruling `docs/W2-DESIGN-RULING.md` @60ec0ed — minimal-plus scope, `BRAIN_WRITE_DEADLINE` 15 s, passive resubscribe + observability rider; todlando build 2026-07-07). The v0.27→v0.28 update-wedge night's flagship defect.\n 630|\n 631|### 7.37 The Layer-1 settle-gate must RE-ARM per delivery on an observable PTY — a mid-session reader reattach (`/clear`) re-creates the head-swallow race  `[REQ-HAZARD-INJECT-SETTLE-REARM]`\n 632|<!-- [doc->REQ-HAZARD-INJECT-SETTLE-REARM] -->\n...\n 639|<!-- [doc->REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK] -->\n*640|- **Failure (paid-for, field capture + deterministic Windows repro 2026-07-09 — hertz RCA, UPDATE-WEDGE round-4):** `controller_writer` held the `SharedSend = Arc<Mutex<SendHalf>>` guard ACROSS a blocking `write_frame`. On Windows, `interprocess 2.4.2` routes the send to `WriteFileEx` + `SleepEx(INFINITE, alertable)` — this local-socket send path exposes **no supported write timeout** (`set_timeout` → `Unsupported`). An `rc --take` controller consumer that stopped reading blocked the write **indefi...\n 641|- **Invariant:** every write on a physical broker connection rides ONE broker-owned bounded/cancelable framed-write primitive with an **independent out-of-band aborter**. The `SendHalf` never leaves the conn object (a bypass cannot compile). An ABSOLUTE deadline stamped at write entry covers BOTH the serialized gate-wait AND OS write completion; a per-conn watchdog fires at that deadline and aborts the in-flight op — never relying on the write returning or on opportunistic stall-evict sampling. On dead...\n 642|- **spt-core mapping:** `spt-daemon/src/conn.rs` `BrokerConn` (Condvar-gated serialized write gate + poisoned state + per-in-flight op id + watchdog + `abort_physical()`: cfg(windows) `CancelIoEx` → completion handshake → `DisconnectNamedPipe` raw kernel32 externs; cfg(unix) `UnixStream::shutdown(Both)`); `broker.rs` `SharedSend = Arc<BrokerConn>` + `controller_writer`/`viewer_writer`/`send_frame`/`send_error` routed; `nethost.rs` stream-log/presence sends routed. int = `brain_decouple.rs` `non_drain...\n 643|- **Source:** UPDATE-WEDGE round-4 (hertz root doc `docs/UPDATE-WEDGE-ROOT-CAUSE.md` @f8596ca; doyle gate ruling `docs/UPDATE-WEDGE-RCA-DISPATCH-todlando.md`; todlando build 2026-07-09). The residual 7.36 left open: logical eviction without physical retirement.\n...\n 664|\n*665|### 7.41 A fresh dispatcher must NEVER re-serve a terminal stream — historical replay must not steal or clear a live controller  `[REQ-HAZARD-REDISPATCH-CONTROL-STEAL]`\n*666|<!-- [doc->REQ-HAZARD-REDISPATCH-CONTROL-STEAL] -->\n 667|- **Failure (paid-for, hertz field RCA 2026-07-16 — 4/5 endpoints frozen, twice in one day):** every brain cycle (`spt daemon refresh`, `spt update` apply — same `applyhost.rs` path) launches a fresh `dispatch::run_dispatch_loop` whose EMPTY per-process `claimed` set enumerates every broker-held peer stream. `NetShared.streams` has NO removal path (`StreamLog::finish` only marks) and the claim condition has no finished filter → the fresh dispatcher replays FINISHED historical attach streams. A repl...\n*668|- **Invariant:** redispatch eligibility is LIFECYCLE-gated: a finished/terminal stream row is retired from the dispatcher's enumeration (a fresh dispatcher never re-serves a terminal Attach); classification identity is restart-durable and independent of the evictable data ring (immutable opener fact pinned per stream until close); claims are retryable on transient worker-setup failure and terminal on terminal outcomes (no hot-loop). The legitimate same-`by` successor re-take after a brain restart still s...\n 669|- **spt-core mapping:** `spt-daemon/src/dispatch.rs` `run_dispatch_loop` claim condition + `peek_first_line` classification + worker spawn; `spt-daemon/src/nethost.rs` `NetShared.streams` insert/finish + `DEFAULT_STREAM_RING_CHUNKS`; `spt-daemon/src/applyhost.rs` (the brain-cycle trigger).\n*670|- **Source:** REDISPATCH-TRUTH W1 (hertz source-level RCA `.claude/reports/2026-07-16-redispatch-truth/hertz-refresh-rca.txt`, doyle seam-verified; ADR-0038; distinct from the CLOSED 0.30.x session-cursor resume-steal saga).\n 671|\n 672|---\n 673|\n\nShowing files 1-20 of 28+. Use skip=20 for the next page, or narrow paths/pattern.\n\n[Some lines truncated to 512 chars]"}],"details":{"scopePath":"CHANGELOG*, docs, README*, crates","searchPath":"C:\\Users\\decid\\Documents\\projects\\spt-core","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":82,"fileCount":20,"files":["CHANGELOG.md","crates/spt-daemon/Cargo.toml","crates/spt-daemon/src/brain.rs","crates/spt-daemon/src/brainproc.rs","crates/spt-daemon/src/broker.rs","crates/spt-daemon/src/conn.rs","crates/spt-daemon/src/dispatch.rs","crates/spt-daemon/src/livehost.rs","crates/spt-daemon/src/msg.rs","crates/spt-daemon/src/nethost.rs","crates/spt-daemon/tests/brain_decouple.rs","crates/spt-daemon/tests/brain_resume_conn_deadlock.rs","crates/spt-daemon/tests/conn_blackhole_lifecycle.rs","crates/spt-daemon/tests/false_promote.rs","crates/spt-daemon/tests/fixtures/dispatch_fixture.rs","crates/spt-daemon/tests/redispatch.rs","crates/spt/src/cli.rs","crates/spt/tests/resume_no_control_steal_e2e.rs","crates/spt/tests/trial_drain_drive_e2e.rs","docs/KNOWN-HAZARDS.md"],"fileMatches":[{"path":"CHANGELOG.md","count":1},{"path":"crates/spt-daemon/Cargo.toml","count":2},{"path":"crates/spt-daemon/src/brain.rs","count":3},{"path":"crates/spt-daemon/src/brainproc.rs","count":3},{"path":"crates/spt-daemon/src/broker.rs","count":20},{"path":"crates/spt-daemon/src/conn.rs","count":1},{"path":"crates/spt-daemon/src/dispatch.rs","count":6},{"path":"crates/spt-daemon/src/livehost.rs","count":1},{"path":"crates/spt-daemon/src/msg.rs","count":4},{"path":"crates/spt-daemon/src/nethost.rs","count":6},{"path":"crates/spt-daemon/tests/brain_decouple.rs","count":4},{"path":"crates/spt-daemon/tests/brain_resume_conn_deadlock.rs","count":1},{"path":"crates/spt-daemon/tests/conn_blackhole_lifecycle.rs","count":2},{"path":"crates/spt-daemon/tests/false_promote.rs","count":5},{"path":"crates/spt-daemon/tests/fixtures/dispatch_fixture.rs","count":2},{"path":"crates/spt-daemon/tests/redispatch.rs","count":6},{"path":"crates/spt/src/cli.rs","count":3},{"path":"crates/spt/tests/resume_no_control_steal_e2e.rs","count":1},{"path":"crates/spt/tests/trial_drain_drive_e2e.rs","count":4},{"path":"docs/KNOWN-HAZARDS.md","count":7}],"truncated":true,"fileLimitReached":20,"perFileLimitReached":20,"displayContent":"# CHANGELOG.md\n 42│\n*43│## [0.34.0] - 2026-07-16\n 44│\n 45│A stability fix for live remote sessions during a daemon update.\n 46│\n\n# crates/\n\n## spt-daemon/\n### Cargo.toml\n  7│\n *8│# Test-only REDISPATCH-TRUTH dispatcher-generation fixture for\n *9│# `tests/redispatch.rs` (REQ-HAZARD-REDISPATCH-CONTROL-STEAL /\n 10│# REQ-STREAM-OPENER-DURABLE / REQ-DISPATCH-CLAIM-RETRY): the REAL\n 11│# `run_dispatch_loop` as a KILLABLE child process — a killed generation drops\n 12│# its workers' broker conns exactly like a production brain death. Same\n\n### src/\n#### brain.rs\n 1154│\n*1155│    /// Query the broker's brain-subscriber stall-evict tally (LIFECYCLE-TRUTH W2\n 1156│    /// observability rider, REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE): `(count,\n 1157│    /// last_ms)` — how many controllers were stall-evicted for a suspended/black-holed\n 1158│    /// brain conn since boot, and when the most recent fired. `None` when the broker\n     │...\n 1445│\n*1446│    /// Retire a completed stream row from redispatch eligibility (ADR-0038 A).\n 1447│    /// The dispatcher calls this when a serve loop runs to completion, so no\n 1448│    /// future dispatcher generation rediscovers and replays the stream\n 1449│    /// (KNOWN-HAZARDS 7.41). Best-effort at the caller: an older broker\n     │...\n 1451│    /// broker to cycle onto the new binary).\n*1452│    // [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n 1453│    pub fn net_stream_retire(&mut self, stream_id: u64) -> io::Result<bool> {\n 1454│        self.send(\n 1455│            KIND_NET_STREAM_RETIRE,\n#### brainproc.rs\n 476│    /// brain round-trip): the supervisor promotes a ready candidate only once this is\n*477│    /// `true`, so `brain.ready` arriving inside the W2 `BRAIN_WRITE_DEADLINE` window\n 478│    /// can no longer promote onto a still-frozen control plane (the 22:47 false-\n 479│    /// promote). Fail-safe toward DRAINED (`true`) where there is nothing to read — a\n 480│    /// net-less broker, no hosted sessions, or [`NoTrialEnv`] — so the gate never\n    │...\n 667│/// NOT a promote: the W2 stall-evict only BOUNDS the false-promote window to\n*668│/// `BRAIN_WRITE_DEADLINE`, so a new brain can signal ready while the OLD generation's\n 669│/// local controller conn is still wedged (the 22:47 apply \"promoted\" onto a frozen\n 670│/// control plane). So readiness is LATCHED (`ready_seen` — a candidate that stamped\n 671│/// ready then exited is not demoted, preserving the ready-then-exit-still-promotes\n    │...\n 676│/// The normal case drains well inside the window — W2 bounds a real drain to\n*677│/// `BRAIN_WRITE_DEADLINE` (15 s) < [`SUPERVISE_HEALTHY_RUN`] (30 s) — and a cleanly-\n 678│/// closed old conn drains at once. `child.try_wait()` is consulted only while\n 679│/// NOT-yet-ready, so a ready-then-exited candidate still promotes once drained.\n 680│fn run_trial(\n#### broker.rs\n  171│// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n *172│const BRAIN_WRITE_DEADLINE: Duration = Duration::from_secs(15);\n  173│\n *174│/// The EFFECTIVE brain-write deadline. Production is [`BRAIN_WRITE_DEADLINE`]; the\n *175│/// suspend-brain int rig shrinks it via `SPT_BRAIN_WRITE_DEADLINE_MS` so the\n  176│/// structural outcome (a wedged controller is stall-evicted → take/reattach frees\n  177│/// the slot) is provable in ~1 s instead of 15 (mirrors the\n  178│/// `SPT_INJECT_COMMIT_DEADLINE_MS` env-knob precedent). Grants test wall-clock\n     │...\n  180│// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n *181│fn brain_write_deadline() -> Duration {\n *182│    match std::env::var(\"SPT_BRAIN_WRITE_DEADLINE_MS\") {\n  183│        Ok(ms) => ms\n  184│            .parse::<u64>()\n  185│            .map(Duration::from_millis)\n *186│            .unwrap_or(BRAIN_WRITE_DEADLINE),\n *187│        Err(_) => BRAIN_WRITE_DEADLINE,\n  188│    }\n  189│}\n  190│\n     │...\n  251│\n *252│/// Broker-global tally of brain-subscriber stall-evicts (W2 observability rider,\n  253│/// doyle ruling Q3): the count since broker boot + the wall-ms of the most recent.\n  254│/// A brain that never returns is then a DIAGNOSABLE fact — surfaced on `daemon\n  255│/// status` (via [`Broker::stall_evict_stats`]) alongside the per-evict broker log\n     │...\n  515│    /// ([`OutputLog::controller_stalled`]) sees a `Some` older than\n *516│    /// [`BRAIN_WRITE_DEADLINE`] as a writer WEDGED on a suspended/black-holed brain\n  517│    /// conn and stall-evicts it — the signal `last_ok` (channel-handoff time) cannot\n  518│    /// give: an IDLE controller (writer parked on `rx.recv()`, `None` here) and a\n  519│    /// BLOCKED one (writer stuck in the socket write, `Some` here) both leave\n     │...\n 1004│        // writer is BLOCKED (not exited) on a suspended brain conn past\n*1005│        // BRAIN_WRITE_DEADLINE is also reaped here, so the honest `KIND_SESSIONS`\n 1006│        // truth + the off-lock converge_perch_stamps release its stale `driven_by`\n 1007│        // stamp even when nobody take/reattaches. Deferred stamp: the reap runs in\n 1008│        // the multi-session snapshot closure (no I/O under the shared sessions lock).\n     │...\n 1051│\n*1052│    /// Stall-evict a controller wedged past [`BRAIN_WRITE_DEADLINE`]: clear the slot\n 1053│    /// and re-stamp `driven_by`/`controlled` (the BROKER-side release — no brain\n 1054│    /// round-trip, so `controlled-by` can never latch behind a dead transit) and\n 1055│    /// record the evict for observability (broker log now; W3 persists the stderr,\n     │...\n 1064│    fn stall_evict_controller(&mut self, now: Instant, stamp: StampMode) -> bool {\n*1065│        let deadline = brain_write_deadline();\n 1066│        if !self.controller_write_stalled(now, deadline) {\n 1067│            return false;\n 1068│        }\n     │...\n 1167│        // W2 decouple (REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE): a controller WEDGED\n*1168│        // on a suspended/black-holed brain conn past BRAIN_WRITE_DEADLINE is\n 1169│        // stall-evicted HERE — the take/reattach self-heals against broker truth\n 1170│        // without waiting for new output (the output-driven mark_controller_gone\n 1171│        // never fires on an idle session). Inline stamp: this path already writes the\n     │...\n 1435│/// write, or a gate-wait behind one exhausted the bound) IS the\n*1436│/// brain-subscriber stall-evict fact the W2 tally counts. Pre-round-4 that\n 1437│/// wedge aged until a logical sampler (`stall_evict_controller`) observed it;\n 1438│/// the physical bound now fires FIRST, so the tally is recorded here — same\n 1439│/// event class, same `daemon status` surface. An ORGANIC write failure (peer\n     │...\n 2830│        let (_recv, send_half) = server.split();\n*2831│        let send: SharedSend = Arc::new(BrokerConn::new(send_half, brain_write_deadline()));\n 2832│        let (tx, rx) = sync_channel::<CtrlMsg>(CONTROLLER_CHANNEL_DEPTH);\n 2833│        // Drain-forever (never a socket write, never finishes while tx lives):\n 2834│        // stays un-reapable as a live-but-wedged writer even under child output.\n     │...\n 2934│        let now = Instant::now();\n*2935│        let deadline = brain_write_deadline();\n 2936│        let sessions = match self.sessions.lock() {\n 2937│            Ok(g) => g,\n 2938│            Err(p) => p.into_inner(),\n     │...\n 2996│        // [impl->REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n*2997│        let send: SharedSend = Arc::new(BrokerConn::new(send, brain_write_deadline()));\n 2998│        // Base attribution fact (F-039 leg b): broker clients are brains; role\n*2999│        // facts (controller/viewer/presence/stream subscriber) accrete at the\n 3000│        // attach sites. [impl->REQ-CONN-POISON-ATTRIBUTION]\n 3001│        send.describe(\"role=brain\");\n 3002│\n     │...\n 3872│\n*3873│    /// Answer the brain-subscriber stall-evict tally query (LIFECYCLE-TRUTH W2\n 3874│    /// observability rider) from the broker-global counters — so `daemon status` can\n 3875│    /// surface a brain that never returned as a diagnosable fact, not a silent absence.\n 3876│    // [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n     │...\n 4314│\n*4315│    /// Retire a completed stream row from redispatch eligibility (ADR-0038 A):\n 4316│    /// the dispatcher reports a serve loop that ran to completion, and the row\n 4317│    /// leaves the table so no future dispatcher generation can rediscover and\n 4318│    /// replay it (the KNOWN-HAZARDS 7.41 control-steal class).\n#### conn.rs\n 424│    /// deadline (gate-wait + OS write completion) — the broker passes its\n*425│    /// `brain_write_deadline()` (`SPT_BRAIN_WRITE_DEADLINE_MS` knob).\n 426│    pub(crate) fn new(half: SendHalf, bound: Duration) -> Self {\n 427│        let raw = raw_of(&half);\n 428│        let inner = Arc::new(Inner {\n#### dispatch.rs\n  233│/// \"excluded by lifecycle state\" half): is a `finished` row TERMINAL for\n *234│/// redispatch — retire unserved, never replay?\n  235│///\n  236│/// `finished` alone is NOT the answer, and a bare `s.finished` claim filter\n  237│/// would be a regression: the request/reply families FIN their send WITH the\n     │...\n  250│/// else = a pending request — serve it.\n *251│// [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n *252│// [impl->REQ-HAZARD-REDISPATCH-CONTROL-STEAL]\n  253│fn finished_row_is_terminal(family: StreamFamily, finished: bool) -> bool {\n  254│    finished && family == StreamFamily::Attach\n  255│}\n     │...\n  343│                if matches!(outcome, DispatchOutcome::Served(_)) {\n *344│                    // Retirement (ADR-0038 A, REQ-REDISPATCH-FINISHED-RETIRE):\n  345│                    // this stream's exchange is over — take its row out of\n  346│                    // every FUTURE dispatcher generation's enumeration (the\n  347│                    // KNOWN-HAZARDS 7.41 control-steal class). Best-effort:\n     │...\n 1002│\n*1003│    // [unit->REQ-REDISPATCH-FINISHED-RETIRE] the lifecycle+family\n 1004│    // discriminator (gate round 1): a finished ATTACH is terminal for\n*1005│    // redispatch (the operator detached — replay = the 7.41 controller\n 1006│    // steal), while a finished REQUEST/REPLY stream is NOT — sync and update\n 1007│    // requesters FIN their send WITH the request (sync.rs request_sync /\n 1008│    // propagate.rs fetch_update) and await the reply, so a bare finished\n#### livehost.rs\n 1016│            // spawns a real release `spt daemon brain` child cfg(test) can't reach — the\n*1017│            // SPT_BRAIN_WRITE_DEADLINE_MS precedent. Still honors `stop` on a tight tick.\n 1018│            // [impl->REQ-UPDATE-TRIAL-DRAIN-DRIVE]\n 1019│            if std::env::var_os(\"SPT_LIVEHOST_RECONCILE_DISABLE\").is_some() {\n 1020│                std::thread::sleep(Duration::from_millis(100));\n#### msg.rs\n 101│pub const KIND_BROKER_IMAGE_REPLY: &str = \"broker-image-reply\";\n*102│/// Brain→broker query: the brain-subscriber stall-evict tally (LIFECYCLE-TRUTH W2\n 103│/// observability rider, REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE) — how many\n 104│/// controllers were stall-evicted for a suspended/black-holed brain conn since\n 105│/// boot, and when the most recent fired. Surfaced on `daemon status` so a brain\n    │...\n 152│/// the caller treats retire as best-effort).\n*153│// [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n 154│pub const KIND_NET_STREAM_RETIRE: &str = \"net-stream-retire\";\n 155│/// Broker→brain: the retire ack (`removed` = a row actually left the table).\n 156│pub const KIND_NET_STREAM_RETIRED: &str = \"net-stream-retired\";\n    │...\n 571│/// `stall-evicts-reply` payload (LIFECYCLE-TRUTH W2, REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE):\n*572│/// the broker-global brain-subscriber stall-evict tally. Both fields defaulted so a\n 573│/// truncated/older reply still decodes (2.3 forward-compat).\n 574│#[derive(Debug, Clone, Serialize, Deserialize)]\n 575│pub struct StallEvictsReply {\n    │...\n 808│pub struct NetStreamRetireReq {\n*809│    /// The completed stream to retire from redispatch eligibility.\n 810│    pub stream_id: u64,\n 811│}\n 812│\n#### nethost.rs\n  544│    /// is load-bearing; physical teardown belongs to the conn-close sweep only.\n *545│    // [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n  546│    retired: std::sync::atomic::AtomicBool,\n  547│}\n  548│\n     │...\n  707│        // else reads a dead conn's stream ring.\n *708│        // [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n  709│        sh_close\n  710│            .streams\n  711│            .lock()\n     │...\n 1560│    /// call newly retired the row (idempotent; absent row = false).\n*1561│    // [impl->REQ-REDISPATCH-FINISHED-RETIRE]\n 1562│    pub fn retire_stream(&self, stream_id: u64) -> bool {\n 1563│        let Some(entry) = self\n 1564│            .shared\n     │...\n 2091│\n*2092│    // [unit->REQ-REDISPATCH-FINISHED-RETIRE] retirement hides EXACTLY the\n 2093│    // named row from dispatch eligibility: the retired stream leaves the\n 2094│    // dispatch enumeration (stream_infos) while the active sibling stays\n 2095│    // claimable, a second retire is a no-op, and the pinned-opener query\n     │...\n 2130│\n*2131│    // [unit->REQ-REDISPATCH-FINISHED-RETIRE] retirement never severs the\n 2132│    // transport: a reply sent AFTER the row was retired still flushes to the\n 2133│    // peer. This is the field race's lost ordering made deterministic — the\n 2134│    // worker's reply send is fire-and-forget (brain returns before the broker\n     │...\n 2176│\n*2177│    // [unit->REQ-REDISPATCH-FINISHED-RETIRE] a dead CONNECTION retires its\n 2178│    // stream rows with it: the closed-watcher sweep leaves nothing for a\n 2179│    // future dispatcher generation to replay on a transport that can never\n 2180│    // serve again (the field bug's historical-rows-forever half).\n\n### tests/\n#### brain_decouple.rs\n  21│//! (a peer that stopped draining). This is the same analog the 7.12 wedge gate uses.\n *22│//! `SPT_BRAIN_WRITE_DEADLINE_MS` shrinks the 15 s production deadline so the\n  23│//! structural outcome is provable in ~1 s (the deadline knob grants wall-clock only;\n  24│//! it never relaxes an assertion).\n  25│//!\n    │...\n  46│//!\n *47│//! Shares ONE process-global `SPT_HOME` + the `SPT_BRAIN_WRITE_DEADLINE_MS` env, and\n  48│//! spins a REAL broker + PTY child. Run isolated with\n  49│//! `cargo nextest run --test brain_decouple` (process-per-test — CI's path) or\n  50│//! `cargo test --test brain_decouple -- --test-threads=1`. Never a bare\n    │...\n 227│    // stall-evict can free the slot in the window this test acts in.\n*228│    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\n 229│\n 230│    let name = unique_name();\n 231│    let broker = Broker::bind(&name).expect(\"bind broker\");\n    │...\n 476│    // Shrink the brain-write deadline so the wedged writer is \"stalled\" in ~400 ms.\n*477│    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\n 478│\n 479│    let name = unique_name();\n 480│    let broker = Broker::bind(&name).expect(\"bind broker\");\n#### brain_resume_conn_deadlock.rs\n 256│/// which went stale after the r4 Option-C fix bounded every physical-conn write (the\n*257│/// `BrokerConn` watchdog retires a blocked write at `brain_write_deadline()`), so a\n 258│/// non-draining subscriber no longer starves the heartbeat to ~0 and the timing-based\n 259│/// proof was invalidated — it failed REAL on kitsubito Linux CI (\"worst completed 10\").\n 260│/// doyle ruling `docs/UPDATE-WEDGE-R4-STALE-GUARD-RULING.md` (2026-07-10). The two\n#### conn_blackhole_lifecycle.rs\n  70│//!\n *71│//! Shares ONE process-global `SPT_HOME` + `SPT_BRAIN_WRITE_DEADLINE_MS`, spins a\n  72│//! REAL broker + TWO PTY children. HEAVY class. Run isolated with\n  73│//! `cargo nextest run -p spt-daemon --test conn_blackhole_lifecycle` (CI's path)\n  74│//! or `cargo test --test conn_blackhole_lifecycle -- --test-threads=1`. NEVER a\n    │...\n 253│    // grants wall-clock only; it never relaxes an assertion).\n*254│    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\n 255│\n 256│    let name = unique_name();\n 257│    let broker = Broker::bind(&name).expect(\"bind broker\");\n#### false_promote.rs\n   8│//! W2's stall-evict (REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE) only BOUNDS the false-\n  *9│//! promote window to `BRAIN_WRITE_DEADLINE` (15 s) — it does NOT close it. A new brain\n  10│//! can signal `brain.ready` INSIDE that window while the OLD generation's local\n  11│//! controller conn is still wedged (blocked writes pending), so `update apply`\n  12│//! \"promotes\" onto a still-frozen control plane (the incident-night 22:47 apply). The\n    │...\n  22│//! write an independent watchdog that CANCELS + retires a wedged write at the SAME\n *23│//! `brain_write_deadline()` bound — so a real parked writer now self-heals at the\n  24│//! deadline and the rig's persistent-wedge precondition cannot exist (that is the\n  25│//! fix working, not a regression; the 22:47 permanent-frozen-plane class is dead by\n  26│//! construction). Ruling `docs/UPDATE-WEDGE-R4-FALSE-PROMOTE-RULING.md`: this rig\n    │...\n  33│//! rides the REAL logical path (the take's `stall_evict_controller`), unchanged.\n *34│//! `SPT_BRAIN_WRITE_DEADLINE_MS` still shrinks the 15 s deadline (the knob grants\n  35│//! wall-clock only; it never relaxes an assertion).\n  36│//!\n  37│//! ## What this rig asserts (the DRAINED invariant)\n    │...\n  48│//!\n *49│//! Shares ONE process-global `SPT_HOME` + the `SPT_BRAIN_WRITE_DEADLINE_MS` env and\n  50│//! spins a REAL broker + PTY child. Run isolated with\n  51│//! `cargo nextest run --test false_promote` (process-per-test — CI's path) or\n  52│//! `cargo test --test false_promote -- --test-threads=1`. Never a bare\n    │...\n 240│    // ~400 ms instead of 15 s (the structural outcome, fast + deterministic).\n*241│    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\n 242│\n 243│    let name = unique_name();\n 244│    let broker = Broker::bind(&name).expect(\"bind broker\");\n#### redispatch.rs\n  *1│//! REDISPATCH-TRUTH W1 — the three production-path regressions (ADR-0038 D,\n   2│//! KNOWN-HAZARDS 7.41): every leg drives the REAL\n   3│//! `dispatch::run_dispatch_loop` (as a killable `dispatch_fixture` child —\n   4│//! a dispatcher GENERATION whose death drops its workers' broker conns\n    │...\n 211│\n*212│// [int->REQ-HAZARD-REDISPATCH-CONTROL-STEAL] D1 — the field bug, end to end\n 213│// through PRODUCTION rediscovery: a finished historical Attach and a current\n 214│// active Attach on the same endpoint/origin; only the dispatcher generation\n 215│// restarts. The historical stream must neither take nor clear the current\n    │...\n 219│// and the retired row is GONE from the broker's enumeration\n*220│// (REQ-REDISPATCH-FINISHED-RETIRE observed at the seam that matters).\n 221│#[test]\n 222│fn finished_historical_attach_neither_takes_nor_clears_current_controller() {\n 223│    init_home();\n    │...\n 302│\n*303│// [int->REQ-HAZARD-REDISPATCH-CONTROL-STEAL] D1b (gate round 1) — the\n 304│// finished-UNRETIRED orderings the Served-report path can never see: the\n 305│// pre-existing backlog and the brain-down-detach window. s1 is attached and\n 306│// driven under gen1, gen1 is KILLED mid-serve (no Served report), THEN the\n    │...\n 315│// ever being served (retire-on-sight drains the backlog).\n*316│// [int->REQ-REDISPATCH-FINISHED-RETIRE]\n 317│#[test]\n 318│fn finished_unretired_attach_is_skipped_and_drained_not_replayed() {\n 319│    init_home();\n    │...\n 413│\n*414│// [int->REQ-REDISPATCH-FINISHED-RETIRE] the GUARD leg for the family-aware\n 415│// discriminator (gate round 1 counter-check): a request/reply stream reads\n 416│// `finished=true` the moment its requester FINs with the request — sync's\n 417│// `request_sync` does exactly that — so a finished row must NOT be blanket-\n\n#### fixtures/\n##### dispatch_fixture.rs\n*1│//! Test-only dispatcher-generation fixture (REDISPATCH-TRUTH D-regressions,\n*2│//! `tests/redispatch.rs`): runs the REAL `dispatch::run_dispatch_loop` against\n 3│//! the named broker, as a child process the test can KILL — a killed\n 4│//! generation drops its workers' broker connections exactly like a production\n 5│//! brain death, which no in-process thread can simulate (a parked serve-loop\n\n## spt/\n\n### src/\n#### cli.rs\n 4161│    broker_stale: Option<bool>,\n*4162│    /// LIFECYCLE-TRUTH W2 observability rider: brain-subscriber stall-evicts since\n 4163│    /// broker boot (a controller detached for a suspended/black-holed brain conn).\n 4164│    /// `None` when the daemon is down or the broker is too old to report; `Some(0)`\n 4165│    /// = healthy, none evicted.\n     │...\n 4228│/// LIFECYCLE-TRUTH W2 observability rider: the `daemon status` line reporting\n*4229│/// brain-subscriber stall-evicts (a controller detached because its brain conn was\n 4230│/// suspended / black-holed). `None` = the broker couldn't be queried / is too old\n 4231│/// (silent — no line). `Some(0)` renders a healthy line so \"none\" is an explicit\n 4232│/// fact, not an absence; `Some(n>0)` names the count + the most-recent time so a\n     │...\n 4506│        // [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE] W2 observability rider:\n*4507│        // surface brain-subscriber stall-evicts so a suspended/wedged brain that\n 4508│        // never returned is a diagnosable fact, not a silent absence.\n 4509│        if let Some(line) = render_stall_evict_line(stall_stats) {\n 4510│            println!(\"{line}\");\n\n### tests/\n#### resume_no_control_steal_e2e.rs\n 343│    // reconcile loop so the boot is a clean, isolated real brain.\n*344│    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"800\");\n 345│    std::env::set_var(\"SPT_LIVEHOST_RECONCILE_DISABLE\", \"1\");\n 346│\n 347│    let spt_bin = PathBuf::from(env!(\"CARGO_BIN_EXE_spt\"));\n#### trial_drain_drive_e2e.rs\n  45│//! reads only `by.is_none()` + `write_blocked_since`, so it cannot tell the two apart\n *46│//! (doyle FINALIZE). `SPT_BRAIN_WRITE_DEADLINE_MS` shrinks the 15s maturity to ~800ms\n  47│//! (the knob grants wall-clock only — it never relaxes an assertion); the deadline is\n  48│//! read BROKER-side, in THIS process's in-proc broker where the reap + the drained read\n  49│//! both run.\n    │...\n 139│/// detach (5s, tripped only by a channel that stays FULL as new chunks arrive) never fires,\n*140│/// and the wedge PERSISTS until the `BRAIN_WRITE_DEADLINE` reap (the fix's heartbeat drive)\n 141│/// clears it. This is the FAITHFUL analog of the field's idle-brain black-hole (broker.rs\n*142│/// BRAIN_WRITE_DEADLINE doc): a suspended brain conn with a stuck write on an idle session.\n 143│/// A CONTINUOUS flood (false_promote.rs) instead trips the 5s output-driven detach and only\n 144│/// works because that rig finishes < 5s — the slower subprocess rig would self-heal.\n 145│fn burst_then_idle_spawn_req(endpoint: &str) -> SpawnReq {\n    │...\n 339│    // the drained read both run here). The knob grants wall-clock only.\n*340│    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"800\");\n 341│    // Silence the subprocess brain's livehost reconcile loop (inherited by the child).\n 342│    // livehost's own `brain.sessions()` poll (every 5s) would OTHERWISE drive the same\n 343│    // broker reap and MASK the fix — reproducing the field's livehost-silent trial\n\n# docs/\n## KNOWN-HAZARDS.md\n 626│- **Failure (paid-for, rig-CONFIRMED 2026-07-06/07 — `NtSuspendProcess` on the brain, no update involved):** a controller's writer thread does a BLOCKING socket write to its brain subscriber conn. When that brain is suspended (or black-holed) the write never returns. The output-driven eviction path (`append` → `mark_controller_gone`, bounded by 7.12's `CONTROLLER_WRITE_DEADLINE`) only fires on NEW output, and `reap_dead_controller` (7.29 companion) only caught a writer that had EXITED — so a contro...\n*627│- **Invariant:** no broker client ever observes a wedge because the BRAIN stalled. (1) The controller's writer publishes its IN-FLIGHT-write window (`write_blocked_since`: `Some(Instant)` set immediately before the blocking `write_frame`, `None` after — the mutex never held ACROSS the write); a reader sees a `Some` older than `BRAIN_WRITE_DEADLINE` (15 s = 3× the 7.12 controller bound, measured full-with-**zero writer progress**, so a slow-but-DRAINING brain never trips it) as a WEDGED writer and stal...\n 628│- **spt-core mapping:** `broker.rs` — `ControllerSink::write_blocked_since` + `controller_writer` (marks the in-flight window around both the initial-batch and live-loop writes) + `controller_write_stalled` (pure predicate over injected `now`/`deadline`) + `stall_evict_controller` (Inline stamp at `resolve_subscribe`, Deferred stamp at `reap_dead_controller` so the reap closure does no I/O under the shared sessions lock) + `record_stall_evict`/`stall_evict_stats` (the tally) + `dispatch_stall_evicts` (...\n*629│- **Source:** LIFECYCLE-TRUTH W2 (doyle rig `NtSuspendProcess` root + design ruling `docs/W2-DESIGN-RULING.md` @60ec0ed — minimal-plus scope, `BRAIN_WRITE_DEADLINE` 15 s, passive resubscribe + observability rider; todlando build 2026-07-07). The v0.27→v0.28 update-wedge night's flagship defect.\n 630│\n 631│### 7.37 The Layer-1 settle-gate must RE-ARM per delivery on an observable PTY — a mid-session reader reattach (`/clear`) re-creates the head-swallow race  `[REQ-HAZARD-INJECT-SETTLE-REARM]`\n 632│<!-- [doc->REQ-HAZARD-INJECT-SETTLE-REARM] -->\n    │...\n 639│<!-- [doc->REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK] -->\n*640│- **Failure (paid-for, field capture + deterministic Windows repro 2026-07-09 — hertz RCA, UPDATE-WEDGE round-4):** `controller_writer` held the `SharedSend = Arc<Mutex<SendHalf>>` guard ACROSS a blocking `write_frame`. On Windows, `interprocess 2.4.2` routes the send to `WriteFileEx` + `SleepEx(INFINITE, alertable)` — this local-socket send path exposes **no supported write timeout** (`set_timeout` → `Unsupported`). An `rc --take` controller consumer that stopped reading blocked the write **indefi...\n 641│- **Invariant:** every write on a physical broker connection rides ONE broker-owned bounded/cancelable framed-write primitive with an **independent out-of-band aborter**. The `SendHalf` never leaves the conn object (a bypass cannot compile). An ABSOLUTE deadline stamped at write entry covers BOTH the serialized gate-wait AND OS write completion; a per-conn watchdog fires at that deadline and aborts the in-flight op — never relying on the write returning or on opportunistic stall-evict sampling. On dead...\n 642│- **spt-core mapping:** `spt-daemon/src/conn.rs` `BrokerConn` (Condvar-gated serialized write gate + poisoned state + per-in-flight op id + watchdog + `abort_physical()`: cfg(windows) `CancelIoEx` → completion handshake → `DisconnectNamedPipe` raw kernel32 externs; cfg(unix) `UnixStream::shutdown(Both)`); `broker.rs` `SharedSend = Arc<BrokerConn>` + `controller_writer`/`viewer_writer`/`send_frame`/`send_error` routed; `nethost.rs` stream-log/presence sends routed. int = `brain_decouple.rs` `non_drain...\n 643│- **Source:** UPDATE-WEDGE round-4 (hertz root doc `docs/UPDATE-WEDGE-ROOT-CAUSE.md` @f8596ca; doyle gate ruling `docs/UPDATE-WEDGE-RCA-DISPATCH-todlando.md`; todlando build 2026-07-09). The residual 7.36 left open: logical eviction without physical retirement.\n    │...\n 664│\n*665│### 7.41 A fresh dispatcher must NEVER re-serve a terminal stream — historical replay must not steal or clear a live controller  `[REQ-HAZARD-REDISPATCH-CONTROL-STEAL]`\n*666│<!-- [doc->REQ-HAZARD-REDISPATCH-CONTROL-STEAL] -->\n 667│- **Failure (paid-for, hertz field RCA 2026-07-16 — 4/5 endpoints frozen, twice in one day):** every brain cycle (`spt daemon refresh`, `spt update` apply — same `applyhost.rs` path) launches a fresh `dispatch::run_dispatch_loop` whose EMPTY per-process `claimed` set enumerates every broker-held peer stream. `NetShared.streams` has NO removal path (`StreamLog::finish` only marks) and the claim condition has no finished filter → the fresh dispatcher replays FINISHED historical attach streams. A repl...\n*668│- **Invariant:** redispatch eligibility is LIFECYCLE-gated: a finished/terminal stream row is retired from the dispatcher's enumeration (a fresh dispatcher never re-serves a terminal Attach); classification identity is restart-durable and independent of the evictable data ring (immutable opener fact pinned per stream until close); claims are retryable on transient worker-setup failure and terminal on terminal outcomes (no hot-loop). The legitimate same-`by` successor re-take after a brain restart still s...\n 669│- **spt-core mapping:** `spt-daemon/src/dispatch.rs` `run_dispatch_loop` claim condition + `peek_first_line` classification + worker spawn; `spt-daemon/src/nethost.rs` `NetShared.streams` insert/finish + `DEFAULT_STREAM_RING_CHUNKS`; `spt-daemon/src/applyhost.rs` (the brain-cycle trigger).\n*670│- **Source:** REDISPATCH-TRUTH W1 (hertz source-level RCA `.claude/reports/2026-07-16-redispatch-truth/hertz-refresh-rca.txt`, doyle seam-verified; ADR-0038; distinct from the CLOSED 0.30.x session-cursor resume-steal saga).\n 671│\n 672│---\n 673│","linesTruncated":true,"meta":{"limits":{"columnTruncated":{"maxColumn":512}}}},"isError":false,"timestamp":1784247448194}}
{"type":"message","id":"5b422c3c","parentId":"fcbd1770","timestamp":"2026-07-17T00:17:28.200Z","message":{"role":"toolResult","toolCallId":"call_f75uGG3r3vImMLnGHwwTmDHo|fc_05a4d8ea8a10ef0b016a5974980afc819898759be883bfe66e","toolName":"grep","content":[{"type":"text","text":"# crates/spt-daemon/src/\n## broker.rs\n 18|//!   [`OutputLog`]: every chunk gets a monotonic per-session `seq` and is held\n*19|//!   in a bounded ring. The current subscriber (a brain connection) receives\n*20|//!   chunks live; all subscriber writes happen *under the log lock*, so frames\n 21|//!   reach the brain in strict `seq` order with no interleave.\n 22|//! - **Resume from a cursor.** A reconnecting brain sends `subscribe` with its\n 23|//!   last-seen `seq + 1`; the broker replays the ring from there, then streams\n...\n 28|//! Sessions are therefore **broker-owned and outlive any one connection**: a\n*29|//! brain disconnect only detaches the subscriber; the child, its PTY, and the\n 30|//! output log persist. A session leaves the table only when its child exits\n 31|//! (reaped by the exit waiter) or is explicitly killed.\n 32|// [impl->REQ-DAEMON-2]\n...\n 56|    size_envelope, subscribed_envelope, AdapterApplyReq, BrainRestarted, EndpointInputReq,\n*57|    ErrorEvent, ExitEvent, InputReq, KillReq, NetDialReq, NetPresenceSubscribeReq, NetSent,\n*58|    BrokerImageReply, StallEvictsReply, NetStatusReply, NetStreamOpenReq, NetStreamOpened, NetStreamSendReq, NetStreamSubscribeReq,\n 59|    NetStreamsReply, NetStreamOpenerReply, NetStreamOpenerReq, NetStreamRetireReq, NetStreamRetired, MetMember, PairCodeSubmit, PairJoinReply, PairJoinReq, PairMeetReq, ResizeReq, SessionInfo, SessionsReply, SpawnReq,\n*60|    Spawned, SubscribeOutcome, SubscribeReq, UnsubscribeReq, KIND_BRAIN_RESTART, KIND_BRAIN_RESTARTED, KIND_ENDPOINT_INPUT, KIND_ERROR, KIND_EXIT,\n 61|    KIND_INPUT, KIND_KILL, KIND_NET_DIAL, KIND_NET_DIAL_LOOPBACK, KIND_NET_DIAL_SUBMIT,\n 62|    KIND_NET_DIAL_SUBMITTED, KIND_NET_PRESENCE_SUBSCRIBE,\n 63|    KIND_NET_SENT,\n...\n 66|    KIND_NET_STATUS, KIND_NET_STATUS_REPLY, KIND_NET_STREAMS, KIND_NET_STREAMS_REPLY,\n*67|    KIND_NET_STREAM_OPEN, KIND_NET_STREAM_OPENED, KIND_NET_STREAM_OPENER, KIND_NET_STREAM_OPENER_REPLY, KIND_NET_STREAM_RETIRE, KIND_NET_STREAM_RETIRED, KIND_NET_STREAM_SEND, KIND_NET_STREAM_SUBSCRIBE,\n 68|    KIND_MET_MEMBER, KIND_PAIR_CODE_SUBMIT, KIND_PAIR_JOIN, KIND_PAIR_JOINED, KIND_PAIR_MEET, KIND_RESIZE, KIND_SESSIONS, KIND_SESSIONS_REPLY, KIND_SPAWN,\n 69|    KIND_SPAWNED, KIND_SUBSCRIBE, KIND_UNSUBSCRIBE,\n 70|};\n...\n 140|/// merely-slow controller DROPS chunks + falls behind the ring, and only a channel\n*141|/// that stays full for [`CONTROLLER_WRITE_DEADLINE`] (tracked via\n 142|/// [`ControllerSink::last_ok`]) is detached. Generous so a momentary slow consumer\n 143|/// never trips the deadline.\n 144|const CONTROLLER_CHANNEL_DEPTH: usize = 4096;\n...\n 153|/// untouched.\n*154|const CONTROLLER_WRITE_DEADLINE: Duration = Duration::from_secs(5);\n 155|\n 156|/// How long a controller's writer thread may sit BLOCKED inside a single socket\n*157|/// write — the brain subscriber suspended / black-holed — before a take/reattach\n 158|/// or the `KIND_SESSIONS` reap stall-evicts it (LIFECYCLE-TRUTH W2,\n 159|/// REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE). Distinct from and 3× longer than\n*160|/// [`CONTROLLER_WRITE_DEADLINE`] on PURPOSE (doyle ruling Q1): that 5 s bound\n 161|/// protects the fan-out against ONE per-client conn falling behind and is\n 162|/// output-driven (the drain observes a Full channel); THIS bound is measured\n 163|/// full-with-**zero writer progress** and covers the case the output-driven path\n*164|/// can't — an IDLE session whose brain-subscriber conn is suspended produces no\n 165|/// output, so `append`/`mark_controller_gone` never runs, and the stalled\n 166|/// controller would otherwise latch `driven_by` forever (reattach refused, `--take`\n 167|/// blocked). The brain aggregates every session + psyche + WAN feed, so its drain\n...\n 171|// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*172|const BRAIN_WRITE_DEADLINE: Duration = Duration::from_secs(15);\n 173|\n*174|/// The EFFECTIVE brain-write deadline. Production is [`BRAIN_WRITE_DEADLINE`]; the\n*175|/// suspend-brain int rig shrinks it via `SPT_BRAIN_WRITE_DEADLINE_MS` so the\n 176|/// structural outcome (a wedged controller is stall-evicted → take/reattach frees\n 177|/// the slot) is provable in ~1 s instead of 15 (mirrors the\n 178|/// `SPT_INJECT_COMMIT_DEADLINE_MS` env-knob precedent). Grants test wall-clock\n...\n 180|// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*181|fn brain_write_deadline() -> Duration {\n*182|    match std::env::var(\"SPT_BRAIN_WRITE_DEADLINE_MS\") {\n 183|        Ok(ms) => ms\n 184|            .parse::<u64>()\n 185|            .map(Duration::from_millis)\n*186|            .unwrap_or(BRAIN_WRITE_DEADLINE),\n*187|        Err(_) => BRAIN_WRITE_DEADLINE,\n 188|    }\n 189|}\n 190|\n...\n 251|\n*252|/// Broker-global tally of brain-subscriber stall-evicts (W2 observability rider,\n 253|/// doyle ruling Q3): the count since broker boot + the wall-ms of the most recent.\n 254|/// A brain that never returns is then a DIAGNOSABLE fact — surfaced on `daemon\n 255|/// status` (via [`Broker::stall_evict_stats`]) alongside the per-evict broker log\n## brain.rs\n 40|    InputReq,\n*41|    KillReq, NetDialReq, NetDialed, NetPresenceEvent, NetPresenceSubscribeReq, NetSent,\n 42|    NetStatusReply, NetStreamData, NetStreamEof, NetStreamOpenReq, NetStreamOpened, NetStreamSendReq,\n*43|    NetStreamSubscribeReq, NetStreamsReply, NetStreamOpenerReply, NetStreamOpenerReq, NetStreamRetireReq, NetStreamRetired, OutputEvent, MetMember, PairCodeSubmit, PairJoinReply, PairJoinReq, PairMeetReq, ResizeReq,\n*44|    SessionsReply, SizeEvent, SpawnReq, Spawned, SubscribeOutcome, SubscribeReq, SubscribedReply,\n 45|    ViewerEvictedEvent,\n 46|    KIND_ADAPTER_APPLY, KIND_APPLIED, KIND_BRAIN_RESTART, KIND_BROKER_IMAGE, KIND_BROKER_IMAGE_REPLY, KIND_STALL_EVICTS, KIND_STALL_EVICTS_REPLY, KIND_VIEWER_EVICTED,\n 47|    KIND_BRAIN_RESTARTED, KIND_DISPLACED, KIND_ENDPOINT_INJECTED, KIND_ENDPOINT_INPUT, KIND_ERROR, KIND_EXIT, KIND_INPUT, KIND_KILL, KIND_NET_DIAL,\n...\n 53|    KIND_NET_STREAM_OPENER, KIND_NET_STREAM_OPENER_REPLY, KIND_NET_STREAM_RETIRE, KIND_NET_STREAM_RETIRED,\n*54|    KIND_MET_MEMBER, KIND_NET_STREAM_SEND, KIND_NET_STREAM_SUBSCRIBE, KIND_OUTPUT, KIND_PAIR_CODE_SUBMIT, KIND_PAIR_JOIN, KIND_PAIR_JOINED, KIND_PAIR_MEET,\n 55|    KIND_RESIZE, KIND_SESSIONS, KIND_SESSIONS_REPLY, KIND_SIZE, KIND_SPAWN, KIND_SPAWNED,\n*56|    KIND_SUBSCRIBE, KIND_SUBSCRIBED, KIND_UNSUBSCRIBE, UnsubscribeReq,\n 57|};\n 58|use spt_net::net::attach::AttachIntent;\n 59|use crate::transport::{send_hello, LocalSocketTransport};\n...\n 166|    /// A stream's read side finished cleanly; `next_seq` is the completeness\n*167|    /// check (the subscriber's cursor must equal it to have missed nothing).\n 168|    NetStreamEof { stream_id: u64, next_seq: u64 },\n 169|    /// A contiguous conn-liveness event (the presence cursor has advanced past\n 170|    /// it) — connected/disconnected on the broker's conn table (D4c).\n...\n 271|    /// Per-net-stream resume cursors (D4b) — the stream-read siblings of\n*272|    /// `next_seq`, set by [`Brain::net_stream_subscribe`] and advanced by\n 273|    /// [`Brain::read_event`] under the same accept/dedup/gap discipline.\n 274|    /// Durability across a handoff is the logic layer's job (a re-attaching\n 275|    /// brain queries `net-streams` and re-subscribes from its durable cursors).\n...\n 883|    /// broker-IPC-CARRIER desync (the carrier ops — `net_open_stream` /\n*884|    /// `net_stream_subscribe` / `net_stream_send` — keep their raw `TimedOut`).\n 885|    /// Abandoning the peer's stream is safe: the exactly-once seq cursor stays\n 886|    /// contiguous, and a late reply on the dropped stream id matches nothing (the\n 887|    /// leg loops treat it as noise) — the desync the old blanket-poison feared\n...\n 895|    /// Attach this (freshly-connected) brain to an **existing** broker session's\n*896|    /// output from `from_seq`, e.g. a dedicated digest-feed subscriber that did\n 897|    /// not spawn the session itself. Sets the resume cursor + session, then\n 898|    /// subscribes (the broker replays from `from_seq`, then streams live). Unlike\n 899|    /// [`Brain::handoff`] this does not touch the generation — it is a *second*\n...\n 1031|    /// A NON-DRAINING consumer will SELF-DEADLOCK: an actively-streaming session backs\n*1032|    /// the conn up, the broker-side subscriber writer blocks holding the conn's single\n 1033|    /// `SharedSend` mutex ACROSS a blocking `write_frame` (broker.rs\n 1034|    /// `viewer_writer`/`controller_writer`), the dispatch reply path (`send_frame`) needs\n 1035|    /// that same lock, so any request/reply the non-draining consumer issues is starved\n...\n 1154|\n*1155|    /// Query the broker's brain-subscriber stall-evict tally (LIFECYCLE-TRUTH W2\n 1156|    /// observability rider, REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE): `(count,\n 1157|    /// last_ms)` — how many controllers were stall-evicted for a suspended/black-holed\n 1158|    /// brain conn since boot, and when the most recent fired. `None` when the broker\n...\n 1588|    // [impl->REQ-DAEMON-2]\n*1589|    pub fn net_stream_subscribe(&mut self, stream_id: u64, from_seq: u64) -> io::Result<()> {\n 1590|        self.net_cursors.insert(stream_id, from_seq);\n 1591|        self.send(\n*1592|            KIND_NET_STREAM_SUBSCRIBE,\n*1593|            serde_json::to_value(NetStreamSubscribeReq {\n 1594|                stream_id,\n 1595|                from_seq,\n 1596|            })\n*1597|            .expect(\"NetStreamSubscribeReq serializes\"),\n 1598|        )\n 1599|    }\n 1600|\n...\n 1614|            KIND_NET_PRESENCE_SUBSCRIBE,\n*1615|            serde_json::to_value(NetPresenceSubscribeReq { from_seq })\n*1616|                .expect(\"NetPresenceSubscribeReq serializes\"),\n 1617|        )\n 1618|    }\n 1619|\n...\n 1641|            KIND_NET_PRESENCE_SUBSCRIBE,\n*1642|            serde_json::to_value(NetPresenceSubscribeReq { from_seq: u64::MAX })\n*1643|                .expect(\"NetPresenceSubscribeReq serializes\"),\n 1644|        )\n 1645|    }\n 1646|\n...\n 1677|            KIND_UNSUBSCRIBE,\n*1678|            serde_json::to_value(UnsubscribeReq { session_id })\n## conn.rs\n 110|/// Attribution-label cap: facts accrete per role attach (a long-lived brain\n*111|/// conn can be controller + viewer + presence subscriber over its life), and\n 112|/// the label must stay BOUNDED — one truncation marker, then no further growth.\n 113|const LABEL_CAP: usize = 240;\n 114|\n...\n 143|    id: u64,\n*144|    /// Accreted attribution facts (subscriber role, endpoint/session where\n 145|    /// known — [`BrokerConn::describe`]). Bounded by [`LABEL_CAP`].\n 146|    label: Mutex<String>,\n 147|    /// Latch: the once-per-conn `write-start` lifecycle record fired.\n...\n 424|    /// deadline (gate-wait + OS write completion) — the broker passes its\n*425|    /// `brain_write_deadline()` (`SPT_BRAIN_WRITE_DEADLINE_MS` knob).\n 426|    pub(crate) fn new(half: SendHalf, bound: Duration) -> Self {\n 427|        let raw = raw_of(&half);\n 428|        let inner = Arc::new(Inner {\n...\n 461|\n*462|    /// Accrete an attribution fact onto this conn's label (subscriber role,\n 463|    /// endpoint/session where known — e.g. `role=brain`,\n 464|    /// `controller session=7 by=cli@host`). Facts accumulate space-separated\n 465|    /// and ride EVERY subsequent lifecycle record for this conn; growth is"}],"details":{"scopePath":"crates/spt-daemon/src/broker.rs, crates/spt-daemon/src/brain.rs, crates/spt-daemon/src/conn.rs","searchPath":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":44,"fileCount":3,"files":["crates/spt-daemon/src/broker.rs","crates/spt-daemon/src/brain.rs","crates/spt-daemon/src/conn.rs"],"fileMatches":[{"path":"crates/spt-daemon/src/broker.rs","count":20},{"path":"crates/spt-daemon/src/brain.rs","count":20},{"path":"crates/spt-daemon/src/conn.rs","count":4}],"truncated":true,"perFileLimitReached":20,"displayContent":"# crates/spt-daemon/src/\n## broker.rs\n  18│//!   [`OutputLog`]: every chunk gets a monotonic per-session `seq` and is held\n *19│//!   in a bounded ring. The current subscriber (a brain connection) receives\n *20│//!   chunks live; all subscriber writes happen *under the log lock*, so frames\n  21│//!   reach the brain in strict `seq` order with no interleave.\n  22│//! - **Resume from a cursor.** A reconnecting brain sends `subscribe` with its\n  23│//!   last-seen `seq + 1`; the broker replays the ring from there, then streams\n    │...\n  28│//! Sessions are therefore **broker-owned and outlive any one connection**: a\n *29│//! brain disconnect only detaches the subscriber; the child, its PTY, and the\n  30│//! output log persist. A session leaves the table only when its child exits\n  31│//! (reaped by the exit waiter) or is explicitly killed.\n  32│// [impl->REQ-DAEMON-2]\n    │...\n  56│    size_envelope, subscribed_envelope, AdapterApplyReq, BrainRestarted, EndpointInputReq,\n *57│    ErrorEvent, ExitEvent, InputReq, KillReq, NetDialReq, NetPresenceSubscribeReq, NetSent,\n *58│    BrokerImageReply, StallEvictsReply, NetStatusReply, NetStreamOpenReq, NetStreamOpened, NetStreamSendReq, NetStreamSubscribeReq,\n  59│    NetStreamsReply, NetStreamOpenerReply, NetStreamOpenerReq, NetStreamRetireReq, NetStreamRetired, MetMember, PairCodeSubmit, PairJoinReply, PairJoinReq, PairMeetReq, ResizeReq, SessionInfo, SessionsReply, SpawnReq,\n *60│    Spawned, SubscribeOutcome, SubscribeReq, UnsubscribeReq, KIND_BRAIN_RESTART, KIND_BRAIN_RESTARTED, KIND_ENDPOINT_INPUT, KIND_ERROR, KIND_EXIT,\n  61│    KIND_INPUT, KIND_KILL, KIND_NET_DIAL, KIND_NET_DIAL_LOOPBACK, KIND_NET_DIAL_SUBMIT,\n  62│    KIND_NET_DIAL_SUBMITTED, KIND_NET_PRESENCE_SUBSCRIBE,\n  63│    KIND_NET_SENT,\n    │...\n  66│    KIND_NET_STATUS, KIND_NET_STATUS_REPLY, KIND_NET_STREAMS, KIND_NET_STREAMS_REPLY,\n *67│    KIND_NET_STREAM_OPEN, KIND_NET_STREAM_OPENED, KIND_NET_STREAM_OPENER, KIND_NET_STREAM_OPENER_REPLY, KIND_NET_STREAM_RETIRE, KIND_NET_STREAM_RETIRED, KIND_NET_STREAM_SEND, KIND_NET_STREAM_SUBSCRIBE,\n  68│    KIND_MET_MEMBER, KIND_PAIR_CODE_SUBMIT, KIND_PAIR_JOIN, KIND_PAIR_JOINED, KIND_PAIR_MEET, KIND_RESIZE, KIND_SESSIONS, KIND_SESSIONS_REPLY, KIND_SPAWN,\n  69│    KIND_SPAWNED, KIND_SUBSCRIBE, KIND_UNSUBSCRIBE,\n  70│};\n    │...\n 140│/// merely-slow controller DROPS chunks + falls behind the ring, and only a channel\n*141│/// that stays full for [`CONTROLLER_WRITE_DEADLINE`] (tracked via\n 142│/// [`ControllerSink::last_ok`]) is detached. Generous so a momentary slow consumer\n 143│/// never trips the deadline.\n 144│const CONTROLLER_CHANNEL_DEPTH: usize = 4096;\n    │...\n 153│/// untouched.\n*154│const CONTROLLER_WRITE_DEADLINE: Duration = Duration::from_secs(5);\n 155│\n 156│/// How long a controller's writer thread may sit BLOCKED inside a single socket\n*157│/// write — the brain subscriber suspended / black-holed — before a take/reattach\n 158│/// or the `KIND_SESSIONS` reap stall-evicts it (LIFECYCLE-TRUTH W2,\n 159│/// REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE). Distinct from and 3× longer than\n*160│/// [`CONTROLLER_WRITE_DEADLINE`] on PURPOSE (doyle ruling Q1): that 5 s bound\n 161│/// protects the fan-out against ONE per-client conn falling behind and is\n 162│/// output-driven (the drain observes a Full channel); THIS bound is measured\n 163│/// full-with-**zero writer progress** and covers the case the output-driven path\n*164│/// can't — an IDLE session whose brain-subscriber conn is suspended produces no\n 165│/// output, so `append`/`mark_controller_gone` never runs, and the stalled\n 166│/// controller would otherwise latch `driven_by` forever (reattach refused, `--take`\n 167│/// blocked). The brain aggregates every session + psyche + WAN feed, so its drain\n    │...\n 171│// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*172│const BRAIN_WRITE_DEADLINE: Duration = Duration::from_secs(15);\n 173│\n*174│/// The EFFECTIVE brain-write deadline. Production is [`BRAIN_WRITE_DEADLINE`]; the\n*175│/// suspend-brain int rig shrinks it via `SPT_BRAIN_WRITE_DEADLINE_MS` so the\n 176│/// structural outcome (a wedged controller is stall-evicted → take/reattach frees\n 177│/// the slot) is provable in ~1 s instead of 15 (mirrors the\n 178│/// `SPT_INJECT_COMMIT_DEADLINE_MS` env-knob precedent). Grants test wall-clock\n    │...\n 180│// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*181│fn brain_write_deadline() -> Duration {\n*182│    match std::env::var(\"SPT_BRAIN_WRITE_DEADLINE_MS\") {\n 183│        Ok(ms) => ms\n 184│            .parse::<u64>()\n 185│            .map(Duration::from_millis)\n*186│            .unwrap_or(BRAIN_WRITE_DEADLINE),\n*187│        Err(_) => BRAIN_WRITE_DEADLINE,\n 188│    }\n 189│}\n 190│\n    │...\n 251│\n*252│/// Broker-global tally of brain-subscriber stall-evicts (W2 observability rider,\n 253│/// doyle ruling Q3): the count since broker boot + the wall-ms of the most recent.\n 254│/// A brain that never returns is then a DIAGNOSABLE fact — surfaced on `daemon\n 255│/// status` (via [`Broker::stall_evict_stats`]) alongside the per-evict broker log\n## brain.rs\n   40│    InputReq,\n  *41│    KillReq, NetDialReq, NetDialed, NetPresenceEvent, NetPresenceSubscribeReq, NetSent,\n   42│    NetStatusReply, NetStreamData, NetStreamEof, NetStreamOpenReq, NetStreamOpened, NetStreamSendReq,\n  *43│    NetStreamSubscribeReq, NetStreamsReply, NetStreamOpenerReply, NetStreamOpenerReq, NetStreamRetireReq, NetStreamRetired, OutputEvent, MetMember, PairCodeSubmit, PairJoinReply, PairJoinReq, PairMeetReq, ResizeReq,\n  *44│    SessionsReply, SizeEvent, SpawnReq, Spawned, SubscribeOutcome, SubscribeReq, SubscribedReply,\n   45│    ViewerEvictedEvent,\n   46│    KIND_ADAPTER_APPLY, KIND_APPLIED, KIND_BRAIN_RESTART, KIND_BROKER_IMAGE, KIND_BROKER_IMAGE_REPLY, KIND_STALL_EVICTS, KIND_STALL_EVICTS_REPLY, KIND_VIEWER_EVICTED,\n   47│    KIND_BRAIN_RESTARTED, KIND_DISPLACED, KIND_ENDPOINT_INJECTED, KIND_ENDPOINT_INPUT, KIND_ERROR, KIND_EXIT, KIND_INPUT, KIND_KILL, KIND_NET_DIAL,\n     │...\n   53│    KIND_NET_STREAM_OPENER, KIND_NET_STREAM_OPENER_REPLY, KIND_NET_STREAM_RETIRE, KIND_NET_STREAM_RETIRED,\n  *54│    KIND_MET_MEMBER, KIND_NET_STREAM_SEND, KIND_NET_STREAM_SUBSCRIBE, KIND_OUTPUT, KIND_PAIR_CODE_SUBMIT, KIND_PAIR_JOIN, KIND_PAIR_JOINED, KIND_PAIR_MEET,\n   55│    KIND_RESIZE, KIND_SESSIONS, KIND_SESSIONS_REPLY, KIND_SIZE, KIND_SPAWN, KIND_SPAWNED,\n  *56│    KIND_SUBSCRIBE, KIND_SUBSCRIBED, KIND_UNSUBSCRIBE, UnsubscribeReq,\n   57│};\n   58│use spt_net::net::attach::AttachIntent;\n   59│use crate::transport::{send_hello, LocalSocketTransport};\n     │...\n  166│    /// A stream's read side finished cleanly; `next_seq` is the completeness\n *167│    /// check (the subscriber's cursor must equal it to have missed nothing).\n  168│    NetStreamEof { stream_id: u64, next_seq: u64 },\n  169│    /// A contiguous conn-liveness event (the presence cursor has advanced past\n  170│    /// it) — connected/disconnected on the broker's conn table (D4c).\n     │...\n  271│    /// Per-net-stream resume cursors (D4b) — the stream-read siblings of\n *272│    /// `next_seq`, set by [`Brain::net_stream_subscribe`] and advanced by\n  273│    /// [`Brain::read_event`] under the same accept/dedup/gap discipline.\n  274│    /// Durability across a handoff is the logic layer's job (a re-attaching\n  275│    /// brain queries `net-streams` and re-subscribes from its durable cursors).\n     │...\n  883│    /// broker-IPC-CARRIER desync (the carrier ops — `net_open_stream` /\n *884│    /// `net_stream_subscribe` / `net_stream_send` — keep their raw `TimedOut`).\n  885│    /// Abandoning the peer's stream is safe: the exactly-once seq cursor stays\n  886│    /// contiguous, and a late reply on the dropped stream id matches nothing (the\n  887│    /// leg loops treat it as noise) — the desync the old blanket-poison feared\n     │...\n  895│    /// Attach this (freshly-connected) brain to an **existing** broker session's\n *896│    /// output from `from_seq`, e.g. a dedicated digest-feed subscriber that did\n  897│    /// not spawn the session itself. Sets the resume cursor + session, then\n  898│    /// subscribes (the broker replays from `from_seq`, then streams live). Unlike\n  899│    /// [`Brain::handoff`] this does not touch the generation — it is a *second*\n     │...\n 1031│    /// A NON-DRAINING consumer will SELF-DEADLOCK: an actively-streaming session backs\n*1032│    /// the conn up, the broker-side subscriber writer blocks holding the conn's single\n 1033│    /// `SharedSend` mutex ACROSS a blocking `write_frame` (broker.rs\n 1034│    /// `viewer_writer`/`controller_writer`), the dispatch reply path (`send_frame`) needs\n 1035│    /// that same lock, so any request/reply the non-draining consumer issues is starved\n     │...\n 1154│\n*1155│    /// Query the broker's brain-subscriber stall-evict tally (LIFECYCLE-TRUTH W2\n 1156│    /// observability rider, REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE): `(count,\n 1157│    /// last_ms)` — how many controllers were stall-evicted for a suspended/black-holed\n 1158│    /// brain conn since boot, and when the most recent fired. `None` when the broker\n     │...\n 1588│    // [impl->REQ-DAEMON-2]\n*1589│    pub fn net_stream_subscribe(&mut self, stream_id: u64, from_seq: u64) -> io::Result<()> {\n 1590│        self.net_cursors.insert(stream_id, from_seq);\n 1591│        self.send(\n*1592│            KIND_NET_STREAM_SUBSCRIBE,\n*1593│            serde_json::to_value(NetStreamSubscribeReq {\n 1594│                stream_id,\n 1595│                from_seq,\n 1596│            })\n*1597│            .expect(\"NetStreamSubscribeReq serializes\"),\n 1598│        )\n 1599│    }\n 1600│\n     │...\n 1614│            KIND_NET_PRESENCE_SUBSCRIBE,\n*1615│            serde_json::to_value(NetPresenceSubscribeReq { from_seq })\n*1616│                .expect(\"NetPresenceSubscribeReq serializes\"),\n 1617│        )\n 1618│    }\n 1619│\n     │...\n 1641│            KIND_NET_PRESENCE_SUBSCRIBE,\n*1642│            serde_json::to_value(NetPresenceSubscribeReq { from_seq: u64::MAX })\n*1643│                .expect(\"NetPresenceSubscribeReq serializes\"),\n 1644│        )\n 1645│    }\n 1646│\n     │...\n 1677│            KIND_UNSUBSCRIBE,\n*1678│            serde_json::to_value(UnsubscribeReq { session_id })\n## conn.rs\n 110│/// Attribution-label cap: facts accrete per role attach (a long-lived brain\n*111│/// conn can be controller + viewer + presence subscriber over its life), and\n 112│/// the label must stay BOUNDED — one truncation marker, then no further growth.\n 113│const LABEL_CAP: usize = 240;\n 114│\n    │...\n 143│    id: u64,\n*144│    /// Accreted attribution facts (subscriber role, endpoint/session where\n 145│    /// known — [`BrokerConn::describe`]). Bounded by [`LABEL_CAP`].\n 146│    label: Mutex<String>,\n 147│    /// Latch: the once-per-conn `write-start` lifecycle record fired.\n    │...\n 424│    /// deadline (gate-wait + OS write completion) — the broker passes its\n*425│    /// `brain_write_deadline()` (`SPT_BRAIN_WRITE_DEADLINE_MS` knob).\n 426│    pub(crate) fn new(half: SendHalf, bound: Duration) -> Self {\n 427│        let raw = raw_of(&half);\n 428│        let inner = Arc::new(Inner {\n    │...\n 461│\n*462│    /// Accrete an attribution fact onto this conn's label (subscriber role,\n 463│    /// endpoint/session where known — e.g. `role=brain`,\n 464│    /// `controller session=7 by=cli@host`). Facts accumulate space-separated\n 465│    /// and ride EVERY subsequent lifecycle record for this conn; growth is"},"isError":false,"timestamp":1784247448200}}
{"type":"message","id":"a7929a09","parentId":"5b422c3c","timestamp":"2026-07-17T00:17:28.202Z","message":{"role":"toolResult","toolCallId":"call_aY3Or09HwFaYagW9qGEKrzgX|fc_05a4d8ea8a10ef0b016a5974980af4819890703fb7165967e1","toolName":"grep","content":[{"type":"text","text":"# crates/\n\n## spt-daemon/src/\n### brain.rs\n 37|use crate::msg::{\n*38|    decode_bytes, encode_bytes, AdapterApplyReq, AppliedEvent, BrainRestarted, BrokerImageReply, StallEvictsReply, DisplacedEvent,\n 39|    EndpointInjected, EndpointInputReq, ErrorEvent, ExitEvent,\n 40|    InputReq,\n 41|    KillReq, NetDialReq, NetDialed, NetPresenceEvent, NetPresenceSubscribeReq, NetSent,\n...\n 45|    ViewerEvictedEvent,\n*46|    KIND_ADAPTER_APPLY, KIND_APPLIED, KIND_BRAIN_RESTART, KIND_BROKER_IMAGE, KIND_BROKER_IMAGE_REPLY, KIND_STALL_EVICTS, KIND_STALL_EVICTS_REPLY, KIND_VIEWER_EVICTED,\n 47|    KIND_BRAIN_RESTARTED, KIND_DISPLACED, KIND_ENDPOINT_INJECTED, KIND_ENDPOINT_INPUT, KIND_ERROR, KIND_EXIT, KIND_INPUT, KIND_KILL, KIND_NET_DIAL,\n 48|    KIND_NET_DIALED, KIND_NET_DIAL_LOOPBACK, KIND_NET_DIAL_SUBMIT, KIND_NET_DIAL_SUBMITTED,\n 49|    KIND_NET_PRESENCE_EVENT, KIND_NET_PRESENCE_SUBSCRIBE,\n...\n 1162|    // [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*1163|    pub fn stall_evicts(&mut self) -> io::Result<Option<(u64, u64)>> {\n*1164|        self.send(KIND_STALL_EVICTS, serde_json::Value::Null)?;\n 1165|        loop {\n 1166|            let env = self.read_frame_until(None)?;\n 1167|            match env.kind.as_str() {\n*1168|                KIND_STALL_EVICTS_REPLY => {\n*1169|                    let ev: StallEvictsReply = serde_json::from_value(env.payload)\n 1170|                        .map_err(|e| io::Error::new(io::ErrorKind::InvalidData, e))?;\n 1171|                    return Ok(Some((ev.count, ev.last_ms)));\n 1172|                }\n...\n 1657|    /// does not close the conn), FREEZING the session immediately; a >15s\n*1658|    /// `stall_evict_controller` is a separate, later, output-dependent symptom\n 1659|    /// (only an actively-producing stolen session blocks long enough to evict).\n 1660|    /// That is correct for `attach` (a serve loop that WILL drive the session), but\n 1661|    /// it is why a brain-respawn must NOT resume-re-attach as Control — it would\n### brainproc.rs\n 288|        // rollback (the 2026-07-09 field freeze), AND the same wedge black-holes recovery\n*289|        // (the late `BRAIN_SUBSCRIBER_STALL_EVICT`). Driven on the FIRST heartbeat and on\n 290|        // BOTH the trial candidate AND the rollback/recovery brain (one loop covers both);\n 291|        // best-effort — a transient sessions error must never fell the heartbeat (the\n 292|        // net_status probe above already owns broker-liveness). Self-applies: it drives\n### broker.rs\n 57|    ErrorEvent, ExitEvent, InputReq, KillReq, NetDialReq, NetPresenceSubscribeReq, NetSent,\n*58|    BrokerImageReply, StallEvictsReply, NetStatusReply, NetStreamOpenReq, NetStreamOpened, NetStreamSendReq, NetStreamSubscribeReq,\n 59|    NetStreamsReply, NetStreamOpenerReply, NetStreamOpenerReq, NetStreamRetireReq, NetStreamRetired, MetMember, PairCodeSubmit, PairJoinReply, PairJoinReq, PairMeetReq, ResizeReq, SessionInfo, SessionsReply, SpawnReq,\n 60|    Spawned, SubscribeOutcome, SubscribeReq, UnsubscribeReq, KIND_BRAIN_RESTART, KIND_BRAIN_RESTARTED, KIND_ENDPOINT_INPUT, KIND_ERROR, KIND_EXIT,\n 61|    KIND_INPUT, KIND_KILL, KIND_NET_DIAL, KIND_NET_DIAL_LOOPBACK, KIND_NET_DIAL_SUBMIT,\n...\n 64|    KIND_ADAPTER_APPLY, KIND_APPLIED,\n*65|    KIND_BROKER_IMAGE, KIND_BROKER_IMAGE_REPLY, KIND_STALL_EVICTS, KIND_STALL_EVICTS_REPLY,\n 66|    KIND_NET_STATUS, KIND_NET_STATUS_REPLY, KIND_NET_STREAMS, KIND_NET_STREAMS_REPLY,\n 67|    KIND_NET_STREAM_OPEN, KIND_NET_STREAM_OPENED, KIND_NET_STREAM_OPENER, KIND_NET_STREAM_OPENER_REPLY, KIND_NET_STREAM_RETIRE, KIND_NET_STREAM_RETIRED, KIND_NET_STREAM_SEND, KIND_NET_STREAM_SUBSCRIBE,\n 68|    KIND_MET_MEMBER, KIND_PAIR_CODE_SUBMIT, KIND_PAIR_JOIN, KIND_PAIR_JOINED, KIND_PAIR_MEET, KIND_RESIZE, KIND_SESSIONS, KIND_SESSIONS_REPLY, KIND_SPAWN,\n...\n 254|/// A brain that never returns is then a DIAGNOSABLE fact — surfaced on `daemon\n*255|/// status` (via [`Broker::stall_evict_stats`]) alongside the per-evict broker log\n 256|/// line, not a silent absence.\n 257|// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*258|static STALL_EVICT_COUNT: AtomicU64 = AtomicU64::new(0);\n*259|static STALL_EVICT_LAST_MS: AtomicU64 = AtomicU64::new(0);\n 260|\n 261|/// Record one stall-evict in the broker-global tally (best-effort observability).\n 262|// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*263|fn record_stall_evict() {\n*264|    STALL_EVICT_COUNT.fetch_add(1, Ordering::Relaxed);\n*265|    STALL_EVICT_LAST_MS.store(crate::brain::now_ms(), Ordering::Relaxed);\n 266|}\n 267|\n 268|/// The current stall-evict tally `(count_since_boot, last_evict_wall_ms)` —\n...\n 271|// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*272|pub(crate) fn stall_evict_stats() -> (u64, u64) {\n 273|    (\n*274|        STALL_EVICT_COUNT.load(Ordering::Relaxed),\n*275|        STALL_EVICT_LAST_MS.load(Ordering::Relaxed),\n 276|    )\n 277|}\n 278|\n...\n 1008|        // the multi-session snapshot closure (no I/O under the shared sessions lock).\n*1009|        self.stall_evict_controller(Instant::now(), StampMode::Deferred)\n 1010|    }\n 1011|\n 1012|    /// Deadline-evict path (W1): the drain observed a fully-stalled controller and\n...\n 1063|    // [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*1064|    fn stall_evict_controller(&mut self, now: Instant, stamp: StampMode) -> bool {\n 1065|        let deadline = brain_write_deadline();\n 1066|        if !self.controller_write_stalled(now, deadline) {\n 1067|            return false;\n...\n 1072|        eprintln!(\n*1073|            \"BRAIN_SUBSCRIBER_STALL_EVICT:{} conn={conn} {} — controller writer blocked > {}ms \\\n 1074|             on a suspended/black-holed brain conn; detached, driven_by released \\\n 1075|             [REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\",\n 1076|            self.session_id,\n...\n 1079|        );\n*1080|        record_stall_evict();\n 1081|        match stamp {\n 1082|            // Inline: drop the sink AND re-stamp the perch (become_controller's\n 1083|            // sibling — the take/reattach path is already I/O-under-log-lock).\n...\n 1173|        // reads free and the normal free/take logic below runs.\n*1174|        self.stall_evict_controller(Instant::now(), StampMode::Inline);\n 1175|        if self.controller.is_none() {\n 1176|            // Free endpoint → become controller (nothing to displace).\n 1177|            self.become_controller(sub, by, from_seq);\n...\n 1436|/// brain-subscriber stall-evict fact the W2 tally counts. Pre-round-4 that\n*1437|/// wedge aged until a logical sampler (`stall_evict_controller`) observed it;\n 1438|/// the physical bound now fires FIRST, so the tally is recorded here — same\n 1439|/// event class, same `daemon status` surface. An ORGANIC write failure (peer\n 1440|/// death, any non-TimedOut error) stays uncounted, exactly as before.\n...\n 1448|    eprintln!(\n*1449|        \"BRAIN_SUBSCRIBER_STALL_EVICT:{sid} conn={conn} {} — controller conn write \\\n 1450|         exceeded its bound; physical conn poisoned + retired (writer released, EOF \\\n 1451|         cleanup follows) [REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\",\n 1452|        crate::conn::log_stamp()\n 1453|    );\n*1454|    record_stall_evict();\n 1455|}\n 1456|\n 1457|/// A message to the CONTROLLER writer thread (W1). `Output` carries a sequenced\n...\n 2792|    /// the physical bound itself is `brain_decouple.rs`'s concern. The wedge\n*2793|    /// drains through the REAL logical paths (a take's `stall_evict_controller`\n 2794|    /// or a `KIND_SESSIONS` reap), exactly like a production stall-evict.\n 2795|    /// Returns false if the session doesn't exist or the seed can't be built.\n 2796|    /// `#[doc(hidden)]` — test support, not a product surface.\n### conn.rs\n 11|//! wedged; a suspended brain) therefore blocks the write INDEFINITELY, and the\n*12|//! logical stall-evict (`stall_evict_controller`) releases only the controller\n 13|//! ROLE — it never cancels the in-flight pipe write or closes the physical\n 14|//! connection, so the writer (and every write queued behind the same gate)\n 15|//! stays wedged until the peer process dies (~128 s in the field capture, on a\n### msg.rs\n 107|/// replies `unknown command kind` (forward-compat), read as \"not reported\".\n*108|pub const KIND_STALL_EVICTS: &str = \"stall-evicts\";\n 109|/// Broker→brain: the stall-evict tally reply.\n*110|pub const KIND_STALL_EVICTS_REPLY: &str = \"stall-evicts-reply\";\n 111|/// Brain→broker: dial a peer over the broker-owned endpoint (D4a). With an\n 112|/// `op_id` the dial is exactly-once (journaled like an idempotent `input`).\n 113|pub const KIND_NET_DIAL: &str = \"net-dial\";\n...\n 574|#[derive(Debug, Clone, Serialize, Deserialize)]\n*575|pub struct StallEvictsReply {\n 576|    /// Controllers stall-evicted for a suspended/black-holed brain conn since broker boot.\n 577|    #[serde(default)]\n 578|    pub count: u64,\n\n## spt/src/\n### cli.rs\n 4166|    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n*4167|    stall_evict_count: Option<u64>,\n 4168|    /// Wall-ms of the most recent stall-evict (0 = none). Omitted when count is None.\n 4169|    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n*4170|    stall_evict_last_ms: Option<u64>,\n 4171|    /// PROJECT-INDEX W2 (ADR-0037): the index writer's observability sidecar —\n 4172|    /// generated time, source generation, pending refresh, last duration/error,\n 4173|    /// counts, cache hits/misses, stale reads, repairs, and the per-cycle\n...\n 4296|\n*4297|fn render_stall_evict_line(stats: Option<(u64, u64)>) -> Option<String> {\n 4298|    let (count, last_ms) = stats?;\n 4299|    if count == 0 {\n 4300|        return Some(\"brain subscribers: healthy (none stall-evicted)\".to_string());\n...\n 4367|                    let n = b.net_status().ok().map(|s| s.enabled).unwrap_or(true);\n*4368|                    let stall = b.stall_evicts().ok().flatten();\n 4369|                    // Ok(Some)=version / Ok(None)=old broker (both a successful\n 4370|                    // query) vs Err=couldn't query — keep them distinct so a\n 4371|                    // transient IPC failure does not read as a definite stale.\n...\n 4381|        };\n*4382|        let (stall_evict_count, stall_evict_last_ms) = match stall_stats {\n 4383|            Some((c, l)) => (Some(c), Some(l)),\n 4384|            None => (None, None),\n 4385|        };\n...\n 4452|            broker_stale,\n*4453|            stall_evict_count,\n*4454|            stall_evict_last_ms,\n 4455|            project_index: spt_daemon::projwriter::read_stats_at(\n 4456|                &spt_daemon::projwriter::stats_path(),\n 4457|            ),\n...\n 4480|                let net_up = b.net_status().ok().map(|s| s.enabled).unwrap_or(true);\n*4481|                let stall = b.stall_evicts().ok().flatten();\n 4482|                let image = b.broker_image_version().ok().flatten();\n 4483|                (net_up, image, stall)\n 4484|            }\n...\n 4508|        // never returned is a diagnosable fact, not a silent absence.\n*4509|        if let Some(line) = render_stall_evict_line(stall_stats) {\n 4510|            println!(\"{line}\");\n 4511|        }\n 4512|        // [impl->REQ-PUMP-STAGE-TRUTH] peer reachability truth (ADR-0039): the\n...\n 17972|    #[test]\n*17973|    fn stall_evict_line_surfaces_only_a_real_tally() {\n*17974|        assert_eq!(render_stall_evict_line(None), None, \"unqueryable → no line\");\n 17975|\n*17976|        let healthy = render_stall_evict_line(Some((0, 0))).expect(\"Some(0) renders a healthy line\");\n 17977|        assert!(healthy.contains(\"healthy\"), \"got {healthy}\");\n 17978|        assert!(healthy.contains(\"none\"), \"got {healthy}\");\n 17979|\n 17980|        let evicted =\n*17981|            render_stall_evict_line(Some((3, 1_700_000_000_000))).expect(\"a non-zero tally renders\");\n 17982|        assert!(evicted.contains('3'), \"names the count: {evicted}\");\n 17983|        assert!(evicted.contains(\"1700000000000\"), \"names the last time: {evicted}\");\n 17984|        assert!(\n...\n 17992|            assert!(\n*17993|                !line.contains(\"STALL_EVICT\") && !line.contains(\"_DECOUPLE\"),\n 17994|                \"no internal CODE marker: {line}\"\n 17995|            );\n 17996|        }"}],"details":{"scopePath":"crates/spt-daemon/src, crates/spt-proto/src, crates/spt/src","searchPath":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":46,"fileCount":6,"files":["crates/spt-daemon/src/brain.rs","crates/spt-daemon/src/brainproc.rs","crates/spt-daemon/src/broker.rs","crates/spt-daemon/src/conn.rs","crates/spt-daemon/src/msg.rs","crates/spt/src/cli.rs"],"fileMatches":[{"path":"crates/spt-daemon/src/brain.rs","count":7},{"path":"crates/spt-daemon/src/brainproc.rs","count":1},{"path":"crates/spt-daemon/src/broker.rs","count":20},{"path":"crates/spt-daemon/src/conn.rs","count":1},{"path":"crates/spt-daemon/src/msg.rs","count":3},{"path":"crates/spt/src/cli.rs","count":14}],"truncated":true,"perFileLimitReached":20,"displayContent":"# crates/\n\n## spt-daemon/src/\n### brain.rs\n   37│use crate::msg::{\n  *38│    decode_bytes, encode_bytes, AdapterApplyReq, AppliedEvent, BrainRestarted, BrokerImageReply, StallEvictsReply, DisplacedEvent,\n   39│    EndpointInjected, EndpointInputReq, ErrorEvent, ExitEvent,\n   40│    InputReq,\n   41│    KillReq, NetDialReq, NetDialed, NetPresenceEvent, NetPresenceSubscribeReq, NetSent,\n     │...\n   45│    ViewerEvictedEvent,\n  *46│    KIND_ADAPTER_APPLY, KIND_APPLIED, KIND_BRAIN_RESTART, KIND_BROKER_IMAGE, KIND_BROKER_IMAGE_REPLY, KIND_STALL_EVICTS, KIND_STALL_EVICTS_REPLY, KIND_VIEWER_EVICTED,\n   47│    KIND_BRAIN_RESTARTED, KIND_DISPLACED, KIND_ENDPOINT_INJECTED, KIND_ENDPOINT_INPUT, KIND_ERROR, KIND_EXIT, KIND_INPUT, KIND_KILL, KIND_NET_DIAL,\n   48│    KIND_NET_DIALED, KIND_NET_DIAL_LOOPBACK, KIND_NET_DIAL_SUBMIT, KIND_NET_DIAL_SUBMITTED,\n   49│    KIND_NET_PRESENCE_EVENT, KIND_NET_PRESENCE_SUBSCRIBE,\n     │...\n 1162│    // [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*1163│    pub fn stall_evicts(&mut self) -> io::Result<Option<(u64, u64)>> {\n*1164│        self.send(KIND_STALL_EVICTS, serde_json::Value::Null)?;\n 1165│        loop {\n 1166│            let env = self.read_frame_until(None)?;\n 1167│            match env.kind.as_str() {\n*1168│                KIND_STALL_EVICTS_REPLY => {\n*1169│                    let ev: StallEvictsReply = serde_json::from_value(env.payload)\n 1170│                        .map_err(|e| io::Error::new(io::ErrorKind::InvalidData, e))?;\n 1171│                    return Ok(Some((ev.count, ev.last_ms)));\n 1172│                }\n     │...\n 1657│    /// does not close the conn), FREEZING the session immediately; a >15s\n*1658│    /// `stall_evict_controller` is a separate, later, output-dependent symptom\n 1659│    /// (only an actively-producing stolen session blocks long enough to evict).\n 1660│    /// That is correct for `attach` (a serve loop that WILL drive the session), but\n 1661│    /// it is why a brain-respawn must NOT resume-re-attach as Control — it would\n### brainproc.rs\n 288│        // rollback (the 2026-07-09 field freeze), AND the same wedge black-holes recovery\n*289│        // (the late `BRAIN_SUBSCRIBER_STALL_EVICT`). Driven on the FIRST heartbeat and on\n 290│        // BOTH the trial candidate AND the rollback/recovery brain (one loop covers both);\n 291│        // best-effort — a transient sessions error must never fell the heartbeat (the\n 292│        // net_status probe above already owns broker-liveness). Self-applies: it drives\n### broker.rs\n   57│    ErrorEvent, ExitEvent, InputReq, KillReq, NetDialReq, NetPresenceSubscribeReq, NetSent,\n  *58│    BrokerImageReply, StallEvictsReply, NetStatusReply, NetStreamOpenReq, NetStreamOpened, NetStreamSendReq, NetStreamSubscribeReq,\n   59│    NetStreamsReply, NetStreamOpenerReply, NetStreamOpenerReq, NetStreamRetireReq, NetStreamRetired, MetMember, PairCodeSubmit, PairJoinReply, PairJoinReq, PairMeetReq, ResizeReq, SessionInfo, SessionsReply, SpawnReq,\n   60│    Spawned, SubscribeOutcome, SubscribeReq, UnsubscribeReq, KIND_BRAIN_RESTART, KIND_BRAIN_RESTARTED, KIND_ENDPOINT_INPUT, KIND_ERROR, KIND_EXIT,\n   61│    KIND_INPUT, KIND_KILL, KIND_NET_DIAL, KIND_NET_DIAL_LOOPBACK, KIND_NET_DIAL_SUBMIT,\n     │...\n   64│    KIND_ADAPTER_APPLY, KIND_APPLIED,\n  *65│    KIND_BROKER_IMAGE, KIND_BROKER_IMAGE_REPLY, KIND_STALL_EVICTS, KIND_STALL_EVICTS_REPLY,\n   66│    KIND_NET_STATUS, KIND_NET_STATUS_REPLY, KIND_NET_STREAMS, KIND_NET_STREAMS_REPLY,\n   67│    KIND_NET_STREAM_OPEN, KIND_NET_STREAM_OPENED, KIND_NET_STREAM_OPENER, KIND_NET_STREAM_OPENER_REPLY, KIND_NET_STREAM_RETIRE, KIND_NET_STREAM_RETIRED, KIND_NET_STREAM_SEND, KIND_NET_STREAM_SUBSCRIBE,\n   68│    KIND_MET_MEMBER, KIND_PAIR_CODE_SUBMIT, KIND_PAIR_JOIN, KIND_PAIR_JOINED, KIND_PAIR_MEET, KIND_RESIZE, KIND_SESSIONS, KIND_SESSIONS_REPLY, KIND_SPAWN,\n     │...\n  254│/// A brain that never returns is then a DIAGNOSABLE fact — surfaced on `daemon\n *255│/// status` (via [`Broker::stall_evict_stats`]) alongside the per-evict broker log\n  256│/// line, not a silent absence.\n  257│// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n *258│static STALL_EVICT_COUNT: AtomicU64 = AtomicU64::new(0);\n *259│static STALL_EVICT_LAST_MS: AtomicU64 = AtomicU64::new(0);\n  260│\n  261│/// Record one stall-evict in the broker-global tally (best-effort observability).\n  262│// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n *263│fn record_stall_evict() {\n *264│    STALL_EVICT_COUNT.fetch_add(1, Ordering::Relaxed);\n *265│    STALL_EVICT_LAST_MS.store(crate::brain::now_ms(), Ordering::Relaxed);\n  266│}\n  267│\n  268│/// The current stall-evict tally `(count_since_boot, last_evict_wall_ms)` —\n     │...\n  271│// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n *272│pub(crate) fn stall_evict_stats() -> (u64, u64) {\n  273│    (\n *274│        STALL_EVICT_COUNT.load(Ordering::Relaxed),\n *275│        STALL_EVICT_LAST_MS.load(Ordering::Relaxed),\n  276│    )\n  277│}\n  278│\n     │...\n 1008│        // the multi-session snapshot closure (no I/O under the shared sessions lock).\n*1009│        self.stall_evict_controller(Instant::now(), StampMode::Deferred)\n 1010│    }\n 1011│\n 1012│    /// Deadline-evict path (W1): the drain observed a fully-stalled controller and\n     │...\n 1063│    // [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\n*1064│    fn stall_evict_controller(&mut self, now: Instant, stamp: StampMode) -> bool {\n 1065│        let deadline = brain_write_deadline();\n 1066│        if !self.controller_write_stalled(now, deadline) {\n 1067│            return false;\n     │...\n 1072│        eprintln!(\n*1073│            \"BRAIN_SUBSCRIBER_STALL_EVICT:{} conn={conn} {} — controller writer blocked > {}ms \\\n 1074│             on a suspended/black-holed brain conn; detached, driven_by released \\\n 1075│             [REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\",\n 1076│            self.session_id,\n     │...\n 1079│        );\n*1080│        record_stall_evict();\n 1081│        match stamp {\n 1082│            // Inline: drop the sink AND re-stamp the perch (become_controller's\n 1083│            // sibling — the take/reattach path is already I/O-under-log-lock).\n     │...\n 1173│        // reads free and the normal free/take logic below runs.\n*1174│        self.stall_evict_controller(Instant::now(), StampMode::Inline);\n 1175│        if self.controller.is_none() {\n 1176│            // Free endpoint → become controller (nothing to displace).\n 1177│            self.become_controller(sub, by, from_seq);\n     │...\n 1436│/// brain-subscriber stall-evict fact the W2 tally counts. Pre-round-4 that\n*1437│/// wedge aged until a logical sampler (`stall_evict_controller`) observed it;\n 1438│/// the physical bound now fires FIRST, so the tally is recorded here — same\n 1439│/// event class, same `daemon status` surface. An ORGANIC write failure (peer\n 1440│/// death, any non-TimedOut error) stays uncounted, exactly as before.\n     │...\n 1448│    eprintln!(\n*1449│        \"BRAIN_SUBSCRIBER_STALL_EVICT:{sid} conn={conn} {} — controller conn write \\\n 1450│         exceeded its bound; physical conn poisoned + retired (writer released, EOF \\\n 1451│         cleanup follows) [REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\",\n 1452│        crate::conn::log_stamp()\n 1453│    );\n*1454│    record_stall_evict();\n 1455│}\n 1456│\n 1457│/// A message to the CONTROLLER writer thread (W1). `Output` carries a sequenced\n     │...\n 2792│    /// the physical bound itself is `brain_decouple.rs`'s concern. The wedge\n*2793│    /// drains through the REAL logical paths (a take's `stall_evict_controller`\n 2794│    /// or a `KIND_SESSIONS` reap), exactly like a production stall-evict.\n 2795│    /// Returns false if the session doesn't exist or the seed can't be built.\n 2796│    /// `#[doc(hidden)]` — test support, not a product surface.\n### conn.rs\n 11│//! wedged; a suspended brain) therefore blocks the write INDEFINITELY, and the\n*12│//! logical stall-evict (`stall_evict_controller`) releases only the controller\n 13│//! ROLE — it never cancels the in-flight pipe write or closes the physical\n 14│//! connection, so the writer (and every write queued behind the same gate)\n 15│//! stays wedged until the peer process dies (~128 s in the field capture, on a\n### msg.rs\n 107│/// replies `unknown command kind` (forward-compat), read as \"not reported\".\n*108│pub const KIND_STALL_EVICTS: &str = \"stall-evicts\";\n 109│/// Broker→brain: the stall-evict tally reply.\n*110│pub const KIND_STALL_EVICTS_REPLY: &str = \"stall-evicts-reply\";\n 111│/// Brain→broker: dial a peer over the broker-owned endpoint (D4a). With an\n 112│/// `op_id` the dial is exactly-once (journaled like an idempotent `input`).\n 113│pub const KIND_NET_DIAL: &str = \"net-dial\";\n    │...\n 574│#[derive(Debug, Clone, Serialize, Deserialize)]\n*575│pub struct StallEvictsReply {\n 576│    /// Controllers stall-evicted for a suspended/black-holed brain conn since broker boot.\n 577│    #[serde(default)]\n 578│    pub count: u64,\n\n## spt/src/\n### cli.rs\n  4166│    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n *4167│    stall_evict_count: Option<u64>,\n  4168│    /// Wall-ms of the most recent stall-evict (0 = none). Omitted when count is None.\n  4169│    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n *4170│    stall_evict_last_ms: Option<u64>,\n  4171│    /// PROJECT-INDEX W2 (ADR-0037): the index writer's observability sidecar —\n  4172│    /// generated time, source generation, pending refresh, last duration/error,\n  4173│    /// counts, cache hits/misses, stale reads, repairs, and the per-cycle\n      │...\n  4296│\n *4297│fn render_stall_evict_line(stats: Option<(u64, u64)>) -> Option<String> {\n  4298│    let (count, last_ms) = stats?;\n  4299│    if count == 0 {\n  4300│        return Some(\"brain subscribers: healthy (none stall-evicted)\".to_string());\n      │...\n  4367│                    let n = b.net_status().ok().map(|s| s.enabled).unwrap_or(true);\n *4368│                    let stall = b.stall_evicts().ok().flatten();\n  4369│                    // Ok(Some)=version / Ok(None)=old broker (both a successful\n  4370│                    // query) vs Err=couldn't query — keep them distinct so a\n  4371│                    // transient IPC failure does not read as a definite stale.\n      │...\n  4381│        };\n *4382│        let (stall_evict_count, stall_evict_last_ms) = match stall_stats {\n  4383│            Some((c, l)) => (Some(c), Some(l)),\n  4384│            None => (None, None),\n  4385│        };\n      │...\n  4452│            broker_stale,\n *4453│            stall_evict_count,\n *4454│            stall_evict_last_ms,\n  4455│            project_index: spt_daemon::projwriter::read_stats_at(\n  4456│                &spt_daemon::projwriter::stats_path(),\n  4457│            ),\n      │...\n  4480│                let net_up = b.net_status().ok().map(|s| s.enabled).unwrap_or(true);\n *4481│                let stall = b.stall_evicts().ok().flatten();\n  4482│                let image = b.broker_image_version().ok().flatten();\n  4483│                (net_up, image, stall)\n  4484│            }\n      │...\n  4508│        // never returned is a diagnosable fact, not a silent absence.\n *4509│        if let Some(line) = render_stall_evict_line(stall_stats) {\n  4510│            println!(\"{line}\");\n  4511│        }\n  4512│        // [impl->REQ-PUMP-STAGE-TRUTH] peer reachability truth (ADR-0039): the\n      │...\n 17972│    #[test]\n*17973│    fn stall_evict_line_surfaces_only_a_real_tally() {\n*17974│        assert_eq!(render_stall_evict_line(None), None, \"unqueryable → no line\");\n 17975│\n*17976│        let healthy = render_stall_evict_line(Some((0, 0))).expect(\"Some(0) renders a healthy line\");\n 17977│        assert!(healthy.contains(\"healthy\"), \"got {healthy}\");\n 17978│        assert!(healthy.contains(\"none\"), \"got {healthy}\");\n 17979│\n 17980│        let evicted =\n*17981│            render_stall_evict_line(Some((3, 1_700_000_000_000))).expect(\"a non-zero tally renders\");\n 17982│        assert!(evicted.contains('3'), \"names the count: {evicted}\");\n 17983│        assert!(evicted.contains(\"1700000000000\"), \"names the last time: {evicted}\");\n 17984│        assert!(\n      │...\n 17992│            assert!(\n*17993│                !line.contains(\"STALL_EVICT\") && !line.contains(\"_DECOUPLE\"),\n 17994│                \"no internal CODE marker: {line}\"\n 17995│            );\n 17996│        }"},"isError":false,"timestamp":1784247448202}}
{"type":"message","id":"0d8488ab","parentId":"a7929a09","timestamp":"2026-07-17T00:17:35.318Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Planning to read changelog 0.34**"},{"type":"toolCall","id":"call_AL4oLV8E9kU5oGOlnYtWApeQ|fc_05a4d8ea8a10ef0b016a59749f43e48198b90e0b6bb4489eef","name":"read","arguments":{"i":"Reading v034 release notes","path":"CHANGELOG.md","selector":"35-80"}},{"type":"toolCall","id":"call_8kZpZoNiy6t3R9Qp7YxDSj3I|fc_05a4d8ea8a10ef0b016a59749f43f0819885506bae10275bf7","name":"read","arguments":{"i":"Reading redispatch hazard detail","path":"docs/KNOWN-HAZARDS.md","selector":"660-672"}},{"type":"toolCall","id":"call_3uZ3gT6n4eDhScDsZsKo8HsO|fc_05a4d8ea8a10ef0b016a59749f43f48198b6298110ce4d7c7d","name":"read","arguments":{"i":"Reading physical write watchdog","path":"crates/spt-daemon/src/conn.rs","selector":"1-70,400-575"}},{"type":"toolCall","id":"call_astZxnzC9MfLRha32Ypf92nu|fc_05a4d8ea8a10ef0b016a59749f43fc8198aeb382b87d6e4477","name":"read","arguments":{"i":"Reading stream worker completion","path":"crates/spt-daemon/src/dispatch.rs","selector":"430-565"}},{"type":"toolCall","id":"call_IoBClIhQEJGpxMNLZIoz8fpR|fc_05a4d8ea8a10ef0b016a59749f440081988758210dbc460175","name":"read","arguments":{"i":"Reading current log timeout cluster","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":"23485-23820"}},{"type":"toolCall","id":"call_gB8rB8gEXSqNvoUSNJe6a4uA|fc_05a4d8ea8a10ef0b016a59749f440881988b36a49cd420543c","name":"read","arguments":{"i":"Reading recent log exception cluster","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":"24720-25050"}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":19548,"output":268,"cacheRead":129536,"cacheWrite":0,"totalTokens":149352,"reasoningTokens":15,"cost":{"input":0.09774000000000001,"output":0.00804,"cacheRead":0.06476799999999999,"cacheWrite":0,"total":0.170548}},"stopReason":"toolUse","timestamp":1784247448249,"responseId":"resp_05a4d8ea8a10ef0b016a59749875388198a9ae7e766cff1a5b","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a59749a63088198ba04bfb30f85e3b6","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXSf2UnrbzKtXMJDdD1SZy9pKQeganU6Q56ctZ_QEIjMN0xm8fBJ6c47ZtvB26oedFZ4tai9uOKnjyJbexekW3zPX7nbxK0sBK1Df8DH7PRO6RcUTK58sNQZV5ltj0eh-TcyXLTIz1PTajTJKnHb1vBNq9GBouIQsKZqSOsERV59G3EJQj3xWA6nfB1vtEXgyeDbnzVFUbwfjlWOAy3OD_SyKr6B_Ty-G3VZU4pSt64WINnGbX9ZjGzl3Zh2yMnEE_lvGDS2l2XPVIsgTdf8IE9JY22BkmeFswus_XVskbKICINxCgncOhIhcetag-sWUSt_y5Z0DVCi2nJszbLwLrLYid_TxsGoYaETCu4P8nzgfyxlLb_y0GRMWKiDs8-N051YzBZOQs8H1wOFv64HtCO4JAhAEBMtC6Ff1jhBJM7mxZVwPja9yJUmL6HhpJ2qmUu_-AugC58GioF8Q6MuXxJviN4YHfJvAwWmLPOzowWwf1sQHMeuqLNUdi9fqtzBuhUE4Dca5pHuF074SqjfkVrExde07lA3hk4UbYGb8l4Cjr5Bgvpz4cxvJuQTuFwqb2DZIBnd6i-uQgpNzqtC9O6uEFG32f5WTBIZVwf8KsekpyQDWlNvqjk0Wp2LkaJfNlWU-EGS8NyTbyehqjKLL_tbXa3zcOW2i8U1NaceF8FpJlY_NWFP_MGWEJFnHweRhtu55oUltEuqPSyWTI8qVG3jxmqBWVF9o5SRO9dVVd9NSaT-n7Fab0DmWopTeksYld9OCfkj6m4Xy_XFxpM8pfd40Ku6oHREJrbFC_wtBm_QSbQnkropwJgmQLWyxJJ5PTQRN69i4zMxB2tAlp2ajkdr_wcsbNKXGVrK8kJoNGkoWMpqj8OjhiEiUslayhG3azZSOVRPWIKO4B9UeUv2DhEz6kDjCHKy82TH199TnnoGLHV22Wyk4Bc30Ydh_3aDTn3seMih3fH0ggDUCmisxrURnA==","summary":[{"type":"summary_text","text":"**Planning to read changelog 0.34**"}]},{"id":"fc_05a4d8ea8a10ef0b016a59749f43e48198b90e0b6bb4489eef","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading v034 release notes\",\"path\":\"CHANGELOG.md\",\"selector\":\"35-80\"}","call_id":"call_AL4oLV8E9kU5oGOlnYtWApeQ","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59749f43f0819885506bae10275bf7","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading redispatch hazard detail\",\"path\":\"docs/KNOWN-HAZARDS.md\",\"selector\":\"660-672\"}","call_id":"call_8kZpZoNiy6t3R9Qp7YxDSj3I","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59749f43f48198b6298110ce4d7c7d","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading physical write watchdog\",\"path\":\"crates/spt-daemon/src/conn.rs\",\"selector\":\"1-70,400-575\"}","call_id":"call_3uZ3gT6n4eDhScDsZsKo8HsO","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59749f43fc8198aeb382b87d6e4477","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading stream worker completion\",\"path\":\"crates/spt-daemon/src/dispatch.rs\",\"selector\":\"430-565\"}","call_id":"call_astZxnzC9MfLRha32Ypf92nu","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59749f440081988758210dbc460175","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading current log timeout cluster\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":\"23485-23820\"}","call_id":"call_IoBClIhQEJGpxMNLZIoz8fpR","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a59749f440881988b36a49cd420543c","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading recent log exception cluster\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":\"24720-25050\"}","call_id":"call_gB8rB8gEXSqNvoUSNJe6a4uA","name":"read"}]},"duration":7067.730599999428,"ttft":2138.089599996805,"contextSnapshot":{"promptTokens":149084,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_AL4oLV8E9kU5oGOlnYtWApeQ|fc_05a4d8ea8a10ef0b016a59749f43e48198b90e0b6bb4489eef","toolName":"read","startedAt":"2026-07-17T00:17:35.318Z","args":{"path":"CHANGELOG.md"},"intent":"Reading v034 release notes"},"id":"beaee2cb","parentId":"0d8488ab","timestamp":"2026-07-17T00:17:35.318Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_8kZpZoNiy6t3R9Qp7YxDSj3I|fc_05a4d8ea8a10ef0b016a59749f43f0819885506bae10275bf7","toolName":"read","startedAt":"2026-07-17T00:17:35.318Z","args":{"path":"docs/KNOWN-HAZARDS.md"},"intent":"Reading redispatch hazard detail"},"id":"bd2053ef","parentId":"beaee2cb","timestamp":"2026-07-17T00:17:35.318Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_3uZ3gT6n4eDhScDsZsKo8HsO|fc_05a4d8ea8a10ef0b016a59749f43f48198b6298110ce4d7c7d","toolName":"read","startedAt":"2026-07-17T00:17:35.318Z","args":{"path":"crates/spt-daemon/src/conn.rs"},"intent":"Reading physical write watchdog"},"id":"7989709d","parentId":"bd2053ef","timestamp":"2026-07-17T00:17:35.318Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_astZxnzC9MfLRha32Ypf92nu|fc_05a4d8ea8a10ef0b016a59749f43fc8198aeb382b87d6e4477","toolName":"read","startedAt":"2026-07-17T00:17:35.318Z","args":{"path":"crates/spt-daemon/src/dispatch.rs"},"intent":"Reading stream worker completion"},"id":"7f32bf67","parentId":"7989709d","timestamp":"2026-07-17T00:17:35.318Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_IoBClIhQEJGpxMNLZIoz8fpR|fc_05a4d8ea8a10ef0b016a59749f440081988758210dbc460175","toolName":"read","startedAt":"2026-07-17T00:17:35.318Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Reading current log timeout cluster"},"id":"2038b3ca","parentId":"7f32bf67","timestamp":"2026-07-17T00:17:35.318Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_gB8rB8gEXSqNvoUSNJe6a4uA|fc_05a4d8ea8a10ef0b016a59749f440881988b36a49cd420543c","toolName":"read","startedAt":"2026-07-17T00:17:35.318Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Reading recent log exception cluster"},"id":"56aaf952","parentId":"2038b3ca","timestamp":"2026-07-17T00:17:35.318Z"}
{"type":"message","id":"dd0c9687","parentId":"56aaf952","timestamp":"2026-07-17T00:17:35.327Z","message":{"role":"toolResult","toolCallId":"call_3uZ3gT6n4eDhScDsZsKo8HsO|fc_05a4d8ea8a10ef0b016a59749f43f48198b6298110ce4d7c7d","toolName":"read","content":[{"type":"text","text":"//! Bounded, cancelable, poison-on-failure framed writes for one physical\n//! broker connection (UPDATE-WEDGE round-4).\n//!\n//! ## The failure class this kills\n//!\n//! A broker writer used to hold the connection's `Mutex<SendHalf>` guard\n//! ACROSS a blocking [`write_frame`]. On Windows, `interprocess 2.4.2` routes\n//! that send to `WriteFileEx` + `SleepEx(INFINITE, alertable)` — a local-socket\n//! path with **no supported write timeout** (`set_timeout` → `Unsupported`).\n//! A connected consumer that stops reading (an `rc --take` whose process\n//! wedged; a suspended brain) therefore blocks the write INDEFINITELY, and the\n//! logical stall-evict (`stall_evict_controller`) releases only the controller\n//! ROLE — it never cancels the in-flight pipe write or closes the physical\n//! connection, so the writer (and every write queued behind the same gate)\n//! stays wedged until the peer process dies (~128 s in the field capture, on a\n//! brain restart).\n//!\n//! ## The primitive\n//!\n//! [`BrokerConn`] owns the send half outright — it never leaves this module,\n//! so an unbounded bypass write cannot compile. Every write:\n//!\n//! 1. acquires the serialized write GATE with a bounded wait (an ABSOLUTE\n//!    deadline stamped at write entry covers BOTH the gate-wait and the OS\n//!    write);\n//! 2. arms an INDEPENDENT per-connection watchdog thread with that absolute\n//!    deadline, then performs the blocking [`write_frame`] OUT of every lock;\n//! 3. on success, returns the half to the gate.\n//!\n//! The watchdog fires OUT OF BAND at the deadline — it never relies on the\n//! write returning, nor on opportunistic stall-evict sampling: it poisons the\n//! connection and aborts the in-flight I/O (`CancelIoEx` on Windows — the\n//! completion APC makes the wedged `SleepEx` loop return with\n//! `ERROR_OPERATION_ABORTED`; `shutdown(SHUT_RDWR)` on Unix — the blocked\n//! write returns `EPIPE`). A gate-waiter that exhausts its own deadline fires\n//! the same abort (the stuck op it waited behind is the wedge).\n//!\n//! ## Poison / retire invariant (both OSes)\n//!\n//! On deadline, write failure, or cancellation: (1) the WHOLE physical\n//! connection is poisoned, idempotently — a length-prefixed frame may have\n//! been PARTIALLY written, so reuse would corrupt framing; (2) read and write\n//! sides are aborted so `handle_conn` reaches its existing EOF cleanup;\n//! (3) the buffer of the canceled op is released only after the op reports\n//! completion (`write_frame` returns only after the completion APC — the\n//! synchronous return IS the completion handshake); (4) the retired half is\n//! parked in a graveyard slot — never dropped while the watchdog might still\n//! touch the raw handle (drop = `CloseHandle`, and a recycled handle value\n//! must never see a late `CancelIoEx`), and never re-gated; (5) on Windows the\n//! pipe is then severed (`DisconnectNamedPipe` — the server end forces the\n//! client off, so the old client's next access fails, a re-issued server read\n//! fails, and the `interprocess` drop-limbo flush cannot block on unread\n//! data), followed by one more `CancelIoEx` covering a read re-issued in the\n//! cancel→disconnect window.\n//!\n//! No new output queue (the bounded per-sink queues + isolated writer threads\n//! already exist — the block this bounds is BELOW them), and no `PIPE_NOWAIT`\n//! (recorded mid-frame corruption risk). Unix keeps its existing semantics for\n//! healthy connections; only the poison/retire path is new.\n// [impl->REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n\nuse std::io;\nuse std::sync::atomic::{AtomicBool, AtomicU64, Ordering};\nuse std::sync::{Arc, Condvar, Mutex, MutexGuard, OnceLock};\nuse std::thread::{self, JoinHandle};\nuse std::time::{Duration, Instant, SystemTime, UNIX_EPOCH};\n\nuse interprocess::local_socket::SendHalf;\n\nuse crate::codec::write_frame;\n…\nimpl Inner {\n…\n    fn watchdog(&self) {\n…\n        loop {\n…\n            while matches!(d.inflight, Some((cur, _)) if cur == op) && !d.shutdown {\n…\n                d = recover(&self.dog);\n            }\n            if d.shutdown {\n                return;\n            }\n            drop(d);\n            self.sever();\n            d = recover(&self.dog);\n        }\n    }\n}\n\n/// The shared, serialized, BOUNDED send side of one physical broker\n/// connection — what [`crate::broker::SharedSend`] now aliases. Owns the\n/// [`SendHalf`] (it never leaves this module) and the per-conn watchdog.\npub(crate) struct BrokerConn {\n    inner: Arc<Inner>,\n    /// Joined on drop — after `shutdown` is raised — so the raw handle the\n    /// watchdog aborts through strictly outlives every raw use.\n    dog: Option<JoinHandle<()>>,\n}\n\nimpl BrokerConn {\n    /// Wrap a freshly-split send half. `bound` is the ABSOLUTE per-write\n    /// deadline (gate-wait + OS write completion) — the broker passes its\n    /// `brain_write_deadline()` (`SPT_BRAIN_WRITE_DEADLINE_MS` knob).\n    pub(crate) fn new(half: SendHalf, bound: Duration) -> Self {\n        let raw = raw_of(&half);\n        let inner = Arc::new(Inner {\n            id: CONN_ID_SEQ.fetch_add(1, Ordering::Relaxed) + 1,\n            label: Mutex::new(String::new()),\n            first_write_logged: AtomicBool::new(false),\n            gate: Mutex::new(Gate { half: Some(half) }),\n            gate_cv: Condvar::new(),\n            dog: Mutex::new(Dog {\n                inflight: None,\n                shutdown: false,\n            }),\n            dog_cv: Condvar::new(),\n            poisoned: AtomicBool::new(false),\n            timed_out: AtomicBool::new(false),\n            severed: AtomicBool::new(false),\n            graveyard: Mutex::new(None),\n            op_seq: AtomicU64::new(0),\n            bound,\n            raw,\n        });\n        let dog_inner = Arc::clone(&inner);\n        let dog = thread::Builder::new()\n            .name(\"conn-watchdog\".into())\n            .spawn(move || dog_inner.watchdog())\n            .ok();\n        BrokerConn { inner, dog }\n    }\n\n    /// The stable per-physical-conn id — what lifecycle records key on\n    /// (`Arc::ptr_eq` identity does not survive a log line).\n    // [impl->REQ-CONN-POISON-ATTRIBUTION]\n    pub(crate) fn id(&self) -> u64 {\n        self.inner.id\n    }\n\n    /// Accrete an attribution fact onto this conn's label (subscriber role,\n    /// endpoint/session where known — e.g. `role=brain`,\n    /// `controller session=7 by=cli@host`). Facts accumulate space-separated\n    /// and ride EVERY subsequent lifecycle record for this conn; growth is\n    /// bounded by [`LABEL_CAP`] (one `…` marker, then no-op).\n    // [impl->REQ-CONN-POISON-ATTRIBUTION]\n    pub(crate) fn describe(&self, fact: &str) {\n        let mut l = recover(&self.inner.label);\n        if l.ends_with('…') {\n            return;\n        }\n        if l.len() + fact.len() + 1 > LABEL_CAP {\n            l.push('…');\n            return;\n        }\n        if !l.is_empty() {\n            l.push(' ');\n        }\n        l.push_str(fact);\n    }\n\n    /// Emit a bounded per-conn lifecycle record through this conn's shared\n    /// attribution format — the broker's sink machinery uses it for\n    /// `writer-exit`, attach/replace, and detach events (leg d).\n    // [impl->REQ-CONN-POISON-ATTRIBUTION]\n    pub(crate) fn lifecycle_event(&self, event: &str, extra: &str) {\n        self.inner.lifecycle(event, extra);\n    }\n\n    /// Bounded framed write. See [`Self::write_gated`].\n    pub(crate) fn write(&self, env: &Envelope) -> io::Result<ConnWrite> {\n        self.write_gated(env, || true)\n    }\n\n    /// Bounded framed write with a pre-write gate closure, run AFTER the\n    /// serialized gate is acquired and BEFORE any byte is written — the same\n    /// serialization point the old epoch-check-under-`send.lock()` had, so a\n    /// superseded controller writer still bails atomically with respect to\n    /// its successor's writes (P1c, REQ-HAZARD-CONTROLLER-WRITER-REORDER).\n    /// `pre` returning false → `Ok(ConnWrite::Superseded)`, nothing written.\n    pub(crate) fn write_gated(\n        &self,\n        env: &Envelope,\n        pre: impl FnOnce() -> bool,\n    ) -> io::Result<ConnWrite> {\n        let inner = &*self.inner;\n        let deadline = Instant::now() + inner.bound;\n\n        // ── Acquire the gate, bounded by the SAME absolute deadline. ──\n        let mut g = recover(&inner.gate);\n        loop {\n            if inner.poisoned.load(Ordering::Acquire) {\n                return Err(poisoned_err());\n            }\n            if g.half.is_some() {\n                break;\n            }\n            let now = Instant::now();\n            if now >= deadline {\n                // The write we queued behind is stuck past OUR whole bound:\n                // that op is the wedge. Abort it out of band and fail — the\n                // watchdog's own deadline (armed at that op's entry) is also\n                // in flight; both paths converge on the same idempotent\n                // poison/cancel.\n                drop(g);\n                inner.timed_out.store(true, Ordering::Release);\n                inner.poison_and_cancel(None);\n                return Err(timeout_err());\n            }\n            let (g2, _) = inner\n                .gate_cv\n                .wait_timeout(g, deadline - now)\n                .unwrap_or_else(|p| p.into_inner());\n            g = g2;\n        }\n\n        if !pre() {\n            return Ok(ConnWrite::Superseded);\n        }\n\n        // Once-per-conn `write-start` lifecycle record (leg d): marks the conn's\n        // first committed write, so a conn that later retires can be correlated\n        // to when it went active (fresh-carrier churn shows as open→start→retire\n        // triplets with fresh ids).\n        if !inner.first_write_logged.swap(true, Ordering::AcqRel) {\n            inner.lifecycle(\"write-start\", \"\");\n        }\n\n        // ── Check out the half + arm the watchdog, then write OUT of locks. ──\n        let mut half = g.half.take().expect(\"gate half present at checkout\");\n        let op = inner.op_seq.fetch_add(1, Ordering::Relaxed) + 1;\n        {\n            let mut d = recover(&inner.dog);\n            d.inflight = Some((op, deadline));\n            inner.dog_cv.notify_all();\n        }\n        drop(g);\n\n        let res = write_frame(&mut half, env);\n\n        // Completion handshake: `write_frame` has returned, so the OS op —\n        // canceled or not — reported completion and the frame buffer is\n        // released. Clear the arm BEFORE deciding health, so the watchdog\n        // never severs while the op is formally in flight.\n        {\n            let mut d = recover(&inner.dog);\n            d.inflight = None;\n            inner.dog_cv.notify_all();\n        }\n\n        let mut g = recover(&inner.gate);\n        if res.is_ok() && !inner.poisoned.load(Ordering::Acquire) {\n            g.half = Some(half);\n            drop(g);\n…\n        }\n…\n    }\n}"}],"details":{"displayContent":{"text":"//! Bounded, cancelable, poison-on-failure framed writes for one physical\n//! broker connection (UPDATE-WEDGE round-4).\n//!\n//! ## The failure class this kills\n//!\n//! A broker writer used to hold the connection's `Mutex<SendHalf>` guard\n//! ACROSS a blocking [`write_frame`]. On Windows, `interprocess 2.4.2` routes\n//! that send to `WriteFileEx` + `SleepEx(INFINITE, alertable)` — a local-socket\n//! path with **no supported write timeout** (`set_timeout` → `Unsupported`).\n//! A connected consumer that stops reading (an `rc --take` whose process\n//! wedged; a suspended brain) therefore blocks the write INDEFINITELY, and the\n//! logical stall-evict (`stall_evict_controller`) releases only the controller\n//! ROLE — it never cancels the in-flight pipe write or closes the physical\n//! connection, so the writer (and every write queued behind the same gate)\n//! stays wedged until the peer process dies (~128 s in the field capture, on a\n//! brain restart).\n//!\n//! ## The primitive\n//!\n//! [`BrokerConn`] owns the send half outright — it never leaves this module,\n//! so an unbounded bypass write cannot compile. Every write:\n//!\n//! 1. acquires the serialized write GATE with a bounded wait (an ABSOLUTE\n//!    deadline stamped at write entry covers BOTH the gate-wait and the OS\n//!    write);\n//! 2. arms an INDEPENDENT per-connection watchdog thread with that absolute\n//!    deadline, then performs the blocking [`write_frame`] OUT of every lock;\n//! 3. on success, returns the half to the gate.\n//!\n//! The watchdog fires OUT OF BAND at the deadline — it never relies on the\n//! write returning, nor on opportunistic stall-evict sampling: it poisons the\n//! connection and aborts the in-flight I/O (`CancelIoEx` on Windows — the\n//! completion APC makes the wedged `SleepEx` loop return with\n//! `ERROR_OPERATION_ABORTED`; `shutdown(SHUT_RDWR)` on Unix — the blocked\n//! write returns `EPIPE`). A gate-waiter that exhausts its own deadline fires\n//! the same abort (the stuck op it waited behind is the wedge).\n//!\n//! ## Poison / retire invariant (both OSes)\n//!\n//! On deadline, write failure, or cancellation: (1) the WHOLE physical\n//! connection is poisoned, idempotently — a length-prefixed frame may have\n//! been PARTIALLY written, so reuse would corrupt framing; (2) read and write\n//! sides are aborted so `handle_conn` reaches its existing EOF cleanup;\n//! (3) the buffer of the canceled op is released only after the op reports\n//! completion (`write_frame` returns only after the completion APC — the\n//! synchronous return IS the completion handshake); (4) the retired half is\n//! parked in a graveyard slot — never dropped while the watchdog might still\n//! touch the raw handle (drop = `CloseHandle`, and a recycled handle value\n//! must never see a late `CancelIoEx`), and never re-gated; (5) on Windows the\n//! pipe is then severed (`DisconnectNamedPipe` — the server end forces the\n//! client off, so the old client's next access fails, a re-issued server read\n//! fails, and the `interprocess` drop-limbo flush cannot block on unread\n//! data), followed by one more `CancelIoEx` covering a read re-issued in the\n//! cancel→disconnect window.\n//!\n//! No new output queue (the bounded per-sink queues + isolated writer threads\n//! already exist — the block this bounds is BELOW them), and no `PIPE_NOWAIT`\n//! (recorded mid-frame corruption risk). Unix keeps its existing semantics for\n//! healthy connections; only the poison/retire path is new.\n// [impl->REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n\nuse std::io;\nuse std::sync::atomic::{AtomicBool, AtomicU64, Ordering};\nuse std::sync::{Arc, Condvar, Mutex, MutexGuard, OnceLock};\nuse std::thread::{self, JoinHandle};\nuse std::time::{Duration, Instant, SystemTime, UNIX_EPOCH};\n\nuse interprocess::local_socket::SendHalf;\n\nuse crate::codec::write_frame;\n…\nimpl Inner {\n…\n    fn watchdog(&self) {\n…\n        loop {\n…\n            while matches!(d.inflight, Some((cur, _)) if cur == op) && !d.shutdown {\n…\n                d = recover(&self.dog);\n            }\n            if d.shutdown {\n                return;\n            }\n            drop(d);\n            self.sever();\n            d = recover(&self.dog);\n        }\n    }\n}\n\n/// The shared, serialized, BOUNDED send side of one physical broker\n/// connection — what [`crate::broker::SharedSend`] now aliases. Owns the\n/// [`SendHalf`] (it never leaves this module) and the per-conn watchdog.\npub(crate) struct BrokerConn {\n    inner: Arc<Inner>,\n    /// Joined on drop — after `shutdown` is raised — so the raw handle the\n    /// watchdog aborts through strictly outlives every raw use.\n    dog: Option<JoinHandle<()>>,\n}\n\nimpl BrokerConn {\n    /// Wrap a freshly-split send half. `bound` is the ABSOLUTE per-write\n    /// deadline (gate-wait + OS write completion) — the broker passes its\n    /// `brain_write_deadline()` (`SPT_BRAIN_WRITE_DEADLINE_MS` knob).\n    pub(crate) fn new(half: SendHalf, bound: Duration) -> Self {\n        let raw = raw_of(&half);\n        let inner = Arc::new(Inner {\n            id: CONN_ID_SEQ.fetch_add(1, Ordering::Relaxed) + 1,\n            label: Mutex::new(String::new()),\n            first_write_logged: AtomicBool::new(false),\n            gate: Mutex::new(Gate { half: Some(half) }),\n            gate_cv: Condvar::new(),\n            dog: Mutex::new(Dog {\n                inflight: None,\n                shutdown: false,\n            }),\n            dog_cv: Condvar::new(),\n            poisoned: AtomicBool::new(false),\n            timed_out: AtomicBool::new(false),\n            severed: AtomicBool::new(false),\n            graveyard: Mutex::new(None),\n            op_seq: AtomicU64::new(0),\n            bound,\n            raw,\n        });\n        let dog_inner = Arc::clone(&inner);\n        let dog = thread::Builder::new()\n            .name(\"conn-watchdog\".into())\n            .spawn(move || dog_inner.watchdog())\n            .ok();\n        BrokerConn { inner, dog }\n    }\n\n    /// The stable per-physical-conn id — what lifecycle records key on\n    /// (`Arc::ptr_eq` identity does not survive a log line).\n    // [impl->REQ-CONN-POISON-ATTRIBUTION]\n    pub(crate) fn id(&self) -> u64 {\n        self.inner.id\n    }\n\n    /// Accrete an attribution fact onto this conn's label (subscriber role,\n    /// endpoint/session where known — e.g. `role=brain`,\n    /// `controller session=7 by=cli@host`). Facts accumulate space-separated\n    /// and ride EVERY subsequent lifecycle record for this conn; growth is\n    /// bounded by [`LABEL_CAP`] (one `…` marker, then no-op).\n    // [impl->REQ-CONN-POISON-ATTRIBUTION]\n    pub(crate) fn describe(&self, fact: &str) {\n        let mut l = recover(&self.inner.label);\n        if l.ends_with('…') {\n            return;\n        }\n        if l.len() + fact.len() + 1 > LABEL_CAP {\n            l.push('…');\n            return;\n        }\n        if !l.is_empty() {\n            l.push(' ');\n        }\n        l.push_str(fact);\n    }\n\n    /// Emit a bounded per-conn lifecycle record through this conn's shared\n    /// attribution format — the broker's sink machinery uses it for\n    /// `writer-exit`, attach/replace, and detach events (leg d).\n    // [impl->REQ-CONN-POISON-ATTRIBUTION]\n    pub(crate) fn lifecycle_event(&self, event: &str, extra: &str) {\n        self.inner.lifecycle(event, extra);\n    }\n\n    /// Bounded framed write. See [`Self::write_gated`].\n    pub(crate) fn write(&self, env: &Envelope) -> io::Result<ConnWrite> {\n        self.write_gated(env, || true)\n    }\n\n    /// Bounded framed write with a pre-write gate closure, run AFTER the\n    /// serialized gate is acquired and BEFORE any byte is written — the same\n    /// serialization point the old epoch-check-under-`send.lock()` had, so a\n    /// superseded controller writer still bails atomically with respect to\n    /// its successor's writes (P1c, REQ-HAZARD-CONTROLLER-WRITER-REORDER).\n    /// `pre` returning false → `Ok(ConnWrite::Superseded)`, nothing written.\n    pub(crate) fn write_gated(\n        &self,\n        env: &Envelope,\n        pre: impl FnOnce() -> bool,\n    ) -> io::Result<ConnWrite> {\n        let inner = &*self.inner;\n        let deadline = Instant::now() + inner.bound;\n\n        // ── Acquire the gate, bounded by the SAME absolute deadline. ──\n        let mut g = recover(&inner.gate);\n        loop {\n            if inner.poisoned.load(Ordering::Acquire) {\n                return Err(poisoned_err());\n            }\n            if g.half.is_some() {\n                break;\n            }\n            let now = Instant::now();\n            if now >= deadline {\n                // The write we queued behind is stuck past OUR whole bound:\n                // that op is the wedge. Abort it out of band and fail — the\n                // watchdog's own deadline (armed at that op's entry) is also\n                // in flight; both paths converge on the same idempotent\n                // poison/cancel.\n                drop(g);\n                inner.timed_out.store(true, Ordering::Release);\n                inner.poison_and_cancel(None);\n                return Err(timeout_err());\n            }\n            let (g2, _) = inner\n                .gate_cv\n                .wait_timeout(g, deadline - now)\n                .unwrap_or_else(|p| p.into_inner());\n            g = g2;\n        }\n\n        if !pre() {\n            return Ok(ConnWrite::Superseded);\n        }\n\n        // Once-per-conn `write-start` lifecycle record (leg d): marks the conn's\n        // first committed write, so a conn that later retires can be correlated\n        // to when it went active (fresh-carrier churn shows as open→start→retire\n        // triplets with fresh ids).\n        if !inner.first_write_logged.swap(true, Ordering::AcqRel) {\n            inner.lifecycle(\"write-start\", \"\");\n        }\n\n        // ── Check out the half + arm the watchdog, then write OUT of locks. ──\n        let mut half = g.half.take().expect(\"gate half present at checkout\");\n        let op = inner.op_seq.fetch_add(1, Ordering::Relaxed) + 1;\n        {\n            let mut d = recover(&inner.dog);\n            d.inflight = Some((op, deadline));\n            inner.dog_cv.notify_all();\n        }\n        drop(g);\n\n        let res = write_frame(&mut half, env);\n\n        // Completion handshake: `write_frame` has returned, so the OS op —\n        // canceled or not — reported completion and the frame buffer is\n        // released. Clear the arm BEFORE deciding health, so the watchdog\n        // never severs while the op is formally in flight.\n        {\n            let mut d = recover(&inner.dog);\n            d.inflight = None;\n            inner.dog_cv.notify_all();\n        }\n\n        let mut g = recover(&inner.gate);\n        if res.is_ok() && !inner.poisoned.load(Ordering::Acquire) {\n            g.half = Some(half);\n            drop(g);\n…\n        }\n…\n    }\n}","startLine":1,"lineNumbers":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,null,219,null,343,null,345,null,392,null,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,null,578,null,601,602]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\conn.rs"}}},"isError":false,"timestamp":1784247455326}}
{"type":"message","id":"ba87c760","parentId":"dd0c9687","timestamp":"2026-07-17T00:17:35.334Z","message":{"role":"toolResult","toolCallId":"call_astZxnzC9MfLRha32Ypf92nu|fc_05a4d8ea8a10ef0b016a59749f43fc8198aeb382b87d6e4477","toolName":"read","content":[{"type":"text","text":"fn peek_first_line(\n…\n) -> io::Result<Option<serde_json::Value>> {\n    let mut brain = connect(broker_name)?;\n    brain.net_stream_subscribe(stream_id, floor_seq)?;\n    let mut buf: Vec<u8> = Vec::new();\n    loop {\n        match brain.read_event()? {\n            BrokerEvent::NetStreamData {\n                stream_id: sid,\n                bytes,\n                ..\n            } if sid == stream_id => {\n                buf.extend_from_slice(&bytes);\n                if let Some(nl) = buf.iter().position(|&b| b == b'\\n') {\n                    return Ok(serde_json::from_slice(&buf[..nl]).ok());\n                }\n            }\n            BrokerEvent::NetStreamEof { stream_id: sid, .. } if sid == stream_id => {\n                // Finished without a complete line: classify what we have\n                // (a line without a trailing newline before EOF still counts).\n                return Ok(serde_json::from_slice(&buf).ok());\n            }\n            BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n            _ => {}\n        }\n    }\n}\n\n/// One claimed stream's worker: peek → classify → run the family's serve\n/// loop on a fresh brain connection.\n#[allow(clippy::too_many_arguments)]\nfn worker(\n    broker_name: &str,\n    stream_id: u64,\n    origin: &str,\n    floor_seq: u64,\n    finished: bool,\n    paths: &DispatchPaths,\n    registry: &RegistryHost,\n) -> DispatchOutcome {\n    if take_injected_transient() {\n        return DispatchOutcome::Failed(\n            \"injected transient worker-start failure (test valve)\".into(),\n        );\n    }\n    let line = match first_line(broker_name, stream_id, floor_seq) {\n        Ok(Some(v)) => v,\n        Ok(None) => return DispatchOutcome::Unknown,\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\n    };\n    let family = classify_first_line(&line);\n\n    // Gate round 1 (retire-on-sight, KNOWN-HAZARDS 7.41): a finished ATTACH\n    // row's exchange is over — the operator detached — and replaying it would\n    // take the live controller (pre-existing backlog + brain-down-detach\n    // orderings, which the Served-report path can never see). Report Served\n    // WITHOUT serving: the loop's completion path retires the row, so the\n    // backlog also drains from the table. Finished request/reply rows fall\n    // through — their FIN is protocol, not completion (see\n    // `finished_row_is_terminal`).\n    if finished_row_is_terminal(family, finished) {\n        return DispatchOutcome::Served(\"finished attach: terminal, retired unserved\".into());\n    }\n\n    let mut brain = match connect(broker_name) {\n        Ok(b) => b,\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\n    };\n\n    match family {\n        StreamFamily::Sync => {\n            let cs = match ContextStore::open_or_init() {\n                Ok(cs) => cs,\n                Err(e) => return DispatchOutcome::Failed(e.to_string()),\n            };\n            let policy = SyncPolicy::load();\n            match serve_sync(\n                &mut brain,\n                stream_id,\n                origin,\n                0,\n                &cs,\n                &policy,\n                &paths.scratch,\n            ) {\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\n            }\n        }\n        StreamFamily::Update => {\n            let cache = ReleaseCache::open(&paths.releases);\n            let roster = RosterStore::load();\n            match serve_update(&mut brain, stream_id, origin, 0, &cache, &roster) {\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\n            }\n        }\n        StreamFamily::Notif => serve_notif_feed(&mut brain, stream_id, origin),\n        StreamFamily::WanMsg => serve_wan_feed(&mut brain, stream_id, origin, paths, registry),\n        StreamFamily::Registry => serve_registry_feed(&mut brain, stream_id, origin, registry),\n        StreamFamily::Attach => {\n            // The gate subject is the session's OWNING endpoint, resolved\n            // from the broker's table (the spawn's label) — never from wire\n            // bytes. An unlabeled or unknown session refuses, fail-closed.\n            //\n            // Cross-node leg (#4, REQ-RC-CROSS-NODE-ATTACH): a REMOTE operator\n            // cannot know our local session id, so it names the ENDPOINT. When the\n            // Request carries `endpoint_id`, THAT is the gate subject — but only if\n            // we actually host a live session for it (D5 session-presence gate;\n            // D6: a stale registry row that named a gone endpoint resolves to no\n            // session → refuse cleanly, never a false attach). The endpoint id is\n            // WHICH endpoint the operator asks for (client-supplied, like Xfer's\n            // `endpoint`); the origin subject stays the handshake identity. The\n            // LOCAL path sends no endpoint_id and its session_id → endpoint mapping\n            // is unchanged.\n            // `endpoint` is the gate subject; `remote_session` carries the\n            // dispatcher-resolved session id on the cross-node leg (resolved HERE,\n            // before serve_attach subscribes — never mid-serve, which would swallow\n            // interleaved attach records) and `None` on the local path.\n            let (endpoint, remote_session) = match line\n                .get(\"endpoint_id\")\n                .and_then(|v| v.as_str())\n                .filter(|e| !e.is_empty())\n            {\n                Some(ep) => match crate::attach::resolve_local_session(&mut brain, ep) {\n                    Some(sid) => (Some(ep.to_string()), Some(sid)),\n                    None => (None, None),\n                },\n                None => {\n                    let session_id = line.get(\"session_id\").and_then(|v| v.as_u64());\n                    let endpoint = session_id.and_then(|sid| {\n                        brain.sessions().ok().and_then(|reply| {\n                            reply\n                                .sessions\n                                .iter()\n                                .find(|s| s.session_id == sid && !s.endpoint.is_empty())\n                                .map(|s| s.endpoint.clone())\n                        })\n                    });\n                    (endpoint, None)\n                }\n            };\n…\n        }\n…\n    }\n}\n\n[Showing lines 429-568 of 1034. Use :569 to continue]"}],"details":{"truncation":{"content":"    let mut brain = connect(broker_name)?;\r\n    brain.net_stream_subscribe(stream_id, floor_seq)?;\r\n    let mut buf: Vec<u8> = Vec::new();\r\n    loop {\r\n        match brain.read_event()? {\r\n            BrokerEvent::NetStreamData {\r\n                stream_id: sid,\r\n                bytes,\r\n                ..\r\n            } if sid == stream_id => {\r\n                buf.extend_from_slice(&bytes);\r\n                if let Some(nl) = buf.iter().position(|&b| b == b'\\n') {\r\n                    return Ok(serde_json::from_slice(&buf[..nl]).ok());\r\n                }\r\n            }\r\n            BrokerEvent::NetStreamEof { stream_id: sid, .. } if sid == stream_id => {\r\n                // Finished without a complete line: classify what we have\r\n                // (a line without a trailing newline before EOF still counts).\r\n                return Ok(serde_json::from_slice(&buf).ok());\r\n            }\r\n            BrokerEvent::Error { message } => return Err(io::Error::other(message)),\r\n            _ => {}\r\n        }\r\n    }\r\n}\r\n\r\n/// One claimed stream's worker: peek → classify → run the family's serve\r\n/// loop on a fresh brain connection.\r\n#[allow(clippy::too_many_arguments)]\r\nfn worker(\r\n    broker_name: &str,\r\n    stream_id: u64,\r\n    origin: &str,\r\n    floor_seq: u64,\r\n    finished: bool,\r\n    paths: &DispatchPaths,\r\n    registry: &RegistryHost,\r\n) -> DispatchOutcome {\r\n    if take_injected_transient() {\r\n        return DispatchOutcome::Failed(\r\n            \"injected transient worker-start failure (test valve)\".into(),\r\n        );\r\n    }\r\n    let line = match first_line(broker_name, stream_id, floor_seq) {\r\n        Ok(Some(v)) => v,\r\n        Ok(None) => return DispatchOutcome::Unknown,\r\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\r\n    };\r\n    let family = classify_first_line(&line);\r\n\r\n    // Gate round 1 (retire-on-sight, KNOWN-HAZARDS 7.41): a finished ATTACH\r\n    // row's exchange is over — the operator detached — and replaying it would\r\n    // take the live controller (pre-existing backlog + brain-down-detach\r\n    // orderings, which the Served-report path can never see). Report Served\r\n    // WITHOUT serving: the loop's completion path retires the row, so the\r\n    // backlog also drains from the table. Finished request/reply rows fall\r\n    // through — their FIN is protocol, not completion (see\r\n    // `finished_row_is_terminal`).\r\n    if finished_row_is_terminal(family, finished) {\r\n        return DispatchOutcome::Served(\"finished attach: terminal, retired unserved\".into());\r\n    }\r\n\r\n    let mut brain = match connect(broker_name) {\r\n        Ok(b) => b,\r\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\r\n    };\r\n\r\n    match family {\r\n        StreamFamily::Sync => {\r\n            let cs = match ContextStore::open_or_init() {\r\n                Ok(cs) => cs,\r\n                Err(e) => return DispatchOutcome::Failed(e.to_string()),\r\n            };\r\n            let policy = SyncPolicy::load();\r\n            match serve_sync(\r\n                &mut brain,\r\n                stream_id,\r\n                origin,\r\n                0,\r\n                &cs,\r\n                &policy,\r\n                &paths.scratch,\r\n            ) {\r\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n            }\r\n        }\r\n        StreamFamily::Update => {\r\n            let cache = ReleaseCache::open(&paths.releases);\r\n            let roster = RosterStore::load();\r\n            match serve_update(&mut brain, stream_id, origin, 0, &cache, &roster) {\r\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n            }\r\n        }\r\n        StreamFamily::Notif => serve_notif_feed(&mut brain, stream_id, origin),\r\n        StreamFamily::WanMsg => serve_wan_feed(&mut brain, stream_id, origin, paths, registry),\r\n        StreamFamily::Registry => serve_registry_feed(&mut brain, stream_id, origin, registry),\r\n        StreamFamily::Attach => {\r\n            // The gate subject is the session's OWNING endpoint, resolved\r\n            // from the broker's table (the spawn's label) — never from wire\r\n            // bytes. An unlabeled or unknown session refuses, fail-closed.\r\n            //\r\n            // Cross-node leg (#4, REQ-RC-CROSS-NODE-ATTACH): a REMOTE operator\r\n            // cannot know our local session id, so it names the ENDPOINT. When the\r\n            // Request carries `endpoint_id`, THAT is the gate subject — but only if\r\n            // we actually host a live session for it (D5 session-presence gate;\r\n            // D6: a stale registry row that named a gone endpoint resolves to no\r\n            // session → refuse cleanly, never a false attach). The endpoint id is\r\n            // WHICH endpoint the operator asks for (client-supplied, like Xfer's\r\n            // `endpoint`); the origin subject stays the handshake identity. The\r\n            // LOCAL path sends no endpoint_id and its session_id → endpoint mapping\r\n            // is unchanged.\r\n            // `endpoint` is the gate subject; `remote_session` carries the\r\n            // dispatcher-resolved session id on the cross-node leg (resolved HERE,\r\n            // before serve_attach subscribes — never mid-serve, which would swallow\r\n            // interleaved attach records) and `None` on the local path.\r\n            let (endpoint, remote_session) = match line\r\n                .get(\"endpoint_id\")\r\n                .and_then(|v| v.as_str())\r\n                .filter(|e| !e.is_empty())\r\n            {\r\n                Some(ep) => match crate::attach::resolve_local_session(&mut brain, ep) {\r\n                    Some(sid) => (Some(ep.to_string()), Some(sid)),\r\n                    None => (None, None),\r\n                },\r\n                None => {\r\n                    let session_id = line.get(\"session_id\").and_then(|v| v.as_u64());\r\n                    let endpoint = session_id.and_then(|sid| {\r\n                        brain.sessions().ok().and_then(|reply| {\r\n                            reply\r\n                                .sessions\r\n                                .iter()\r\n                                .find(|s| s.session_id == sid && !s.endpoint.is_empty())\r\n                                .map(|s| s.endpoint.clone())\r\n                        })\r\n                    });\r\n                    (endpoint, None)\r\n                }\r\n            };\r","truncated":true,"truncatedBy":"lines","totalLines":606,"totalBytes":6502,"outputLines":140,"outputBytes":6502,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"fn peek_first_line(\n…\n) -> io::Result<Option<serde_json::Value>> {\n    let mut brain = connect(broker_name)?;\r\n    brain.net_stream_subscribe(stream_id, floor_seq)?;\r\n    let mut buf: Vec<u8> = Vec::new();\r\n    loop {\r\n        match brain.read_event()? {\r\n            BrokerEvent::NetStreamData {\r\n                stream_id: sid,\r\n                bytes,\r\n                ..\r\n            } if sid == stream_id => {\r\n                buf.extend_from_slice(&bytes);\r\n                if let Some(nl) = buf.iter().position(|&b| b == b'\\n') {\r\n                    return Ok(serde_json::from_slice(&buf[..nl]).ok());\r\n                }\r\n            }\r\n            BrokerEvent::NetStreamEof { stream_id: sid, .. } if sid == stream_id => {\r\n                // Finished without a complete line: classify what we have\r\n                // (a line without a trailing newline before EOF still counts).\r\n                return Ok(serde_json::from_slice(&buf).ok());\r\n            }\r\n            BrokerEvent::Error { message } => return Err(io::Error::other(message)),\r\n            _ => {}\r\n        }\r\n    }\r\n}\r\n\r\n/// One claimed stream's worker: peek → classify → run the family's serve\r\n/// loop on a fresh brain connection.\r\n#[allow(clippy::too_many_arguments)]\r\nfn worker(\r\n    broker_name: &str,\r\n    stream_id: u64,\r\n    origin: &str,\r\n    floor_seq: u64,\r\n    finished: bool,\r\n    paths: &DispatchPaths,\r\n    registry: &RegistryHost,\r\n) -> DispatchOutcome {\r\n    if take_injected_transient() {\r\n        return DispatchOutcome::Failed(\r\n            \"injected transient worker-start failure (test valve)\".into(),\r\n        );\r\n    }\r\n    let line = match first_line(broker_name, stream_id, floor_seq) {\r\n        Ok(Some(v)) => v,\r\n        Ok(None) => return DispatchOutcome::Unknown,\r\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\r\n    };\r\n    let family = classify_first_line(&line);\r\n\r\n    // Gate round 1 (retire-on-sight, KNOWN-HAZARDS 7.41): a finished ATTACH\r\n    // row's exchange is over — the operator detached — and replaying it would\r\n    // take the live controller (pre-existing backlog + brain-down-detach\r\n    // orderings, which the Served-report path can never see). Report Served\r\n    // WITHOUT serving: the loop's completion path retires the row, so the\r\n    // backlog also drains from the table. Finished request/reply rows fall\r\n    // through — their FIN is protocol, not completion (see\r\n    // `finished_row_is_terminal`).\r\n    if finished_row_is_terminal(family, finished) {\r\n        return DispatchOutcome::Served(\"finished attach: terminal, retired unserved\".into());\r\n    }\r\n\r\n    let mut brain = match connect(broker_name) {\r\n        Ok(b) => b,\r\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\r\n    };\r\n\r\n    match family {\r\n        StreamFamily::Sync => {\r\n            let cs = match ContextStore::open_or_init() {\r\n                Ok(cs) => cs,\r\n                Err(e) => return DispatchOutcome::Failed(e.to_string()),\r\n            };\r\n            let policy = SyncPolicy::load();\r\n            match serve_sync(\r\n                &mut brain,\r\n                stream_id,\r\n                origin,\r\n                0,\r\n                &cs,\r\n                &policy,\r\n                &paths.scratch,\r\n            ) {\r\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n            }\r\n        }\r\n        StreamFamily::Update => {\r\n            let cache = ReleaseCache::open(&paths.releases);\r\n            let roster = RosterStore::load();\r\n            match serve_update(&mut brain, stream_id, origin, 0, &cache, &roster) {\r\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n            }\r\n        }\r\n        StreamFamily::Notif => serve_notif_feed(&mut brain, stream_id, origin),\r\n        StreamFamily::WanMsg => serve_wan_feed(&mut brain, stream_id, origin, paths, registry),\r\n        StreamFamily::Registry => serve_registry_feed(&mut brain, stream_id, origin, registry),\r\n        StreamFamily::Attach => {\r\n            // The gate subject is the session's OWNING endpoint, resolved\r\n            // from the broker's table (the spawn's label) — never from wire\r\n            // bytes. An unlabeled or unknown session refuses, fail-closed.\r\n            //\r\n            // Cross-node leg (#4, REQ-RC-CROSS-NODE-ATTACH): a REMOTE operator\r\n            // cannot know our local session id, so it names the ENDPOINT. When the\r\n            // Request carries `endpoint_id`, THAT is the gate subject — but only if\r\n            // we actually host a live session for it (D5 session-presence gate;\r\n            // D6: a stale registry row that named a gone endpoint resolves to no\r\n            // session → refuse cleanly, never a false attach). The endpoint id is\r\n            // WHICH endpoint the operator asks for (client-supplied, like Xfer's\r\n            // `endpoint`); the origin subject stays the handshake identity. The\r\n            // LOCAL path sends no endpoint_id and its session_id → endpoint mapping\r\n            // is unchanged.\r\n            // `endpoint` is the gate subject; `remote_session` carries the\r\n            // dispatcher-resolved session id on the cross-node leg (resolved HERE,\r\n            // before serve_attach subscribes — never mid-serve, which would swallow\r\n            // interleaved attach records) and `None` on the local path.\r\n            let (endpoint, remote_session) = match line\r\n                .get(\"endpoint_id\")\r\n                .and_then(|v| v.as_str())\r\n                .filter(|e| !e.is_empty())\r\n            {\r\n                Some(ep) => match crate::attach::resolve_local_session(&mut brain, ep) {\r\n                    Some(sid) => (Some(ep.to_string()), Some(sid)),\r\n                    None => (None, None),\r\n                },\r\n                None => {\r\n                    let session_id = line.get(\"session_id\").and_then(|v| v.as_u64());\r\n                    let endpoint = session_id.and_then(|sid| {\r\n                        brain.sessions().ok().and_then(|reply| {\r\n                            reply\r\n                                .sessions\r\n                                .iter()\r\n                                .find(|s| s.session_id == sid && !s.endpoint.is_empty())\r\n                                .map(|s| s.endpoint.clone())\r\n                        })\r\n                    });\r\n                    (endpoint, None)\r\n                }\r\n            };\r\n…\n        }\n…\n    }\n}","startLine":424,"lineNumbers":[424,null,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,null,597,null,657,658]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\dispatch.rs"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":1034,"totalBytes":6502,"outputLines":140,"outputBytes":6502,"shownRange":{"start":429,"end":568},"nextOffset":569}}},"isError":false,"timestamp":1784247455334}}
{"type":"message","id":"95eef25b","parentId":"ba87c760","timestamp":"2026-07-17T00:17:35.359Z","message":{"role":"toolResult","toolCallId":"call_AL4oLV8E9kU5oGOlnYtWApeQ|fc_05a4d8ea8a10ef0b016a59749f43e48198b90e0b6bb4489eef","toolName":"read","content":[{"type":"text","text":"## [0.35.0] - 2026-07-16\n…\n### Fixed\n…\n- **A node no longer strands itself from its subnets after a brief failure to\n…\n  Routes are now kept and marked unreachable rather than deleted, and address\n  resolution falls back to the roster, so the node recovers on its own with no\n  manual state surgery.\n\n- **Poisoned peer-address entries are repaired at startup.** If a cached peer\n  address has come to claim a different peer's identity, the daemon now detects\n  and repairs it from the subnet roster when it starts — and says so loudly in\n  the log — rather than carrying the bad entry forward.\n\n## [0.34.0] - 2026-07-16\n\nA stability fix for live remote sessions during a daemon update.\n\n### Fixed\n\n- Updating or refreshing the daemon — `spt update`, `spt update --restart`, or\n  `spt daemon refresh` — no longer disturbs a remote session you are attached to.\n  A daemon cycle could previously replay already-finished output onto a live\n  remote terminal: old text re-typed itself, control of the session was stolen,\n  or a running session was left frozen. The daemon now treats a finished\n  session's history as terminal and never re-drives it onto a live terminal, so\n  the remote sessions you are attached to keep running cleanly across an update.\n\n## [0.33.0] - 2026-07-16\n\nA performance and identity release. The commands that list endpoints and choose\na run now answer in a fraction of a second instead of many seconds, `spt whoami`\nbecomes a focused identity command, and the daemon gains a health report for the\nindex that makes the fast listings possible.\n\n### Changed\n\n- **Breaking: `spt whoami` reports only your own identity.** It now prints the\n  single endpoint bound to the current session, not the full roster of endpoints\n  on the node — use `spt endpoint list` for the roster. Its `--json` output is a\n  new, stable object — `{id, state?, ready?, alive?, unbound?, description?}` —\n  rather than the list shape it returned before. When the current session is not\n  bound to any endpoint, it prints `NO_PERCH` on stderr (JSON: `{\"id\": null}`)\n  and exits non-zero, where it used to succeed. The command runs in bounded time\n  and is safe to call from shell hooks and prompts.\n\n- **Listing endpoints is now fast.** `spt endpoint list` (both the human table\n  and `--json`), the interactive run picker, and `spt api endpoint-info` read a\n  project index the daemon keeps current, instead of inspecting each project's\n  git state on every call. On a node with many endpoints this takes these\n  commands from many seconds to well under a second. Two notes on the trade-off:\n  a project you just changed may show its previous attribution for a brief moment\n  (the index refreshes on change and reconciles periodically), and on a node\n  whose daemon has not yet built the index, attribution shows as `-` until the\n  first build lands.\n\n…\n\n\n[Showing lines 34-83 of 1126. Use :84 to continue]"}],"details":{"truncation":{"content":"  Routes are now kept and marked unreachable rather than deleted, and address\r\n  resolution falls back to the roster, so the node recovers on its own with no\r\n  manual state surgery.\r\n\r\n- **Poisoned peer-address entries are repaired at startup.** If a cached peer\r\n  address has come to claim a different peer's identity, the daemon now detects\r\n  and repairs it from the subnet roster when it starts — and says so loudly in\r\n  the log — rather than carrying the bad entry forward.\r\n\r\n## [0.34.0] - 2026-07-16\r\n\r\nA stability fix for live remote sessions during a daemon update.\r\n\r\n### Fixed\r\n\r\n- Updating or refreshing the daemon — `spt update`, `spt update --restart`, or\r\n  `spt daemon refresh` — no longer disturbs a remote session you are attached to.\r\n  A daemon cycle could previously replay already-finished output onto a live\r\n  remote terminal: old text re-typed itself, control of the session was stolen,\r\n  or a running session was left frozen. The daemon now treats a finished\r\n  session's history as terminal and never re-drives it onto a live terminal, so\r\n  the remote sessions you are attached to keep running cleanly across an update.\r\n\r\n## [0.33.0] - 2026-07-16\r\n\r\nA performance and identity release. The commands that list endpoints and choose\r\na run now answer in a fraction of a second instead of many seconds, `spt whoami`\r\nbecomes a focused identity command, and the daemon gains a health report for the\r\nindex that makes the fast listings possible.\r\n\r\n### Changed\r\n\r\n- **Breaking: `spt whoami` reports only your own identity.** It now prints the\r\n  single endpoint bound to the current session, not the full roster of endpoints\r\n  on the node — use `spt endpoint list` for the roster. Its `--json` output is a\r\n  new, stable object — `{id, state?, ready?, alive?, unbound?, description?}` —\r\n  rather than the list shape it returned before. When the current session is not\r\n  bound to any endpoint, it prints `NO_PERCH` on stderr (JSON: `{\"id\": null}`)\r\n  and exits non-zero, where it used to succeed. The command runs in bounded time\r\n  and is safe to call from shell hooks and prompts.\r\n\r\n- **Listing endpoints is now fast.** `spt endpoint list` (both the human table\r\n  and `--json`), the interactive run picker, and `spt api endpoint-info` read a\r\n  project index the daemon keeps current, instead of inspecting each project's\r\n  git state on every call. On a node with many endpoints this takes these\r\n  commands from many seconds to well under a second. Two notes on the trade-off:\r\n  a project you just changed may show its previous attribution for a brief moment\r\n  (the index refreshes on change and reconciles periodically), and on a node\r\n  whose daemon has not yet built the index, attribution shows as `-` until the\r\n  first build lands.\r","truncated":true,"truncatedBy":"lines","totalLines":1093,"totalBytes":2789,"outputLines":50,"outputBytes":2789,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"## [0.35.0] - 2026-07-16\n…\n### Fixed\n…\n- **A node no longer strands itself from its subnets after a brief failure to\n…\n  Routes are now kept and marked unreachable rather than deleted, and address\r\n  resolution falls back to the roster, so the node recovers on its own with no\r\n  manual state surgery.\r\n\r\n- **Poisoned peer-address entries are repaired at startup.** If a cached peer\r\n  address has come to claim a different peer's identity, the daemon now detects\r\n  and repairs it from the subnet roster when it starts — and says so loudly in\r\n  the log — rather than carrying the bad entry forward.\r\n\r\n## [0.34.0] - 2026-07-16\r\n\r\nA stability fix for live remote sessions during a daemon update.\r\n\r\n### Fixed\r\n\r\n- Updating or refreshing the daemon — `spt update`, `spt update --restart`, or\r\n  `spt daemon refresh` — no longer disturbs a remote session you are attached to.\r\n  A daemon cycle could previously replay already-finished output onto a live\r\n  remote terminal: old text re-typed itself, control of the session was stolen,\r\n  or a running session was left frozen. The daemon now treats a finished\r\n  session's history as terminal and never re-drives it onto a live terminal, so\r\n  the remote sessions you are attached to keep running cleanly across an update.\r\n\r\n## [0.33.0] - 2026-07-16\r\n\r\nA performance and identity release. The commands that list endpoints and choose\r\na run now answer in a fraction of a second instead of many seconds, `spt whoami`\r\nbecomes a focused identity command, and the daemon gains a health report for the\r\nindex that makes the fast listings possible.\r\n\r\n### Changed\r\n\r\n- **Breaking: `spt whoami` reports only your own identity.** It now prints the\r\n  single endpoint bound to the current session, not the full roster of endpoints\r\n  on the node — use `spt endpoint list` for the roster. Its `--json` output is a\r\n  new, stable object — `{id, state?, ready?, alive?, unbound?, description?}` —\r\n  rather than the list shape it returned before. When the current session is not\r\n  bound to any endpoint, it prints `NO_PERCH` on stderr (JSON: `{\"id\": null}`)\r\n  and exits non-zero, where it used to succeed. The command runs in bounded time\r\n  and is safe to call from shell hooks and prompts.\r\n\r\n- **Listing endpoints is now fast.** `spt endpoint list` (both the human table\r\n  and `--json`), the interactive run picker, and `spt api endpoint-info` read a\r\n  project index the daemon keeps current, instead of inspecting each project's\r\n  git state on every call. On a node with many endpoints this takes these\r\n  commands from many seconds to well under a second. Two notes on the trade-off:\r\n  a project you just changed may show its previous attribution for a brief moment\r\n  (the index refreshes on change and reconciles periodically), and on a node\r\n  whose daemon has not yet built the index, attribution shows as `-` until the\r\n  first build lands.\r\n\n…\n","startLine":12,"lineNumbers":[12,null,28,null,30,null,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,null,106]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\CHANGELOG.md"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":1126,"totalBytes":2789,"outputLines":50,"outputBytes":2789,"shownRange":{"start":34,"end":83},"nextOffset":84}}},"isError":false,"timestamp":1784247455359}}
{"type":"message","id":"88858bf4","parentId":"95eef25b","timestamp":"2026-07-17T00:17:35.408Z","message":{"role":"toolResult","toolCallId":"call_8kZpZoNiy6t3R9Qp7YxDSj3I|fc_05a4d8ea8a10ef0b016a59749f43f0819885506bae10275bf7","toolName":"read","content":[{"type":"text","text":"### 7.40 A commune/signoff drop is deleted ONLY after every applicable tier is durably committed — an un-committable slice preserves the drop, never delete-then-lose  `[REQ-HAZARD-COMMUNE-INGEST-BLACKHOLE]`\n…\n- **Failure (paid-for, perri field finding 2026-07-08 — F-032, data-loss):** `ingest_drops` unconditionally deleted the drop after `route_slices`, but the project tier is GATED on a non-empty `project_id` — when the endpoint's anchor cwd was unresolved/owlery-internal at ingest time, the `<project-context>` slice was parsed but never committed, yet the source drop was still deleted → the project-context content permanently lost. perri's two-sliced echo-commune INGESTED (file deleted) yet never surfaced at her next SessionStart resume-pull; adapter exonerated. Legacy spt held commit-first-then-delete parity; the modern two-slice ingest broke it.\n- **Invariant:** delete-after-commit, per slice. Distinguish a write **SUPPRESSED by precedence** (incoming older than durable → already superseded → safe to delete) from a slice **un-committable now** (empty `project_id`, or any write error → the `?` retry path). An un-committable non-empty project slice is preserved as a **project-only pending slice under the COMMUNE suffix, whatever the source drop's kind** — a signoff-suffix pending would be reaped by `sweep_stale_signoff` on the next listener start (the signoff sentinel is write-once-per-generation), recreating the black-hole on the signoff path; the commune-named pending is a pure project-slice carrier both suffixes ingest identically and the sweep never sees. The already-committed live slice is droppe…\n- **spt-core mapping:** `spt-live/src/ingest.rs` `ingest_drops` (deferred-project preserve + `Ingested.preserved`); `route_slices` project gate unchanged (`REQ-STORE-CONTEXT-BRANCH-FILL`); kin `REQ-HAZARD-DROP-FILE-SINGLE-WRITER` (core stays the single writer — the preserve rewrite is core's own write).\n- **Source:** MSG-IDENTITY W3 (doyle triage, code-grounded ingest.rs:156 gate vs :200 delete; repro fixture F-032-commune-2026-07-08T222721Z.md).\n\n---\n\n### 7.41 A fresh dispatcher must NEVER re-serve a terminal stream — historical replay must not steal or clear a live controller  `[REQ-HAZARD-REDISPATCH-CONTROL-STEAL]`\n<!-- [doc->REQ-HAZARD-REDISPATCH-CONTROL-STEAL] -->\n- **Failure (paid-for, hertz field RCA 2026-07-16 — 4/5 endpoints frozen, twice in one day):** every brain cycle (`spt daemon refresh`, `spt update` apply — same `applyhost.rs` path) launches a fresh `dispatch::run_dispatch_loop` whose EMPTY per-process `claimed` set enumerates every broker-held peer stream. `NetShared.streams` has NO removal path (`StreamLog::finish` only marks) and the claim condition has no finished filter → the fresh dispatcher replays FINISHED historical attach streams. A replayed historical Attach calls `attach_as(Control, same origin)` → same-identity silent `become_controller` (no `Displaced`) steals the CURRENT controller; the replayed EOF then `detach_session` CLEARS it. The live serve loop still believes it is Controller but its s…\n- **Invariant:** redispatch eligibility is LIFECYCLE-gated: a finished/terminal stream row is retired from the dispatcher's enumeration (a fresh dispatcher never re-serves a terminal Attach); classification identity is restart-durable and independent of the evictable data ring (immutable opener fact pinned per stream until close); claims are retryable on transient worker-setup failure and terminal on terminal outcomes (no hot-loop). The legitimate same-`by` successor re-take after a brain restart still silently re-takes — the discriminator is lifecycle, never origin identity. Regressions ride the PRODUCTION rediscovery path (no manual re-serve — the pre-fix e2e bypassed exactly the broken seam).\n- **spt-core mapping:** `spt-daemon/src/dispatch.rs` `run_dispatch_loop` claim condition + `peek_first_line` classification + worker spawn; `spt-daemon/src/nethost.rs` `NetShared.streams` insert/finish + `DEFAULT_STREAM_RING_CHUNKS`; `spt-daemon/src/applyhost.rs` (the brain-cycle trigger).\n- **Source:** REDISPATCH-TRUTH W1 (hertz source-level RCA `.claude/reports/2026-07-16-redispatch-truth/hertz-refresh-rca.txt`, doyle seam-verified; ADR-0038; distinct from the CLOSED 0.30.x session-cursor resume-steal saga).\n\n---\n\n### 7.42 A node holding a valid roster address for a peer is NEVER route-less — a failed dial must not delete the only bootstrap route  `[REQ-HAZARD-MESH-BOOTSTRAP-TRAP]`\n<!-- [doc->REQ-HAZARD-MESH-BOOTSTRAP-TRAP] -->\n…\n\n\n[Showing lines 659-675 of 754. Use :676 to continue. Some lines truncated to 768 chars]"}],"details":{"truncation":{"content":"- **Invariant:** delete-after-commit, per slice. Distinguish a write **SUPPRESSED by precedence** (incoming older than durable → already superseded → safe to delete) from a slice **un-committable now** (empty `project_id`, or any write error → the `?` retry path). An un-committable non-empty project slice is preserved as a **project-only pending slice under the COMMUNE suffix, whatever the source drop's kind** — a signoff-suffix pending would be reaped by `sweep_stale_signoff` on the next listener start (the signoff sentinel is write-once-per-generation), recreating the black-hole on the signoff path; the commune-named pending is a pure project-slice carrier both suffixes ingest identically and the sweep never sees. The already-committed live slice is droppe…\n- **spt-core mapping:** `spt-live/src/ingest.rs` `ingest_drops` (deferred-project preserve + `Ingested.preserved`); `route_slices` project gate unchanged (`REQ-STORE-CONTEXT-BRANCH-FILL`); kin `REQ-HAZARD-DROP-FILE-SINGLE-WRITER` (core stays the single writer — the preserve rewrite is core's own write).\r\n- **Source:** MSG-IDENTITY W3 (doyle triage, code-grounded ingest.rs:156 gate vs :200 delete; repro fixture F-032-commune-2026-07-08T222721Z.md).\r\n\r\n---\r\n\r\n### 7.41 A fresh dispatcher must NEVER re-serve a terminal stream — historical replay must not steal or clear a live controller  `[REQ-HAZARD-REDISPATCH-CONTROL-STEAL]`\r\n<!-- [doc->REQ-HAZARD-REDISPATCH-CONTROL-STEAL] -->\r\n- **Failure (paid-for, hertz field RCA 2026-07-16 — 4/5 endpoints frozen, twice in one day):** every brain cycle (`spt daemon refresh`, `spt update` apply — same `applyhost.rs` path) launches a fresh `dispatch::run_dispatch_loop` whose EMPTY per-process `claimed` set enumerates every broker-held peer stream. `NetShared.streams` has NO removal path (`StreamLog::finish` only marks) and the claim condition has no finished filter → the fresh dispatcher replays FINISHED historical attach streams. A replayed historical Attach calls `attach_as(Control, same origin)` → same-identity silent `become_controller` (no `Displaced`) steals the CURRENT controller; the replayed EOF then `detach_session` CLEARS it. The live serve loop still believes it is Controller but its s…\n- **Invariant:** redispatch eligibility is LIFECYCLE-gated: a finished/terminal stream row is retired from the dispatcher's enumeration (a fresh dispatcher never re-serves a terminal Attach); classification identity is restart-durable and independent of the evictable data ring (immutable opener fact pinned per stream until close); claims are retryable on transient worker-setup failure and terminal on terminal outcomes (no hot-loop). The legitimate same-`by` successor re-take after a brain restart still silently re-takes — the discriminator is lifecycle, never origin identity. Regressions ride the PRODUCTION rediscovery path (no manual re-serve — the pre-fix e2e bypassed exactly the broken seam).\r\n- **spt-core mapping:** `spt-daemon/src/dispatch.rs` `run_dispatch_loop` claim condition + `peek_first_line` classification + worker spawn; `spt-daemon/src/nethost.rs` `NetShared.streams` insert/finish + `DEFAULT_STREAM_RING_CHUNKS`; `spt-daemon/src/applyhost.rs` (the brain-cycle trigger).\r\n- **Source:** REDISPATCH-TRUTH W1 (hertz source-level RCA `.claude/reports/2026-07-16-redispatch-truth/hertz-refresh-rca.txt`, doyle seam-verified; ADR-0038; distinct from the CLOSED 0.30.x session-cursor resume-steal saga).\r\n\r\n---\r\n\r\n### 7.42 A node holding a valid roster address for a peer is NEVER route-less — a failed dial must not delete the only bootstrap route  `[REQ-HAZARD-MESH-BOOTSTRAP-TRAP]`\r\n<!-- [doc->REQ-HAZARD-MESH-BOOTSTRAP-TRAP] -->\r","truncated":true,"truncatedBy":"lines","totalLines":96,"totalBytes":4695,"outputLines":17,"outputBytes":4695,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"### 7.40 A commune/signoff drop is deleted ONLY after every applicable tier is durably committed — an un-committable slice preserves the drop, never delete-then-lose  `[REQ-HAZARD-COMMUNE-INGEST-BLACKHOLE]`\n…\n- **Failure (paid-for, perri field finding 2026-07-08 — F-032, data-loss):** `ingest_drops` unconditionally deleted the drop after `route_slices`, but the project tier is GATED on a non-empty `project_id` — when the endpoint's anchor cwd was unresolved/owlery-internal at ingest time, the `<project-context>` slice was parsed but never committed, yet the source drop was still deleted → the project-context content permanently lost. perri's two-sliced echo-commune INGESTED (file deleted) yet never surfaced at her next SessionStart resume-pull; adapter exonerated. Legacy spt held commit-first-then-delete parity; the modern two-slice ingest broke it.\n- **Invariant:** delete-after-commit, per slice. Distinguish a write **SUPPRESSED by precedence** (incoming older than durable → already superseded → safe to delete) from a slice **un-committable now** (empty `project_id`, or any write error → the `?` retry path). An un-committable non-empty project slice is preserved as a **project-only pending slice under the COMMUNE suffix, whatever the source drop's kind** — a signoff-suffix pending would be reaped by `sweep_stale_signoff` on the next listener start (the signoff sentinel is write-once-per-generation), recreating the black-hole on the signoff path; the commune-named pending is a pure project-slice carrier both suffixes ingest identically and the sweep never sees. The already-committed live slice is droppe…\n- **spt-core mapping:** `spt-live/src/ingest.rs` `ingest_drops` (deferred-project preserve + `Ingested.preserved`); `route_slices` project gate unchanged (`REQ-STORE-CONTEXT-BRANCH-FILL`); kin `REQ-HAZARD-DROP-FILE-SINGLE-WRITER` (core stays the single writer — the preserve rewrite is core's own write).\r\n- **Source:** MSG-IDENTITY W3 (doyle triage, code-grounded ingest.rs:156 gate vs :200 delete; repro fixture F-032-commune-2026-07-08T222721Z.md).\r\n\r\n---\r\n\r\n### 7.41 A fresh dispatcher must NEVER re-serve a terminal stream — historical replay must not steal or clear a live controller  `[REQ-HAZARD-REDISPATCH-CONTROL-STEAL]`\r\n<!-- [doc->REQ-HAZARD-REDISPATCH-CONTROL-STEAL] -->\r\n- **Failure (paid-for, hertz field RCA 2026-07-16 — 4/5 endpoints frozen, twice in one day):** every brain cycle (`spt daemon refresh`, `spt update` apply — same `applyhost.rs` path) launches a fresh `dispatch::run_dispatch_loop` whose EMPTY per-process `claimed` set enumerates every broker-held peer stream. `NetShared.streams` has NO removal path (`StreamLog::finish` only marks) and the claim condition has no finished filter → the fresh dispatcher replays FINISHED historical attach streams. A replayed historical Attach calls `attach_as(Control, same origin)` → same-identity silent `become_controller` (no `Displaced`) steals the CURRENT controller; the replayed EOF then `detach_session` CLEARS it. The live serve loop still believes it is Controller but its s…\n- **Invariant:** redispatch eligibility is LIFECYCLE-gated: a finished/terminal stream row is retired from the dispatcher's enumeration (a fresh dispatcher never re-serves a terminal Attach); classification identity is restart-durable and independent of the evictable data ring (immutable opener fact pinned per stream until close); claims are retryable on transient worker-setup failure and terminal on terminal outcomes (no hot-loop). The legitimate same-`by` successor re-take after a brain restart still silently re-takes — the discriminator is lifecycle, never origin identity. Regressions ride the PRODUCTION rediscovery path (no manual re-serve — the pre-fix e2e bypassed exactly the broken seam).\r\n- **spt-core mapping:** `spt-daemon/src/dispatch.rs` `run_dispatch_loop` claim condition + `peek_first_line` classification + worker spawn; `spt-daemon/src/nethost.rs` `NetShared.streams` insert/finish + `DEFAULT_STREAM_RING_CHUNKS`; `spt-daemon/src/applyhost.rs` (the brain-cycle trigger).\r\n- **Source:** REDISPATCH-TRUTH W1 (hertz source-level RCA `.claude/reports/2026-07-16-redispatch-truth/hertz-refresh-rca.txt`, doyle seam-verified; ADR-0038; distinct from the CLOSED 0.30.x session-cursor resume-steal saga).\r\n\r\n---\r\n\r\n### 7.42 A node holding a valid roster address for a peer is NEVER route-less — a failed dial must not delete the only bootstrap route  `[REQ-HAZARD-MESH-BOOTSTRAP-TRAP]`\r\n<!-- [doc->REQ-HAZARD-MESH-BOOTSTRAP-TRAP] -->\r\n…\n","startLine":656,"lineNumbers":[656,null,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,null,682]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\docs\\KNOWN-HAZARDS.md"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":754,"totalBytes":4695,"outputLines":17,"outputBytes":4695,"shownRange":{"start":659,"end":675},"nextOffset":676},"limits":{"columnTruncated":{"maxColumn":768}}}},"isError":false,"timestamp":1784247455408}}
{"type":"message","id":"bf2a5e6b","parentId":"88858bf4","timestamp":"2026-07-17T00:17:35.431Z","message":{"role":"toolResult","toolCallId":"call_IoBClIhQEJGpxMNLZIoz8fpR|fc_05a4d8ea8a10ef0b016a59749f440081988758210dbc460175","toolName":"read","content":[{"type":"text","text":"CONN_LIFECYCLE: conn=9559 role=brain wall_ms=1784243595335 mono_ms=7899539 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9559 role=brain stream-subscriber stream=3695 wall_ms=1784243595335 mono_ms=7899540 event=stream-sub-attach stream=3695 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9559 role=brain stream-subscriber stream=3695 wall_ms=1784243595348 mono_ms=7899552 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9560 role=brain wall_ms=1784243595350 mono_ms=7899554 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9560 role=brain wall_ms=1784243595350 mono_ms=7899555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9561 role=brain wall_ms=1784243599540 mono_ms=7903745 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9561 role=brain wall_ms=1784243599540 mono_ms=7903745 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9562 role=brain wall_ms=1784243604900 mono_ms=7909105 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9562 role=brain wall_ms=1784243604905 mono_ms=7909110 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9563 role=brain wall_ms=1784243610303 mono_ms=7914508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9563 role=brain wall_ms=1784243610304 mono_ms=7914509 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_WRITE_POISONED: conn=9558 role=brain stream-subscriber stream=3694 wall_ms=1784243610315 mono_ms=7914520 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=9558 role=brain stream-subscriber stream=3694 wall_ms=1784243610317 mono_ms=7914521 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9564 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9565 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9566 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9565 role=brain wall_ms=1784243610426 mono_ms=7914630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9564 role=brain wall_ms=1784243610426 mono_ms=7914630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9566 role=brain wall_ms=1784243610426 mono_ms=7914630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9567 role=brain stream-subscriber stream=3697 wall_ms=1784243610426 mono_ms=7914631 event=stream-sub-attach stream=3697 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9567 role=brain stream-subscriber stream=3697 wall_ms=1784243610426 mono_ms=7914631 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9569 role=brain wall_ms=1784243610428 mono_ms=7914632 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9569 role=brain stream-subscriber stream=3698 wall_ms=1784243610428 mono_ms=7914633 event=stream-sub-attach stream=3698 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9568 role=brain wall_ms=1784243610438 mono_ms=7914643 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9568 role=brain stream-subscriber stream=3702 wall_ms=1784243610439 mono_ms=7914643 event=stream-sub-attach stream=3702 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9568 role=brain stream-subscriber stream=3702 wall_ms=1784243610441 mono_ms=7914646 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9569 role=brain stream-subscriber stream=3698 wall_ms=1784243610457 mono_ms=7914662 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9570 role=brain wall_ms=1784243610481 mono_ms=7914685 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9571 role=brain wall_ms=1784243610488 mono_ms=7914693 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9570 role=brain wall_ms=1784243610490 mono_ms=7914694 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9571 role=brain wall_ms=1784243610490 mono_ms=7914694 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243610494 mono_ms=7914698 event=stream-sub-attach stream=3696 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243610496 mono_ms=7914701 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9573 role=brain wall_ms=1784243610535 mono_ms=7914739 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9573 role=brain wall_ms=1784243610535 mono_ms=7914740 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9574 role=brain stream-subscriber stream=3704 wall_ms=1784243610536 mono_ms=7914740 event=stream-sub-attach stream=3704 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9574 role=brain stream-subscriber stream=3704 wall_ms=1784243610536 mono_ms=7914740 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9575 role=brain wall_ms=1784243610549 mono_ms=7914753 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9575 role=brain wall_ms=1784243610549 mono_ms=7914754 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9576 role=brain wall_ms=1784243610629 mono_ms=7914833 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9576 role=brain wall_ms=1784243610629 mono_ms=7914834 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9577 role=brain wall_ms=1784243610629 mono_ms=7914834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9578 role=brain wall_ms=1784243610629 mono_ms=7914834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9579 role=brain stream-subscriber stream=3699 wall_ms=1784243610629 mono_ms=7914834 event=stream-sub-attach stream=3699 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9579 role=brain stream-subscriber stream=3699 wall_ms=1784243610629 mono_ms=7914834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9577 role=brain wall_ms=1784243610629 mono_ms=7914834 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9578 role=brain wall_ms=1784243610630 mono_ms=7914834 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9580 role=brain wall_ms=1784243610631 mono_ms=7914836 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9580 role=brain stream-subscriber stream=3703 wall_ms=1784243610631 mono_ms=7914836 event=stream-sub-attach stream=3703 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9580 role=brain stream-subscriber stream=3703 wall_ms=1784243610635 mono_ms=7914839 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9581 role=brain wall_ms=1784243610635 mono_ms=7914840 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9581 role=brain wall_ms=1784243610635 mono_ms=7914840 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9582 role=brain wall_ms=1784243610760 mono_ms=7914965 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9582 role=brain wall_ms=1784243610760 mono_ms=7914965 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9583 role=brain wall_ms=1784243610761 mono_ms=7914965 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9583 role=brain stream-subscriber stream=3701 wall_ms=1784243610761 mono_ms=7914965 event=stream-sub-attach stream=3701 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9583 role=brain stream-subscriber stream=3701 wall_ms=1784243610767 mono_ms=7914972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9584 role=brain wall_ms=1784243610846 mono_ms=7915050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9584 role=brain wall_ms=1784243610846 mono_ms=7915050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9585 role=brain wall_ms=1784243610872 mono_ms=7915077 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9586 role=brain stream-subscriber stream=3700 wall_ms=1784243610873 mono_ms=7915078 event=stream-sub-attach stream=3700 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9586 role=brain stream-subscriber stream=3700 wall_ms=1784243610873 mono_ms=7915078 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9585 role=brain wall_ms=1784243610875 mono_ms=7915079 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:BIGNET step=59474787 id=cc1ae28229b6a11682d402e82efa9e4fcee29ef42db53beaaba5a301a98e747d addr=EndpointAddr { id: PublicKey(cc1ae28229b6a11682d402e82efa9e4fcee29ef42db53beaaba5a301a98e747d), addrs: {Ip(100.68.35.65:55736), Ip(192.168.1.81:55736)} }\nCONN_LIFECYCLE: conn=9587 role=brain stream-subscriber stream=3705 wall_ms=1784243610951 mono_ms=7915156 event=stream-sub-attach stream=3705 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9587 role=brain stream-subscriber stream=3705 wall_ms=1784243610952 mono_ms=7915156 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9587 role=brain stream-subscriber stream=3705 wall_ms=1784243610952 mono_ms=7915157 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9588 role=brain wall_ms=1784243610954 mono_ms=7915158 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9588 role=brain wall_ms=1784243610955 mono_ms=7915159 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:SPT_DEV step=59474787 id=8b8fbd5be53a3085572d8b514bffad1bd1610fbbe251b1a9c32a7198cdb00b18 addr=EndpointAddr { id: PublicKey(8b8fbd5be53a3085572d8b514bffad1bd1610fbbe251b1a9c32a7198cdb00b18), addrs: {Ip(100.68.35.65:55746), Ip(192.168.1.81:55746)} }\nCONN_LIFECYCLE: conn=9589 role=brain wall_ms=1784243611243 mono_ms=7915447 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9589 role=brain wall_ms=1784243611244 mono_ms=7915448 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9590 role=brain stream-subscriber stream=3706 wall_ms=1784243611244 mono_ms=7915449 event=stream-sub-attach stream=3706 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9590 role=brain stream-subscriber stream=3706 wall_ms=1784243611244 mono_ms=7915449 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9590 role=brain stream-subscriber stream=3706 wall_ms=1784243611245 mono_ms=7915449 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9591 role=brain wall_ms=1784243611348 mono_ms=7915552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9591 role=brain wall_ms=1784243611349 mono_ms=7915554 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9592 role=brain wall_ms=1784243612130 mono_ms=7916335 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9592 role=brain wall_ms=1784243612131 mono_ms=7916335 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9593 role=brain wall_ms=1784243612131 mono_ms=7916336 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9593 role=brain wall_ms=1784243612132 mono_ms=7916337 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9594 role=brain wall_ms=1784243612143 mono_ms=7916347 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9594 role=brain stream-subscriber stream=3708 wall_ms=1784243612143 mono_ms=7916347 event=stream-sub-attach stream=3708 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9595 role=brain wall_ms=1784243612152 mono_ms=7916357 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9595 role=brain stream-subscriber stream=3707 wall_ms=1784243612152 mono_ms=7916357 event=stream-sub-attach stream=3707 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9594 role=brain stream-subscriber stream=3708 wall_ms=1784243612155 mono_ms=7916359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9596 role=brain wall_ms=1784243612158 mono_ms=7916363 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9596 role=brain wall_ms=1784243612160 mono_ms=7916365 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9595 role=brain stream-subscriber stream=3707 wall_ms=1784243612214 mono_ms=7916418 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9597 role=brain wall_ms=1784243612214 mono_ms=7916418 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9597 role=brain wall_ms=1784243612214 mono_ms=7916418 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9598 role=brain wall_ms=1784243615350 mono_ms=7919554 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9598 role=brain wall_ms=1784243615350 mono_ms=7919554 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9599 role=brain stream-subscriber stream=3709 wall_ms=1784243615350 mono_ms=7919555 event=stream-sub-attach stream=3709 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9599 role=brain stream-subscriber stream=3709 wall_ms=1784243615350 mono_ms=7919555 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9599 role=brain stream-subscriber stream=3709 wall_ms=1784243615351 mono_ms=7919555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9600 role=brain wall_ms=1784243615351 mono_ms=7919555 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9600 role=brain wall_ms=1784243615351 mono_ms=7919555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9601 role=brain wall_ms=1784243615528 mono_ms=7919733 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9601 role=brain wall_ms=1784243615530 mono_ms=7919734 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9602 role=brain wall_ms=1784243620783 mono_ms=7924987 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9602 role=brain wall_ms=1784243620783 mono_ms=7924987 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9603 role=brain wall_ms=1784243625056 mono_ms=7929261 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9603 role=brain wall_ms=1784243625056 mono_ms=7929261 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9604 role=brain wall_ms=1784243625275 mono_ms=7929479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9604 role=brain stream-subscriber stream=3710 wall_ms=1784243625276 mono_ms=7929480 event=stream-sub-attach stream=3710 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9604 role=brain stream-subscriber stream=3710 wall_ms=1784243625280 mono_ms=7929484 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9605 role=brain wall_ms=1784243625285 mono_ms=7929490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9605 role=brain wall_ms=1784243625286 mono_ms=7929490 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9606 role=brain wall_ms=1784243625738 mono_ms=7929943 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243625739 mono_ms=7929943 event=stream-sub-attach stream=3714 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243625739 mono_ms=7929943 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9606 role=brain wall_ms=1784243625739 mono_ms=7929943 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9608 role=brain wall_ms=1784243625827 mono_ms=7930032 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9608 role=brain wall_ms=1784243625827 mono_ms=7930032 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9609 role=brain stream-subscriber stream=3713 wall_ms=1784243625830 mono_ms=7930035 event=stream-sub-attach stream=3713 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9609 role=brain stream-subscriber stream=3713 wall_ms=1784243625830 mono_ms=7930035 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9610 role=brain wall_ms=1784243625854 mono_ms=7930058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9610 role=brain wall_ms=1784243625854 mono_ms=7930058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9611 role=brain wall_ms=1784243625854 mono_ms=7930059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9611 role=brain wall_ms=1784243625854 mono_ms=7930059 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243625858 mono_ms=7930062 event=stream-sub-attach stream=3711 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243625858 mono_ms=7930062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9613 role=brain wall_ms=1784243625858 mono_ms=7930063 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9613 role=brain stream-subscriber stream=3712 wall_ms=1784243625858 mono_ms=7930063 event=stream-sub-attach stream=3712 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9613 role=brain stream-subscriber stream=3712 wall_ms=1784243625872 mono_ms=7930076 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9614 role=brain wall_ms=1784243625878 mono_ms=7930082 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9614 role=brain wall_ms=1784243625879 mono_ms=7930083 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9615 role=brain wall_ms=1784243626280 mono_ms=7930484 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9615 role=brain wall_ms=1784243626280 mono_ms=7930484 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9616 role=brain wall_ms=1784243631863 mono_ms=7936067 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9616 role=brain wall_ms=1784243631863 mono_ms=7936067 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9617 role=brain wall_ms=1784243637359 mono_ms=7941564 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9617 role=brain wall_ms=1784243637363 mono_ms=7941567 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPSYCHE_COMMUNE_SYNC_FAIL:lia: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id lia --session-id bf353802-556c-46ce-9865-e74a3092bbe9\nPSYCHE_TURN_FAIL:lia (strike 1/3): commune-sync: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id lia --session-id bf353802-556c-46ce-9865-e74a3092bbe9\nCONN_WRITE_POISONED: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243641012 mono_ms=7945216 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243641131 mono_ms=7945335 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9618 role=brain wall_ms=1784243641238 mono_ms=7945442 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9618 role=brain wall_ms=1784243641238 mono_ms=7945442 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9619 role=brain wall_ms=1784243641285 mono_ms=7945489 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9619 role=brain wall_ms=1784243641285 mono_ms=7945490 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9621 role=brain wall_ms=1784243641285 mono_ms=7945490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9620 role=brain stream-subscriber stream=3716 wall_ms=1784243641286 mono_ms=7945490 event=stream-sub-attach stream=3716 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9620 role=brain stream-subscriber stream=3716 wall_ms=1784243641286 mono_ms=7945490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9621 role=brain wall_ms=1784243641286 mono_ms=7945491 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9620 role=brain stream-subscriber stream=3716 wall_ms=1784243641286 mono_ms=7945491 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9622 role=brain wall_ms=1784243641332 mono_ms=7945536 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9622 role=brain stream-subscriber stream=3717 wall_ms=1784243641332 mono_ms=7945537 event=stream-sub-attach stream=3717 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9622 role=brain stream-subscriber stream=3717 wall_ms=1784243641335 mono_ms=7945539 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9623 role=brain wall_ms=1784243641337 mono_ms=7945541 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9623 role=brain wall_ms=1784243641337 mono_ms=7945542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9625 role=brain wall_ms=1784243641376 mono_ms=7945580 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9624 role=brain wall_ms=1784243641376 mono_ms=7945580 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9625 role=brain wall_ms=1784243641376 mono_ms=7945580 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9624 role=brain stream-subscriber stream=3718 wall_ms=1784243641376 mono_ms=7945580 event=stream-sub-attach stream=3718 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9624 role=brain stream-subscriber stream=3718 wall_ms=1784243641389 mono_ms=7945594 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9626 role=brain wall_ms=1784243641390 mono_ms=7945594 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9626 role=brain wall_ms=1784243641390 mono_ms=7945594 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9627 role=brain wall_ms=1784243641487 mono_ms=7945691 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9627 role=brain wall_ms=1784243641488 mono_ms=7945693 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9628 role=brain wall_ms=1784243641570 mono_ms=7945774 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9628 role=brain stream-subscriber stream=3715 wall_ms=1784243641570 mono_ms=7945774 event=stream-sub-attach stream=3715 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9628 role=brain stream-subscriber stream=3715 wall_ms=1784243641577 mono_ms=7945781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9629 role=brain wall_ms=1784243641577 mono_ms=7945781 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9629 role=brain wall_ms=1784243641577 mono_ms=7945781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474788 id=1b8b60d820da660b14851f87301117adf0fb875f8d2ffd291f1b81f8ddb46102 addr=EndpointAddr { id: PublicKey(1b8b60d820da660b14851f87301117adf0fb875f8d2ffd291f1b81f8ddb46102), addrs: {Ip(100.68.35.65:51845), Ip(192.168.1.81:51845)} }\nCONN_LIFECYCLE: conn=9630 role=brain wall_ms=1784243642828 mono_ms=7947033 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9630 role=brain wall_ms=1784243642829 mono_ms=7947033 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9631 role=brain wall_ms=1784243642833 mono_ms=7947037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9631 role=brain wall_ms=1784243642833 mono_ms=7947038 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9632 role=brain wall_ms=1784243642864 mono_ms=7947069 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9632 role=brain stream-subscriber stream=3719 wall_ms=1784243642865 mono_ms=7947069 event=stream-sub-attach stream=3719 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9632 role=brain stream-subscriber stream=3719 wall_ms=1784243642871 mono_ms=7947075 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9633 role=brain wall_ms=1784243642871 mono_ms=7947075 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9633 role=brain wall_ms=1784243642871 mono_ms=7947075 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9634 role=brain wall_ms=1784243643061 mono_ms=7947265 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9634 role=brain wall_ms=1784243643061 mono_ms=7947265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9635 role=brain wall_ms=1784243643075 mono_ms=7947280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9635 role=brain stream-subscriber stream=3720 wall_ms=1784243643075 mono_ms=7947280 event=stream-sub-attach stream=3720 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9636 role=brain wall_ms=1784243643079 mono_ms=7947283 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9635 role=brain stream-subscriber stream=3720 wall_ms=1784243643079 mono_ms=7947283 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9636 role=brain wall_ms=1784243643079 mono_ms=7947283 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:SPT_DEV step=59474788 id=a16e6fcbb62a31a6fcb538a242b682aa14e346243325beff6498d46bd672eb1f addr=EndpointAddr { id: PublicKey(a16e6fcbb62a31a6fcb538a242b682aa14e346243325beff6498d46bd672eb1f), addrs: {Ip(100.68.35.65:51863), Ip(192.168.1.81:51863)} }\nCONN_LIFECYCLE: conn=9637 role=brain wall_ms=1784243648264 mono_ms=7952468 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9637 role=brain wall_ms=1784243648264 mono_ms=7952468 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9638 role=brain wall_ms=1784243653562 mono_ms=7957766 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9638 role=brain wall_ms=1784243653562 mono_ms=7957766 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9639 role=brain wall_ms=1784243655663 mono_ms=7959867 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9640 role=brain wall_ms=1784243655663 mono_ms=7959867 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243655664 mono_ms=7959869 event=stream-sub-attach stream=3721 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243655664 mono_ms=7959869 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9642 role=brain wall_ms=1784243655665 mono_ms=7959869 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9642 role=brain stream-subscriber stream=3722 wall_ms=1784243655665 mono_ms=7959869 event=stream-sub-attach stream=3722 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9639 role=brain wall_ms=1784243655665 mono_ms=7959869 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9640 role=brain wall_ms=1784243655665 mono_ms=7959869 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9642 role=brain stream-subscriber stream=3722 wall_ms=1784243655677 mono_ms=7959881 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9643 role=brain wall_ms=1784243655693 mono_ms=7959897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9643 role=brain wall_ms=1784243655693 mono_ms=7959897 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9644 role=brain wall_ms=1784243659012 mono_ms=7963216 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9644 role=brain wall_ms=1784243659012 mono_ms=7963217 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9645 role=brain wall_ms=1784243664370 mono_ms=7968574 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9645 role=brain wall_ms=1784243664370 mono_ms=7968574 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9646 role=brain wall_ms=1784243669633 mono_ms=7973837 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9646 role=brain wall_ms=1784243669633 mono_ms=7973837 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_WRITE_POISONED: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243670679 mono_ms=7974883 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243670680 mono_ms=7974884 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:SPT_DEV step=59474789 id=a1726c12566a6670ec5dccabb73088578cff957e1ad7a373d364fcdee169b865 addr=EndpointAddr { id: PublicKey(a1726c12566a6670ec5dccabb73088578cff957e1ad7a373d364fcdee169b865), addrs: {Ip(100.68.35.65:59121), Ip(192.168.1.81:59121)} }\nPAIR_MEET_UP:BIGNET step=59474789 id=91cef822678b84c77ccf4ac94a67ea615e3527f2c1c387c7d4704b33b7fb2a00 addr=EndpointAddr { id: PublicKey(91cef822678b84c77ccf4ac94a67ea615e3527f2c1c387c7d4704b33b7fb2a00), addrs: {Ip(100.68.35.65:59125), Ip(192.168.1.81:59125)} }\nCONN_LIFECYCLE: conn=9647 role=brain wall_ms=1784243670832 mono_ms=7975036 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9647 role=brain wall_ms=1784243670833 mono_ms=7975037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9648 role=brain wall_ms=1784243670833 mono_ms=7975037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9649 role=brain wall_ms=1784243670833 mono_ms=7975037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9649 role=brain wall_ms=1784243670833 mono_ms=7975037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9648 role=brain wall_ms=1784243670836 mono_ms=7975040 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9650 role=brain wall_ms=1784243670840 mono_ms=7975044 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9650 role=brain wall_ms=1784243670841 mono_ms=7975045 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9651 role=brain wall_ms=1784243670842 mono_ms=7975046 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9651 role=brain stream-subscriber stream=3726 wall_ms=1784243670842 mono_ms=7975046 event=stream-sub-attach stream=3726 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9651 role=brain stream-subscriber stream=3726 wall_ms=1784243670846 mono_ms=7975050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9652 role=brain wall_ms=1784243670846 mono_ms=7975050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9652 role=brain wall_ms=1784243670848 mono_ms=7975052 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9653 role=brain wall_ms=1784243670881 mono_ms=7975085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9653 role=brain stream-subscriber stream=3727 wall_ms=1784243670881 mono_ms=7975085 event=stream-sub-attach stream=3727 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9653 role=brain stream-subscriber stream=3727 wall_ms=1784243670893 mono_ms=7975097 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9654 role=brain wall_ms=1784243670904 mono_ms=7975108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9654 role=brain stream-subscriber stream=3725 wall_ms=1784243670904 mono_ms=7975108 event=stream-sub-attach stream=3725 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9655 role=brain stream-subscriber stream=3724 wall_ms=1784243670904 mono_ms=7975108 event=stream-sub-attach stream=3724 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9655 role=brain stream-subscriber stream=3724 wall_ms=1784243670904 mono_ms=7975108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9654 role=brain stream-subscriber stream=3725 wall_ms=1784243670910 mono_ms=7975114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9656 role=brain wall_ms=1784243670910 mono_ms=7975114 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9656 role=brain wall_ms=1784243670910 mono_ms=7975114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9657 role=brain wall_ms=1784243670911 mono_ms=7975114 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9657 role=brain wall_ms=1784243670911 mono_ms=7975115 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9658 role=brain wall_ms=1784243671070 mono_ms=7975274 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9658 role=brain wall_ms=1784243671070 mono_ms=7975274 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243671076 mono_ms=7975279 event=stream-sub-attach stream=3723 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243671076 mono_ms=7975280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9660 role=brain wall_ms=1784243672144 mono_ms=7976348 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9660 role=brain wall_ms=1784243672144 mono_ms=7976348 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9661 role=brain stream-subscriber stream=3728 wall_ms=1784243672210 mono_ms=7976414 event=stream-sub-attach stream=3728 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9661 role=brain stream-subscriber stream=3728 wall_ms=1784243672210 mono_ms=7976414 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9661 role=brain stream-subscriber stream=3728 wall_ms=1784243672210 mono_ms=7976414 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9662 role=brain wall_ms=1784243672211 mono_ms=7976415 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9662 role=brain wall_ms=1784243672211 mono_ms=7976415 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9663 role=brain wall_ms=1784243672354 mono_ms=7976558 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9663 role=brain wall_ms=1784243672354 mono_ms=7976558 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9664 role=brain stream-subscriber stream=3729 wall_ms=1784243672420 mono_ms=7976624 event=stream-sub-attach stream=3729 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9664 role=brain stream-subscriber stream=3729 wall_ms=1784243672420 mono_ms=7976624 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9664 role=brain stream-subscriber stream=3729 wall_ms=1784243672421 mono_ms=7976625 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9665 role=brain wall_ms=1784243672423 mono_ms=7976627 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9665 role=brain wall_ms=1784243672423 mono_ms=7976627 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9666 role=brain wall_ms=1784243674917 mono_ms=7979121 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9666 role=brain wall_ms=1784243674917 mono_ms=7979121 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9667 role=brain wall_ms=1784243675160 mono_ms=7979364 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9667 role=brain wall_ms=1784243675160 mono_ms=7979364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9668 role=brain wall_ms=1784243675170 mono_ms=7979374 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9668 role=brain wall_ms=1784243675170 mono_ms=7979374 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9669 role=brain wall_ms=1784243675171 mono_ms=7979375 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9669 role=brain stream-subscriber stream=3731 wall_ms=1784243675171 mono_ms=7979375 event=stream-sub-attach stream=3731 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9669 role=brain stream-subscriber stream=3731 wall_ms=1784243675174 mono_ms=7979378 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9670 role=brain wall_ms=1784243675175 mono_ms=7979379 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9670 role=brain wall_ms=1784243675175 mono_ms=7979379 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9671 role=brain wall_ms=1784243675196 mono_ms=7979399 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9671 role=brain stream-subscriber stream=3730 wall_ms=1784243675196 mono_ms=7979400 event=stream-sub-attach stream=3730 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9671 role=brain stream-subscriber stream=3730 wall_ms=1784243675201 mono_ms=7979405 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9672 role=brain wall_ms=1784243675239 mono_ms=7979443 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9672 role=brain wall_ms=1784243675240 mono_ms=7979444 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9673 role=brain wall_ms=1784243675716 mono_ms=7979919 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9673 role=brain wall_ms=1784243675716 mono_ms=7979920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9674 role=brain stream-subscriber stream=3732 wall_ms=1784243675718 mono_ms=7979922 event=stream-sub-attach stream=3732 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9674 role=brain stream-subscriber stream=3732 wall_ms=1784243675718 mono_ms=7979922 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9674 role=brain stream-subscriber stream=3732 wall_ms=1784243675719 mono_ms=7979923 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9675 role=brain wall_ms=1784243675771 mono_ms=7979975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9675 role=brain wall_ms=1784243675771 mono_ms=7979975 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9676 role=brain wall_ms=1784243680071 mono_ms=7984275 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9676 role=brain wall_ms=1784243680072 mono_ms=7984275 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9677 role=brain wall_ms=1784243685135 mono_ms=7989339 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9677 role=brain wall_ms=1784243685135 mono_ms=7989339 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9678 role=brain wall_ms=1784243685686 mono_ms=7989890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9679 role=brain wall_ms=1784243685686 mono_ms=7989890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9678 role=brain wall_ms=1784243685686 mono_ms=7989890 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9679 role=brain wall_ms=1784243685686 mono_ms=7989890 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9680 role=brain stream-subscriber stream=3733 wall_ms=1784243685686 mono_ms=7989890 event=stream-sub-attach stream=3733 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9680 role=brain stream-subscriber stream=3733 wall_ms=1784243685686 mono_ms=7989890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9681 role=brain wall_ms=1784243685687 mono_ms=7989891 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9681 role=brain stream-subscriber stream=3734 wall_ms=1784243685687 mono_ms=7989891 event=stream-sub-attach stream=3734 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9681 role=brain stream-subscriber stream=3734 wall_ms=1784243685724 mono_ms=7989928 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9682 role=brain wall_ms=1784243685724 mono_ms=7989928 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9682 role=brain wall_ms=1784243685724 mono_ms=7989928 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPSYCHE_COMMUNE_SYNC_FAIL:doyle: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id doyle --session-id a2fdb848-6643-4e10-b221-6baee7e91b7b\nPSYCHE_TURN_FAIL:doyle (strike 1/3): turn: psyche turn runtime: bounded invocation timed out after 30s (killed): claude-spt psyche --id doyle --session-id a5918ea9-d5bf-4657-a6d3-159f6d6634c4 --psyche-context-file C:\\Users\\decid\\AppData\\Local\\spt-core\\owlery\\doyle\\nested\\doyle-psyche\\psyche-context.txt\nDISPATCH:3694:Failed(\"failed to fill whole buffer\")\nENDPOINT_INJECT:lia (1811 bytes → translation binary)\nCONN_LIFECYCLE: conn=9684 role=brain wall_ms=1784243688454 mono_ms=7992658 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9684 role=brain wall_ms=1784243688454 mono_ms=7992658 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3721:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9686 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9579 role=brain stream-subscriber stream=3699 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9683 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9609 role=brain stream-subscriber stream=3713 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9685 role=brain wall_ms=1784243688480 mono_ms=7992684 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9688 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9687 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9586 role=brain stream-subscriber stream=3700 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9686 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9683 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9685 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9688 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9687 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9655 role=brain stream-subscriber stream=3724 wall_ms=1784243688482 mono_ms=7992686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9689 role=brain wall_ms=1784243688482 mono_ms=7992686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9689 role=brain wall_ms=1784243688482 mono_ms=7992686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9690 role=brain wall_ms=1784243688485 mono_ms=7992688 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9567 role=brain stream-subscriber stream=3697 wall_ms=1784243688485 mono_ms=7992689 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9690 role=brain wall_ms=1784243688485 mono_ms=7992689 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3711:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243688495 mono_ms=7992699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9691 role=brain wall_ms=1784243688495 mono_ms=7992699 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9691 role=brain wall_ms=1784243688495 mono_ms=7992699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9574 role=brain stream-subscriber stream=3704 wall_ms=1784243688500 mono_ms=7992703 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9692 role=brain wall_ms=1784243688500 mono_ms=7992704 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9692 role=brain wall_ms=1784243688500 mono_ms=7992704 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9680 role=brain stream-subscriber stream=3733 wall_ms=1784243688502 mono_ms=7992706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9693 role=brain wall_ms=1784243688502 mono_ms=7992706 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9693 role=brain wall_ms=1784243688502 mono_ms=7992706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9694 role=brain wall_ms=1784243688585 mono_ms=7992788 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9695 role=brain wall_ms=1784243688585 mono_ms=7992788 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9694 role=brain wall_ms=1784243688585 mono_ms=7992788 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9695 role=brain wall_ms=1784243688585 mono_ms=7992788 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9696 role=brain stream-subscriber stream=3737 wall_ms=1784243688585 mono_ms=7992789 event=stream-sub-attach stream=3737 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9697 role=brain stream-subscriber stream=3735 wall_ms=1784243688585 mono_ms=7992789 event=stream-sub-attach stream=3735 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\n\n[Showing lines 23484-23823 of 383. Use :23824 to continue]"}],"details":{"truncation":{"content":"CONN_LIFECYCLE: conn=9559 role=brain wall_ms=1784243595335 mono_ms=7899539 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9559 role=brain stream-subscriber stream=3695 wall_ms=1784243595335 mono_ms=7899540 event=stream-sub-attach stream=3695 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9559 role=brain stream-subscriber stream=3695 wall_ms=1784243595348 mono_ms=7899552 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9560 role=brain wall_ms=1784243595350 mono_ms=7899554 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9560 role=brain wall_ms=1784243595350 mono_ms=7899555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9561 role=brain wall_ms=1784243599540 mono_ms=7903745 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9561 role=brain wall_ms=1784243599540 mono_ms=7903745 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9562 role=brain wall_ms=1784243604900 mono_ms=7909105 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9562 role=brain wall_ms=1784243604905 mono_ms=7909110 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9563 role=brain wall_ms=1784243610303 mono_ms=7914508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9563 role=brain wall_ms=1784243610304 mono_ms=7914509 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_WRITE_POISONED: conn=9558 role=brain stream-subscriber stream=3694 wall_ms=1784243610315 mono_ms=7914520 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=9558 role=brain stream-subscriber stream=3694 wall_ms=1784243610317 mono_ms=7914521 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9564 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9565 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9566 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9565 role=brain wall_ms=1784243610426 mono_ms=7914630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9564 role=brain wall_ms=1784243610426 mono_ms=7914630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9566 role=brain wall_ms=1784243610426 mono_ms=7914630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9567 role=brain stream-subscriber stream=3697 wall_ms=1784243610426 mono_ms=7914631 event=stream-sub-attach stream=3697 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9567 role=brain stream-subscriber stream=3697 wall_ms=1784243610426 mono_ms=7914631 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9569 role=brain wall_ms=1784243610428 mono_ms=7914632 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9569 role=brain stream-subscriber stream=3698 wall_ms=1784243610428 mono_ms=7914633 event=stream-sub-attach stream=3698 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9568 role=brain wall_ms=1784243610438 mono_ms=7914643 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9568 role=brain stream-subscriber stream=3702 wall_ms=1784243610439 mono_ms=7914643 event=stream-sub-attach stream=3702 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9568 role=brain stream-subscriber stream=3702 wall_ms=1784243610441 mono_ms=7914646 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9569 role=brain stream-subscriber stream=3698 wall_ms=1784243610457 mono_ms=7914662 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9570 role=brain wall_ms=1784243610481 mono_ms=7914685 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9571 role=brain wall_ms=1784243610488 mono_ms=7914693 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9570 role=brain wall_ms=1784243610490 mono_ms=7914694 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9571 role=brain wall_ms=1784243610490 mono_ms=7914694 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243610494 mono_ms=7914698 event=stream-sub-attach stream=3696 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243610496 mono_ms=7914701 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9573 role=brain wall_ms=1784243610535 mono_ms=7914739 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9573 role=brain wall_ms=1784243610535 mono_ms=7914740 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9574 role=brain stream-subscriber stream=3704 wall_ms=1784243610536 mono_ms=7914740 event=stream-sub-attach stream=3704 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9574 role=brain stream-subscriber stream=3704 wall_ms=1784243610536 mono_ms=7914740 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9575 role=brain wall_ms=1784243610549 mono_ms=7914753 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9575 role=brain wall_ms=1784243610549 mono_ms=7914754 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9576 role=brain wall_ms=1784243610629 mono_ms=7914833 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9576 role=brain wall_ms=1784243610629 mono_ms=7914834 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9577 role=brain wall_ms=1784243610629 mono_ms=7914834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9578 role=brain wall_ms=1784243610629 mono_ms=7914834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9579 role=brain stream-subscriber stream=3699 wall_ms=1784243610629 mono_ms=7914834 event=stream-sub-attach stream=3699 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9579 role=brain stream-subscriber stream=3699 wall_ms=1784243610629 mono_ms=7914834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9577 role=brain wall_ms=1784243610629 mono_ms=7914834 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9578 role=brain wall_ms=1784243610630 mono_ms=7914834 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9580 role=brain wall_ms=1784243610631 mono_ms=7914836 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9580 role=brain stream-subscriber stream=3703 wall_ms=1784243610631 mono_ms=7914836 event=stream-sub-attach stream=3703 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9580 role=brain stream-subscriber stream=3703 wall_ms=1784243610635 mono_ms=7914839 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9581 role=brain wall_ms=1784243610635 mono_ms=7914840 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9581 role=brain wall_ms=1784243610635 mono_ms=7914840 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9582 role=brain wall_ms=1784243610760 mono_ms=7914965 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9582 role=brain wall_ms=1784243610760 mono_ms=7914965 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9583 role=brain wall_ms=1784243610761 mono_ms=7914965 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9583 role=brain stream-subscriber stream=3701 wall_ms=1784243610761 mono_ms=7914965 event=stream-sub-attach stream=3701 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9583 role=brain stream-subscriber stream=3701 wall_ms=1784243610767 mono_ms=7914972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9584 role=brain wall_ms=1784243610846 mono_ms=7915050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9584 role=brain wall_ms=1784243610846 mono_ms=7915050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9585 role=brain wall_ms=1784243610872 mono_ms=7915077 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9586 role=brain stream-subscriber stream=3700 wall_ms=1784243610873 mono_ms=7915078 event=stream-sub-attach stream=3700 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9586 role=brain stream-subscriber stream=3700 wall_ms=1784243610873 mono_ms=7915078 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9585 role=brain wall_ms=1784243610875 mono_ms=7915079 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:BIGNET step=59474787 id=cc1ae28229b6a11682d402e82efa9e4fcee29ef42db53beaaba5a301a98e747d addr=EndpointAddr { id: PublicKey(cc1ae28229b6a11682d402e82efa9e4fcee29ef42db53beaaba5a301a98e747d), addrs: {Ip(100.68.35.65:55736), Ip(192.168.1.81:55736)} }\nCONN_LIFECYCLE: conn=9587 role=brain stream-subscriber stream=3705 wall_ms=1784243610951 mono_ms=7915156 event=stream-sub-attach stream=3705 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9587 role=brain stream-subscriber stream=3705 wall_ms=1784243610952 mono_ms=7915156 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9587 role=brain stream-subscriber stream=3705 wall_ms=1784243610952 mono_ms=7915157 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9588 role=brain wall_ms=1784243610954 mono_ms=7915158 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9588 role=brain wall_ms=1784243610955 mono_ms=7915159 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:SPT_DEV step=59474787 id=8b8fbd5be53a3085572d8b514bffad1bd1610fbbe251b1a9c32a7198cdb00b18 addr=EndpointAddr { id: PublicKey(8b8fbd5be53a3085572d8b514bffad1bd1610fbbe251b1a9c32a7198cdb00b18), addrs: {Ip(100.68.35.65:55746), Ip(192.168.1.81:55746)} }\nCONN_LIFECYCLE: conn=9589 role=brain wall_ms=1784243611243 mono_ms=7915447 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9589 role=brain wall_ms=1784243611244 mono_ms=7915448 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9590 role=brain stream-subscriber stream=3706 wall_ms=1784243611244 mono_ms=7915449 event=stream-sub-attach stream=3706 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9590 role=brain stream-subscriber stream=3706 wall_ms=1784243611244 mono_ms=7915449 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9590 role=brain stream-subscriber stream=3706 wall_ms=1784243611245 mono_ms=7915449 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9591 role=brain wall_ms=1784243611348 mono_ms=7915552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9591 role=brain wall_ms=1784243611349 mono_ms=7915554 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9592 role=brain wall_ms=1784243612130 mono_ms=7916335 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9592 role=brain wall_ms=1784243612131 mono_ms=7916335 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9593 role=brain wall_ms=1784243612131 mono_ms=7916336 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9593 role=brain wall_ms=1784243612132 mono_ms=7916337 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9594 role=brain wall_ms=1784243612143 mono_ms=7916347 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9594 role=brain stream-subscriber stream=3708 wall_ms=1784243612143 mono_ms=7916347 event=stream-sub-attach stream=3708 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9595 role=brain wall_ms=1784243612152 mono_ms=7916357 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9595 role=brain stream-subscriber stream=3707 wall_ms=1784243612152 mono_ms=7916357 event=stream-sub-attach stream=3707 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9594 role=brain stream-subscriber stream=3708 wall_ms=1784243612155 mono_ms=7916359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9596 role=brain wall_ms=1784243612158 mono_ms=7916363 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9596 role=brain wall_ms=1784243612160 mono_ms=7916365 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9595 role=brain stream-subscriber stream=3707 wall_ms=1784243612214 mono_ms=7916418 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9597 role=brain wall_ms=1784243612214 mono_ms=7916418 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9597 role=brain wall_ms=1784243612214 mono_ms=7916418 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9598 role=brain wall_ms=1784243615350 mono_ms=7919554 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9598 role=brain wall_ms=1784243615350 mono_ms=7919554 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9599 role=brain stream-subscriber stream=3709 wall_ms=1784243615350 mono_ms=7919555 event=stream-sub-attach stream=3709 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9599 role=brain stream-subscriber stream=3709 wall_ms=1784243615350 mono_ms=7919555 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9599 role=brain stream-subscriber stream=3709 wall_ms=1784243615351 mono_ms=7919555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9600 role=brain wall_ms=1784243615351 mono_ms=7919555 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9600 role=brain wall_ms=1784243615351 mono_ms=7919555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9601 role=brain wall_ms=1784243615528 mono_ms=7919733 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9601 role=brain wall_ms=1784243615530 mono_ms=7919734 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9602 role=brain wall_ms=1784243620783 mono_ms=7924987 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9602 role=brain wall_ms=1784243620783 mono_ms=7924987 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9603 role=brain wall_ms=1784243625056 mono_ms=7929261 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9603 role=brain wall_ms=1784243625056 mono_ms=7929261 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9604 role=brain wall_ms=1784243625275 mono_ms=7929479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9604 role=brain stream-subscriber stream=3710 wall_ms=1784243625276 mono_ms=7929480 event=stream-sub-attach stream=3710 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9604 role=brain stream-subscriber stream=3710 wall_ms=1784243625280 mono_ms=7929484 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9605 role=brain wall_ms=1784243625285 mono_ms=7929490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9605 role=brain wall_ms=1784243625286 mono_ms=7929490 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9606 role=brain wall_ms=1784243625738 mono_ms=7929943 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243625739 mono_ms=7929943 event=stream-sub-attach stream=3714 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243625739 mono_ms=7929943 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9606 role=brain wall_ms=1784243625739 mono_ms=7929943 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9608 role=brain wall_ms=1784243625827 mono_ms=7930032 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9608 role=brain wall_ms=1784243625827 mono_ms=7930032 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9609 role=brain stream-subscriber stream=3713 wall_ms=1784243625830 mono_ms=7930035 event=stream-sub-attach stream=3713 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9609 role=brain stream-subscriber stream=3713 wall_ms=1784243625830 mono_ms=7930035 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9610 role=brain wall_ms=1784243625854 mono_ms=7930058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9610 role=brain wall_ms=1784243625854 mono_ms=7930058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9611 role=brain wall_ms=1784243625854 mono_ms=7930059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9611 role=brain wall_ms=1784243625854 mono_ms=7930059 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243625858 mono_ms=7930062 event=stream-sub-attach stream=3711 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243625858 mono_ms=7930062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9613 role=brain wall_ms=1784243625858 mono_ms=7930063 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9613 role=brain stream-subscriber stream=3712 wall_ms=1784243625858 mono_ms=7930063 event=stream-sub-attach stream=3712 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9613 role=brain stream-subscriber stream=3712 wall_ms=1784243625872 mono_ms=7930076 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9614 role=brain wall_ms=1784243625878 mono_ms=7930082 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9614 role=brain wall_ms=1784243625879 mono_ms=7930083 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9615 role=brain wall_ms=1784243626280 mono_ms=7930484 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9615 role=brain wall_ms=1784243626280 mono_ms=7930484 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9616 role=brain wall_ms=1784243631863 mono_ms=7936067 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9616 role=brain wall_ms=1784243631863 mono_ms=7936067 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9617 role=brain wall_ms=1784243637359 mono_ms=7941564 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9617 role=brain wall_ms=1784243637363 mono_ms=7941567 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPSYCHE_COMMUNE_SYNC_FAIL:lia: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id lia --session-id bf353802-556c-46ce-9865-e74a3092bbe9\nPSYCHE_TURN_FAIL:lia (strike 1/3): commune-sync: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id lia --session-id bf353802-556c-46ce-9865-e74a3092bbe9\nCONN_WRITE_POISONED: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243641012 mono_ms=7945216 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243641131 mono_ms=7945335 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9618 role=brain wall_ms=1784243641238 mono_ms=7945442 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9618 role=brain wall_ms=1784243641238 mono_ms=7945442 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9619 role=brain wall_ms=1784243641285 mono_ms=7945489 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9619 role=brain wall_ms=1784243641285 mono_ms=7945490 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9621 role=brain wall_ms=1784243641285 mono_ms=7945490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9620 role=brain stream-subscriber stream=3716 wall_ms=1784243641286 mono_ms=7945490 event=stream-sub-attach stream=3716 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9620 role=brain stream-subscriber stream=3716 wall_ms=1784243641286 mono_ms=7945490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9621 role=brain wall_ms=1784243641286 mono_ms=7945491 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9620 role=brain stream-subscriber stream=3716 wall_ms=1784243641286 mono_ms=7945491 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9622 role=brain wall_ms=1784243641332 mono_ms=7945536 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9622 role=brain stream-subscriber stream=3717 wall_ms=1784243641332 mono_ms=7945537 event=stream-sub-attach stream=3717 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9622 role=brain stream-subscriber stream=3717 wall_ms=1784243641335 mono_ms=7945539 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9623 role=brain wall_ms=1784243641337 mono_ms=7945541 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9623 role=brain wall_ms=1784243641337 mono_ms=7945542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9625 role=brain wall_ms=1784243641376 mono_ms=7945580 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9624 role=brain wall_ms=1784243641376 mono_ms=7945580 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9625 role=brain wall_ms=1784243641376 mono_ms=7945580 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9624 role=brain stream-subscriber stream=3718 wall_ms=1784243641376 mono_ms=7945580 event=stream-sub-attach stream=3718 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9624 role=brain stream-subscriber stream=3718 wall_ms=1784243641389 mono_ms=7945594 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9626 role=brain wall_ms=1784243641390 mono_ms=7945594 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9626 role=brain wall_ms=1784243641390 mono_ms=7945594 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9627 role=brain wall_ms=1784243641487 mono_ms=7945691 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9627 role=brain wall_ms=1784243641488 mono_ms=7945693 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9628 role=brain wall_ms=1784243641570 mono_ms=7945774 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9628 role=brain stream-subscriber stream=3715 wall_ms=1784243641570 mono_ms=7945774 event=stream-sub-attach stream=3715 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9628 role=brain stream-subscriber stream=3715 wall_ms=1784243641577 mono_ms=7945781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9629 role=brain wall_ms=1784243641577 mono_ms=7945781 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9629 role=brain wall_ms=1784243641577 mono_ms=7945781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474788 id=1b8b60d820da660b14851f87301117adf0fb875f8d2ffd291f1b81f8ddb46102 addr=EndpointAddr { id: PublicKey(1b8b60d820da660b14851f87301117adf0fb875f8d2ffd291f1b81f8ddb46102), addrs: {Ip(100.68.35.65:51845), Ip(192.168.1.81:51845)} }\nCONN_LIFECYCLE: conn=9630 role=brain wall_ms=1784243642828 mono_ms=7947033 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9630 role=brain wall_ms=1784243642829 mono_ms=7947033 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9631 role=brain wall_ms=1784243642833 mono_ms=7947037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9631 role=brain wall_ms=1784243642833 mono_ms=7947038 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9632 role=brain wall_ms=1784243642864 mono_ms=7947069 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9632 role=brain stream-subscriber stream=3719 wall_ms=1784243642865 mono_ms=7947069 event=stream-sub-attach stream=3719 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9632 role=brain stream-subscriber stream=3719 wall_ms=1784243642871 mono_ms=7947075 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9633 role=brain wall_ms=1784243642871 mono_ms=7947075 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9633 role=brain wall_ms=1784243642871 mono_ms=7947075 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9634 role=brain wall_ms=1784243643061 mono_ms=7947265 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9634 role=brain wall_ms=1784243643061 mono_ms=7947265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9635 role=brain wall_ms=1784243643075 mono_ms=7947280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9635 role=brain stream-subscriber stream=3720 wall_ms=1784243643075 mono_ms=7947280 event=stream-sub-attach stream=3720 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9636 role=brain wall_ms=1784243643079 mono_ms=7947283 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9635 role=brain stream-subscriber stream=3720 wall_ms=1784243643079 mono_ms=7947283 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9636 role=brain wall_ms=1784243643079 mono_ms=7947283 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:SPT_DEV step=59474788 id=a16e6fcbb62a31a6fcb538a242b682aa14e346243325beff6498d46bd672eb1f addr=EndpointAddr { id: PublicKey(a16e6fcbb62a31a6fcb538a242b682aa14e346243325beff6498d46bd672eb1f), addrs: {Ip(100.68.35.65:51863), Ip(192.168.1.81:51863)} }\nCONN_LIFECYCLE: conn=9637 role=brain wall_ms=1784243648264 mono_ms=7952468 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9637 role=brain wall_ms=1784243648264 mono_ms=7952468 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9638 role=brain wall_ms=1784243653562 mono_ms=7957766 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9638 role=brain wall_ms=1784243653562 mono_ms=7957766 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9639 role=brain wall_ms=1784243655663 mono_ms=7959867 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9640 role=brain wall_ms=1784243655663 mono_ms=7959867 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243655664 mono_ms=7959869 event=stream-sub-attach stream=3721 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243655664 mono_ms=7959869 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9642 role=brain wall_ms=1784243655665 mono_ms=7959869 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9642 role=brain stream-subscriber stream=3722 wall_ms=1784243655665 mono_ms=7959869 event=stream-sub-attach stream=3722 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9639 role=brain wall_ms=1784243655665 mono_ms=7959869 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9640 role=brain wall_ms=1784243655665 mono_ms=7959869 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9642 role=brain stream-subscriber stream=3722 wall_ms=1784243655677 mono_ms=7959881 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9643 role=brain wall_ms=1784243655693 mono_ms=7959897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9643 role=brain wall_ms=1784243655693 mono_ms=7959897 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9644 role=brain wall_ms=1784243659012 mono_ms=7963216 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9644 role=brain wall_ms=1784243659012 mono_ms=7963217 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9645 role=brain wall_ms=1784243664370 mono_ms=7968574 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9645 role=brain wall_ms=1784243664370 mono_ms=7968574 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9646 role=brain wall_ms=1784243669633 mono_ms=7973837 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9646 role=brain wall_ms=1784243669633 mono_ms=7973837 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_WRITE_POISONED: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243670679 mono_ms=7974883 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243670680 mono_ms=7974884 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:SPT_DEV step=59474789 id=a1726c12566a6670ec5dccabb73088578cff957e1ad7a373d364fcdee169b865 addr=EndpointAddr { id: PublicKey(a1726c12566a6670ec5dccabb73088578cff957e1ad7a373d364fcdee169b865), addrs: {Ip(100.68.35.65:59121), Ip(192.168.1.81:59121)} }\nPAIR_MEET_UP:BIGNET step=59474789 id=91cef822678b84c77ccf4ac94a67ea615e3527f2c1c387c7d4704b33b7fb2a00 addr=EndpointAddr { id: PublicKey(91cef822678b84c77ccf4ac94a67ea615e3527f2c1c387c7d4704b33b7fb2a00), addrs: {Ip(100.68.35.65:59125), Ip(192.168.1.81:59125)} }\nCONN_LIFECYCLE: conn=9647 role=brain wall_ms=1784243670832 mono_ms=7975036 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9647 role=brain wall_ms=1784243670833 mono_ms=7975037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9648 role=brain wall_ms=1784243670833 mono_ms=7975037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9649 role=brain wall_ms=1784243670833 mono_ms=7975037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9649 role=brain wall_ms=1784243670833 mono_ms=7975037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9648 role=brain wall_ms=1784243670836 mono_ms=7975040 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9650 role=brain wall_ms=1784243670840 mono_ms=7975044 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9650 role=brain wall_ms=1784243670841 mono_ms=7975045 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9651 role=brain wall_ms=1784243670842 mono_ms=7975046 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9651 role=brain stream-subscriber stream=3726 wall_ms=1784243670842 mono_ms=7975046 event=stream-sub-attach stream=3726 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9651 role=brain stream-subscriber stream=3726 wall_ms=1784243670846 mono_ms=7975050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9652 role=brain wall_ms=1784243670846 mono_ms=7975050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9652 role=brain wall_ms=1784243670848 mono_ms=7975052 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9653 role=brain wall_ms=1784243670881 mono_ms=7975085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9653 role=brain stream-subscriber stream=3727 wall_ms=1784243670881 mono_ms=7975085 event=stream-sub-attach stream=3727 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9653 role=brain stream-subscriber stream=3727 wall_ms=1784243670893 mono_ms=7975097 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9654 role=brain wall_ms=1784243670904 mono_ms=7975108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9654 role=brain stream-subscriber stream=3725 wall_ms=1784243670904 mono_ms=7975108 event=stream-sub-attach stream=3725 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9655 role=brain stream-subscriber stream=3724 wall_ms=1784243670904 mono_ms=7975108 event=stream-sub-attach stream=3724 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9655 role=brain stream-subscriber stream=3724 wall_ms=1784243670904 mono_ms=7975108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9654 role=brain stream-subscriber stream=3725 wall_ms=1784243670910 mono_ms=7975114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9656 role=brain wall_ms=1784243670910 mono_ms=7975114 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9656 role=brain wall_ms=1784243670910 mono_ms=7975114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9657 role=brain wall_ms=1784243670911 mono_ms=7975114 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9657 role=brain wall_ms=1784243670911 mono_ms=7975115 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9658 role=brain wall_ms=1784243671070 mono_ms=7975274 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9658 role=brain wall_ms=1784243671070 mono_ms=7975274 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243671076 mono_ms=7975279 event=stream-sub-attach stream=3723 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243671076 mono_ms=7975280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9660 role=brain wall_ms=1784243672144 mono_ms=7976348 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9660 role=brain wall_ms=1784243672144 mono_ms=7976348 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9661 role=brain stream-subscriber stream=3728 wall_ms=1784243672210 mono_ms=7976414 event=stream-sub-attach stream=3728 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9661 role=brain stream-subscriber stream=3728 wall_ms=1784243672210 mono_ms=7976414 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9661 role=brain stream-subscriber stream=3728 wall_ms=1784243672210 mono_ms=7976414 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9662 role=brain wall_ms=1784243672211 mono_ms=7976415 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9662 role=brain wall_ms=1784243672211 mono_ms=7976415 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9663 role=brain wall_ms=1784243672354 mono_ms=7976558 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9663 role=brain wall_ms=1784243672354 mono_ms=7976558 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9664 role=brain stream-subscriber stream=3729 wall_ms=1784243672420 mono_ms=7976624 event=stream-sub-attach stream=3729 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9664 role=brain stream-subscriber stream=3729 wall_ms=1784243672420 mono_ms=7976624 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9664 role=brain stream-subscriber stream=3729 wall_ms=1784243672421 mono_ms=7976625 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9665 role=brain wall_ms=1784243672423 mono_ms=7976627 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9665 role=brain wall_ms=1784243672423 mono_ms=7976627 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9666 role=brain wall_ms=1784243674917 mono_ms=7979121 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9666 role=brain wall_ms=1784243674917 mono_ms=7979121 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9667 role=brain wall_ms=1784243675160 mono_ms=7979364 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9667 role=brain wall_ms=1784243675160 mono_ms=7979364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9668 role=brain wall_ms=1784243675170 mono_ms=7979374 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9668 role=brain wall_ms=1784243675170 mono_ms=7979374 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9669 role=brain wall_ms=1784243675171 mono_ms=7979375 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9669 role=brain stream-subscriber stream=3731 wall_ms=1784243675171 mono_ms=7979375 event=stream-sub-attach stream=3731 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9669 role=brain stream-subscriber stream=3731 wall_ms=1784243675174 mono_ms=7979378 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9670 role=brain wall_ms=1784243675175 mono_ms=7979379 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9670 role=brain wall_ms=1784243675175 mono_ms=7979379 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9671 role=brain wall_ms=1784243675196 mono_ms=7979399 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9671 role=brain stream-subscriber stream=3730 wall_ms=1784243675196 mono_ms=7979400 event=stream-sub-attach stream=3730 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9671 role=brain stream-subscriber stream=3730 wall_ms=1784243675201 mono_ms=7979405 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9672 role=brain wall_ms=1784243675239 mono_ms=7979443 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9672 role=brain wall_ms=1784243675240 mono_ms=7979444 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9673 role=brain wall_ms=1784243675716 mono_ms=7979919 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9673 role=brain wall_ms=1784243675716 mono_ms=7979920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9674 role=brain stream-subscriber stream=3732 wall_ms=1784243675718 mono_ms=7979922 event=stream-sub-attach stream=3732 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9674 role=brain stream-subscriber stream=3732 wall_ms=1784243675718 mono_ms=7979922 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9674 role=brain stream-subscriber stream=3732 wall_ms=1784243675719 mono_ms=7979923 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9675 role=brain wall_ms=1784243675771 mono_ms=7979975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9675 role=brain wall_ms=1784243675771 mono_ms=7979975 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9676 role=brain wall_ms=1784243680071 mono_ms=7984275 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9676 role=brain wall_ms=1784243680072 mono_ms=7984275 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9677 role=brain wall_ms=1784243685135 mono_ms=7989339 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9677 role=brain wall_ms=1784243685135 mono_ms=7989339 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9678 role=brain wall_ms=1784243685686 mono_ms=7989890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9679 role=brain wall_ms=1784243685686 mono_ms=7989890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9678 role=brain wall_ms=1784243685686 mono_ms=7989890 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9679 role=brain wall_ms=1784243685686 mono_ms=7989890 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9680 role=brain stream-subscriber stream=3733 wall_ms=1784243685686 mono_ms=7989890 event=stream-sub-attach stream=3733 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9680 role=brain stream-subscriber stream=3733 wall_ms=1784243685686 mono_ms=7989890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9681 role=brain wall_ms=1784243685687 mono_ms=7989891 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9681 role=brain stream-subscriber stream=3734 wall_ms=1784243685687 mono_ms=7989891 event=stream-sub-attach stream=3734 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9681 role=brain stream-subscriber stream=3734 wall_ms=1784243685724 mono_ms=7989928 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9682 role=brain wall_ms=1784243685724 mono_ms=7989928 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9682 role=brain wall_ms=1784243685724 mono_ms=7989928 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPSYCHE_COMMUNE_SYNC_FAIL:doyle: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id doyle --session-id a2fdb848-6643-4e10-b221-6baee7e91b7b\nPSYCHE_TURN_FAIL:doyle (strike 1/3): turn: psyche turn runtime: bounded invocation timed out after 30s (killed): claude-spt psyche --id doyle --session-id a5918ea9-d5bf-4657-a6d3-159f6d6634c4 --psyche-context-file C:\\Users\\decid\\AppData\\Local\\spt-core\\owlery\\doyle\\nested\\doyle-psyche\\psyche-context.txt\nDISPATCH:3694:Failed(\"failed to fill whole buffer\")\nENDPOINT_INJECT:lia (1811 bytes → translation binary)\nCONN_LIFECYCLE: conn=9684 role=brain wall_ms=1784243688454 mono_ms=7992658 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9684 role=brain wall_ms=1784243688454 mono_ms=7992658 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3721:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9686 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9579 role=brain stream-subscriber stream=3699 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9683 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9609 role=brain stream-subscriber stream=3713 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9685 role=brain wall_ms=1784243688480 mono_ms=7992684 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9688 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9687 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9586 role=brain stream-subscriber stream=3700 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9686 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9683 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9685 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9688 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9687 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9655 role=brain stream-subscriber stream=3724 wall_ms=1784243688482 mono_ms=7992686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9689 role=brain wall_ms=1784243688482 mono_ms=7992686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9689 role=brain wall_ms=1784243688482 mono_ms=7992686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9690 role=brain wall_ms=1784243688485 mono_ms=7992688 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9567 role=brain stream-subscriber stream=3697 wall_ms=1784243688485 mono_ms=7992689 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9690 role=brain wall_ms=1784243688485 mono_ms=7992689 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3711:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243688495 mono_ms=7992699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9691 role=brain wall_ms=1784243688495 mono_ms=7992699 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9691 role=brain wall_ms=1784243688495 mono_ms=7992699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9574 role=brain stream-subscriber stream=3704 wall_ms=1784243688500 mono_ms=7992703 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9692 role=brain wall_ms=1784243688500 mono_ms=7992704 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9692 role=brain wall_ms=1784243688500 mono_ms=7992704 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9680 role=brain stream-subscriber stream=3733 wall_ms=1784243688502 mono_ms=7992706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9693 role=brain wall_ms=1784243688502 mono_ms=7992706 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9693 role=brain wall_ms=1784243688502 mono_ms=7992706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9694 role=brain wall_ms=1784243688585 mono_ms=7992788 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9695 role=brain wall_ms=1784243688585 mono_ms=7992788 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9694 role=brain wall_ms=1784243688585 mono_ms=7992788 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9695 role=brain wall_ms=1784243688585 mono_ms=7992788 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9696 role=brain stream-subscriber stream=3737 wall_ms=1784243688585 mono_ms=7992789 event=stream-sub-attach stream=3737 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9697 role=brain stream-subscriber stream=3735 wall_ms=1784243688585 mono_ms=7992789 event=stream-sub-attach stream=3735 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]","truncated":true,"truncatedBy":"lines","totalLines":383,"totalBytes":51985,"outputLines":340,"outputBytes":51985,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"CONN_LIFECYCLE: conn=9559 role=brain wall_ms=1784243595335 mono_ms=7899539 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9559 role=brain stream-subscriber stream=3695 wall_ms=1784243595335 mono_ms=7899540 event=stream-sub-attach stream=3695 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9559 role=brain stream-subscriber stream=3695 wall_ms=1784243595348 mono_ms=7899552 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9560 role=brain wall_ms=1784243595350 mono_ms=7899554 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9560 role=brain wall_ms=1784243595350 mono_ms=7899555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9561 role=brain wall_ms=1784243599540 mono_ms=7903745 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9561 role=brain wall_ms=1784243599540 mono_ms=7903745 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9562 role=brain wall_ms=1784243604900 mono_ms=7909105 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9562 role=brain wall_ms=1784243604905 mono_ms=7909110 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9563 role=brain wall_ms=1784243610303 mono_ms=7914508 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9563 role=brain wall_ms=1784243610304 mono_ms=7914509 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_WRITE_POISONED: conn=9558 role=brain stream-subscriber stream=3694 wall_ms=1784243610315 mono_ms=7914520 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=9558 role=brain stream-subscriber stream=3694 wall_ms=1784243610317 mono_ms=7914521 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9564 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9565 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9566 role=brain wall_ms=1784243610425 mono_ms=7914630 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9565 role=brain wall_ms=1784243610426 mono_ms=7914630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9564 role=brain wall_ms=1784243610426 mono_ms=7914630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9566 role=brain wall_ms=1784243610426 mono_ms=7914630 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9567 role=brain stream-subscriber stream=3697 wall_ms=1784243610426 mono_ms=7914631 event=stream-sub-attach stream=3697 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9567 role=brain stream-subscriber stream=3697 wall_ms=1784243610426 mono_ms=7914631 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9569 role=brain wall_ms=1784243610428 mono_ms=7914632 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9569 role=brain stream-subscriber stream=3698 wall_ms=1784243610428 mono_ms=7914633 event=stream-sub-attach stream=3698 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9568 role=brain wall_ms=1784243610438 mono_ms=7914643 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9568 role=brain stream-subscriber stream=3702 wall_ms=1784243610439 mono_ms=7914643 event=stream-sub-attach stream=3702 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9568 role=brain stream-subscriber stream=3702 wall_ms=1784243610441 mono_ms=7914646 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9569 role=brain stream-subscriber stream=3698 wall_ms=1784243610457 mono_ms=7914662 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9570 role=brain wall_ms=1784243610481 mono_ms=7914685 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9571 role=brain wall_ms=1784243610488 mono_ms=7914693 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9570 role=brain wall_ms=1784243610490 mono_ms=7914694 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9571 role=brain wall_ms=1784243610490 mono_ms=7914694 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243610494 mono_ms=7914698 event=stream-sub-attach stream=3696 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243610496 mono_ms=7914701 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9573 role=brain wall_ms=1784243610535 mono_ms=7914739 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9573 role=brain wall_ms=1784243610535 mono_ms=7914740 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9574 role=brain stream-subscriber stream=3704 wall_ms=1784243610536 mono_ms=7914740 event=stream-sub-attach stream=3704 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9574 role=brain stream-subscriber stream=3704 wall_ms=1784243610536 mono_ms=7914740 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9575 role=brain wall_ms=1784243610549 mono_ms=7914753 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9575 role=brain wall_ms=1784243610549 mono_ms=7914754 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9576 role=brain wall_ms=1784243610629 mono_ms=7914833 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9576 role=brain wall_ms=1784243610629 mono_ms=7914834 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9577 role=brain wall_ms=1784243610629 mono_ms=7914834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9578 role=brain wall_ms=1784243610629 mono_ms=7914834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9579 role=brain stream-subscriber stream=3699 wall_ms=1784243610629 mono_ms=7914834 event=stream-sub-attach stream=3699 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9579 role=brain stream-subscriber stream=3699 wall_ms=1784243610629 mono_ms=7914834 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9577 role=brain wall_ms=1784243610629 mono_ms=7914834 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9578 role=brain wall_ms=1784243610630 mono_ms=7914834 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9580 role=brain wall_ms=1784243610631 mono_ms=7914836 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9580 role=brain stream-subscriber stream=3703 wall_ms=1784243610631 mono_ms=7914836 event=stream-sub-attach stream=3703 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9580 role=brain stream-subscriber stream=3703 wall_ms=1784243610635 mono_ms=7914839 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9581 role=brain wall_ms=1784243610635 mono_ms=7914840 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9581 role=brain wall_ms=1784243610635 mono_ms=7914840 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9582 role=brain wall_ms=1784243610760 mono_ms=7914965 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9582 role=brain wall_ms=1784243610760 mono_ms=7914965 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9583 role=brain wall_ms=1784243610761 mono_ms=7914965 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9583 role=brain stream-subscriber stream=3701 wall_ms=1784243610761 mono_ms=7914965 event=stream-sub-attach stream=3701 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9583 role=brain stream-subscriber stream=3701 wall_ms=1784243610767 mono_ms=7914972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9584 role=brain wall_ms=1784243610846 mono_ms=7915050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9584 role=brain wall_ms=1784243610846 mono_ms=7915050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9585 role=brain wall_ms=1784243610872 mono_ms=7915077 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9586 role=brain stream-subscriber stream=3700 wall_ms=1784243610873 mono_ms=7915078 event=stream-sub-attach stream=3700 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9586 role=brain stream-subscriber stream=3700 wall_ms=1784243610873 mono_ms=7915078 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9585 role=brain wall_ms=1784243610875 mono_ms=7915079 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:BIGNET step=59474787 id=cc1ae28229b6a11682d402e82efa9e4fcee29ef42db53beaaba5a301a98e747d addr=EndpointAddr { id: PublicKey(cc1ae28229b6a11682d402e82efa9e4fcee29ef42db53beaaba5a301a98e747d), addrs: {Ip(100.68.35.65:55736), Ip(192.168.1.81:55736)} }\nCONN_LIFECYCLE: conn=9587 role=brain stream-subscriber stream=3705 wall_ms=1784243610951 mono_ms=7915156 event=stream-sub-attach stream=3705 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9587 role=brain stream-subscriber stream=3705 wall_ms=1784243610952 mono_ms=7915156 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9587 role=brain stream-subscriber stream=3705 wall_ms=1784243610952 mono_ms=7915157 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9588 role=brain wall_ms=1784243610954 mono_ms=7915158 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9588 role=brain wall_ms=1784243610955 mono_ms=7915159 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:SPT_DEV step=59474787 id=8b8fbd5be53a3085572d8b514bffad1bd1610fbbe251b1a9c32a7198cdb00b18 addr=EndpointAddr { id: PublicKey(8b8fbd5be53a3085572d8b514bffad1bd1610fbbe251b1a9c32a7198cdb00b18), addrs: {Ip(100.68.35.65:55746), Ip(192.168.1.81:55746)} }\nCONN_LIFECYCLE: conn=9589 role=brain wall_ms=1784243611243 mono_ms=7915447 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9589 role=brain wall_ms=1784243611244 mono_ms=7915448 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9590 role=brain stream-subscriber stream=3706 wall_ms=1784243611244 mono_ms=7915449 event=stream-sub-attach stream=3706 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9590 role=brain stream-subscriber stream=3706 wall_ms=1784243611244 mono_ms=7915449 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9590 role=brain stream-subscriber stream=3706 wall_ms=1784243611245 mono_ms=7915449 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9591 role=brain wall_ms=1784243611348 mono_ms=7915552 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9591 role=brain wall_ms=1784243611349 mono_ms=7915554 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9592 role=brain wall_ms=1784243612130 mono_ms=7916335 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9592 role=brain wall_ms=1784243612131 mono_ms=7916335 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9593 role=brain wall_ms=1784243612131 mono_ms=7916336 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9593 role=brain wall_ms=1784243612132 mono_ms=7916337 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9594 role=brain wall_ms=1784243612143 mono_ms=7916347 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9594 role=brain stream-subscriber stream=3708 wall_ms=1784243612143 mono_ms=7916347 event=stream-sub-attach stream=3708 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9595 role=brain wall_ms=1784243612152 mono_ms=7916357 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9595 role=brain stream-subscriber stream=3707 wall_ms=1784243612152 mono_ms=7916357 event=stream-sub-attach stream=3707 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9594 role=brain stream-subscriber stream=3708 wall_ms=1784243612155 mono_ms=7916359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9596 role=brain wall_ms=1784243612158 mono_ms=7916363 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9596 role=brain wall_ms=1784243612160 mono_ms=7916365 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9595 role=brain stream-subscriber stream=3707 wall_ms=1784243612214 mono_ms=7916418 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9597 role=brain wall_ms=1784243612214 mono_ms=7916418 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9597 role=brain wall_ms=1784243612214 mono_ms=7916418 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9598 role=brain wall_ms=1784243615350 mono_ms=7919554 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9598 role=brain wall_ms=1784243615350 mono_ms=7919554 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9599 role=brain stream-subscriber stream=3709 wall_ms=1784243615350 mono_ms=7919555 event=stream-sub-attach stream=3709 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9599 role=brain stream-subscriber stream=3709 wall_ms=1784243615350 mono_ms=7919555 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9599 role=brain stream-subscriber stream=3709 wall_ms=1784243615351 mono_ms=7919555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9600 role=brain wall_ms=1784243615351 mono_ms=7919555 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9600 role=brain wall_ms=1784243615351 mono_ms=7919555 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9601 role=brain wall_ms=1784243615528 mono_ms=7919733 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9601 role=brain wall_ms=1784243615530 mono_ms=7919734 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9602 role=brain wall_ms=1784243620783 mono_ms=7924987 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9602 role=brain wall_ms=1784243620783 mono_ms=7924987 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9603 role=brain wall_ms=1784243625056 mono_ms=7929261 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9603 role=brain wall_ms=1784243625056 mono_ms=7929261 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9604 role=brain wall_ms=1784243625275 mono_ms=7929479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9604 role=brain stream-subscriber stream=3710 wall_ms=1784243625276 mono_ms=7929480 event=stream-sub-attach stream=3710 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9604 role=brain stream-subscriber stream=3710 wall_ms=1784243625280 mono_ms=7929484 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9605 role=brain wall_ms=1784243625285 mono_ms=7929490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9605 role=brain wall_ms=1784243625286 mono_ms=7929490 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9606 role=brain wall_ms=1784243625738 mono_ms=7929943 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243625739 mono_ms=7929943 event=stream-sub-attach stream=3714 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243625739 mono_ms=7929943 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9606 role=brain wall_ms=1784243625739 mono_ms=7929943 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9608 role=brain wall_ms=1784243625827 mono_ms=7930032 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9608 role=brain wall_ms=1784243625827 mono_ms=7930032 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9609 role=brain stream-subscriber stream=3713 wall_ms=1784243625830 mono_ms=7930035 event=stream-sub-attach stream=3713 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9609 role=brain stream-subscriber stream=3713 wall_ms=1784243625830 mono_ms=7930035 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9610 role=brain wall_ms=1784243625854 mono_ms=7930058 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9610 role=brain wall_ms=1784243625854 mono_ms=7930058 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9611 role=brain wall_ms=1784243625854 mono_ms=7930059 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9611 role=brain wall_ms=1784243625854 mono_ms=7930059 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243625858 mono_ms=7930062 event=stream-sub-attach stream=3711 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243625858 mono_ms=7930062 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9613 role=brain wall_ms=1784243625858 mono_ms=7930063 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9613 role=brain stream-subscriber stream=3712 wall_ms=1784243625858 mono_ms=7930063 event=stream-sub-attach stream=3712 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9613 role=brain stream-subscriber stream=3712 wall_ms=1784243625872 mono_ms=7930076 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9614 role=brain wall_ms=1784243625878 mono_ms=7930082 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9614 role=brain wall_ms=1784243625879 mono_ms=7930083 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9615 role=brain wall_ms=1784243626280 mono_ms=7930484 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9615 role=brain wall_ms=1784243626280 mono_ms=7930484 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9616 role=brain wall_ms=1784243631863 mono_ms=7936067 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9616 role=brain wall_ms=1784243631863 mono_ms=7936067 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9617 role=brain wall_ms=1784243637359 mono_ms=7941564 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9617 role=brain wall_ms=1784243637363 mono_ms=7941567 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPSYCHE_COMMUNE_SYNC_FAIL:lia: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id lia --session-id bf353802-556c-46ce-9865-e74a3092bbe9\nPSYCHE_TURN_FAIL:lia (strike 1/3): commune-sync: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id lia --session-id bf353802-556c-46ce-9865-e74a3092bbe9\nCONN_WRITE_POISONED: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243641012 mono_ms=7945216 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=9612 role=brain stream-subscriber stream=3711 wall_ms=1784243641131 mono_ms=7945335 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9618 role=brain wall_ms=1784243641238 mono_ms=7945442 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9618 role=brain wall_ms=1784243641238 mono_ms=7945442 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9619 role=brain wall_ms=1784243641285 mono_ms=7945489 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9619 role=brain wall_ms=1784243641285 mono_ms=7945490 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9621 role=brain wall_ms=1784243641285 mono_ms=7945490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9620 role=brain stream-subscriber stream=3716 wall_ms=1784243641286 mono_ms=7945490 event=stream-sub-attach stream=3716 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9620 role=brain stream-subscriber stream=3716 wall_ms=1784243641286 mono_ms=7945490 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9621 role=brain wall_ms=1784243641286 mono_ms=7945491 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9620 role=brain stream-subscriber stream=3716 wall_ms=1784243641286 mono_ms=7945491 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9622 role=brain wall_ms=1784243641332 mono_ms=7945536 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9622 role=brain stream-subscriber stream=3717 wall_ms=1784243641332 mono_ms=7945537 event=stream-sub-attach stream=3717 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9622 role=brain stream-subscriber stream=3717 wall_ms=1784243641335 mono_ms=7945539 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9623 role=brain wall_ms=1784243641337 mono_ms=7945541 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9623 role=brain wall_ms=1784243641337 mono_ms=7945542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9625 role=brain wall_ms=1784243641376 mono_ms=7945580 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9624 role=brain wall_ms=1784243641376 mono_ms=7945580 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9625 role=brain wall_ms=1784243641376 mono_ms=7945580 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9624 role=brain stream-subscriber stream=3718 wall_ms=1784243641376 mono_ms=7945580 event=stream-sub-attach stream=3718 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9624 role=brain stream-subscriber stream=3718 wall_ms=1784243641389 mono_ms=7945594 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9626 role=brain wall_ms=1784243641390 mono_ms=7945594 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9626 role=brain wall_ms=1784243641390 mono_ms=7945594 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9627 role=brain wall_ms=1784243641487 mono_ms=7945691 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9627 role=brain wall_ms=1784243641488 mono_ms=7945693 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9628 role=brain wall_ms=1784243641570 mono_ms=7945774 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9628 role=brain stream-subscriber stream=3715 wall_ms=1784243641570 mono_ms=7945774 event=stream-sub-attach stream=3715 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9628 role=brain stream-subscriber stream=3715 wall_ms=1784243641577 mono_ms=7945781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9629 role=brain wall_ms=1784243641577 mono_ms=7945781 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9629 role=brain wall_ms=1784243641577 mono_ms=7945781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474788 id=1b8b60d820da660b14851f87301117adf0fb875f8d2ffd291f1b81f8ddb46102 addr=EndpointAddr { id: PublicKey(1b8b60d820da660b14851f87301117adf0fb875f8d2ffd291f1b81f8ddb46102), addrs: {Ip(100.68.35.65:51845), Ip(192.168.1.81:51845)} }\nCONN_LIFECYCLE: conn=9630 role=brain wall_ms=1784243642828 mono_ms=7947033 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9630 role=brain wall_ms=1784243642829 mono_ms=7947033 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9631 role=brain wall_ms=1784243642833 mono_ms=7947037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9631 role=brain wall_ms=1784243642833 mono_ms=7947038 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9632 role=brain wall_ms=1784243642864 mono_ms=7947069 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9632 role=brain stream-subscriber stream=3719 wall_ms=1784243642865 mono_ms=7947069 event=stream-sub-attach stream=3719 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9632 role=brain stream-subscriber stream=3719 wall_ms=1784243642871 mono_ms=7947075 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9633 role=brain wall_ms=1784243642871 mono_ms=7947075 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9633 role=brain wall_ms=1784243642871 mono_ms=7947075 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9634 role=brain wall_ms=1784243643061 mono_ms=7947265 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9634 role=brain wall_ms=1784243643061 mono_ms=7947265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9635 role=brain wall_ms=1784243643075 mono_ms=7947280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9635 role=brain stream-subscriber stream=3720 wall_ms=1784243643075 mono_ms=7947280 event=stream-sub-attach stream=3720 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9636 role=brain wall_ms=1784243643079 mono_ms=7947283 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9635 role=brain stream-subscriber stream=3720 wall_ms=1784243643079 mono_ms=7947283 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9636 role=brain wall_ms=1784243643079 mono_ms=7947283 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:SPT_DEV step=59474788 id=a16e6fcbb62a31a6fcb538a242b682aa14e346243325beff6498d46bd672eb1f addr=EndpointAddr { id: PublicKey(a16e6fcbb62a31a6fcb538a242b682aa14e346243325beff6498d46bd672eb1f), addrs: {Ip(100.68.35.65:51863), Ip(192.168.1.81:51863)} }\nCONN_LIFECYCLE: conn=9637 role=brain wall_ms=1784243648264 mono_ms=7952468 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9637 role=brain wall_ms=1784243648264 mono_ms=7952468 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9638 role=brain wall_ms=1784243653562 mono_ms=7957766 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9638 role=brain wall_ms=1784243653562 mono_ms=7957766 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9639 role=brain wall_ms=1784243655663 mono_ms=7959867 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9640 role=brain wall_ms=1784243655663 mono_ms=7959867 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243655664 mono_ms=7959869 event=stream-sub-attach stream=3721 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243655664 mono_ms=7959869 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9642 role=brain wall_ms=1784243655665 mono_ms=7959869 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9642 role=brain stream-subscriber stream=3722 wall_ms=1784243655665 mono_ms=7959869 event=stream-sub-attach stream=3722 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9639 role=brain wall_ms=1784243655665 mono_ms=7959869 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9640 role=brain wall_ms=1784243655665 mono_ms=7959869 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9642 role=brain stream-subscriber stream=3722 wall_ms=1784243655677 mono_ms=7959881 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9643 role=brain wall_ms=1784243655693 mono_ms=7959897 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9643 role=brain wall_ms=1784243655693 mono_ms=7959897 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9644 role=brain wall_ms=1784243659012 mono_ms=7963216 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9644 role=brain wall_ms=1784243659012 mono_ms=7963217 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9645 role=brain wall_ms=1784243664370 mono_ms=7968574 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9645 role=brain wall_ms=1784243664370 mono_ms=7968574 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9646 role=brain wall_ms=1784243669633 mono_ms=7973837 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9646 role=brain wall_ms=1784243669633 mono_ms=7973837 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_WRITE_POISONED: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243670679 mono_ms=7974883 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nCONN_LIFECYCLE: conn=9641 role=brain stream-subscriber stream=3721 wall_ms=1784243670680 mono_ms=7974884 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nPAIR_MEET_UP:SPT_DEV step=59474789 id=a1726c12566a6670ec5dccabb73088578cff957e1ad7a373d364fcdee169b865 addr=EndpointAddr { id: PublicKey(a1726c12566a6670ec5dccabb73088578cff957e1ad7a373d364fcdee169b865), addrs: {Ip(100.68.35.65:59121), Ip(192.168.1.81:59121)} }\nPAIR_MEET_UP:BIGNET step=59474789 id=91cef822678b84c77ccf4ac94a67ea615e3527f2c1c387c7d4704b33b7fb2a00 addr=EndpointAddr { id: PublicKey(91cef822678b84c77ccf4ac94a67ea615e3527f2c1c387c7d4704b33b7fb2a00), addrs: {Ip(100.68.35.65:59125), Ip(192.168.1.81:59125)} }\nCONN_LIFECYCLE: conn=9647 role=brain wall_ms=1784243670832 mono_ms=7975036 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9647 role=brain wall_ms=1784243670833 mono_ms=7975037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9648 role=brain wall_ms=1784243670833 mono_ms=7975037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9649 role=brain wall_ms=1784243670833 mono_ms=7975037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9649 role=brain wall_ms=1784243670833 mono_ms=7975037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9648 role=brain wall_ms=1784243670836 mono_ms=7975040 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9650 role=brain wall_ms=1784243670840 mono_ms=7975044 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9650 role=brain wall_ms=1784243670841 mono_ms=7975045 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9651 role=brain wall_ms=1784243670842 mono_ms=7975046 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9651 role=brain stream-subscriber stream=3726 wall_ms=1784243670842 mono_ms=7975046 event=stream-sub-attach stream=3726 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9651 role=brain stream-subscriber stream=3726 wall_ms=1784243670846 mono_ms=7975050 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9652 role=brain wall_ms=1784243670846 mono_ms=7975050 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9652 role=brain wall_ms=1784243670848 mono_ms=7975052 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9653 role=brain wall_ms=1784243670881 mono_ms=7975085 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9653 role=brain stream-subscriber stream=3727 wall_ms=1784243670881 mono_ms=7975085 event=stream-sub-attach stream=3727 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9653 role=brain stream-subscriber stream=3727 wall_ms=1784243670893 mono_ms=7975097 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9654 role=brain wall_ms=1784243670904 mono_ms=7975108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9654 role=brain stream-subscriber stream=3725 wall_ms=1784243670904 mono_ms=7975108 event=stream-sub-attach stream=3725 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9655 role=brain stream-subscriber stream=3724 wall_ms=1784243670904 mono_ms=7975108 event=stream-sub-attach stream=3724 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9655 role=brain stream-subscriber stream=3724 wall_ms=1784243670904 mono_ms=7975108 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9654 role=brain stream-subscriber stream=3725 wall_ms=1784243670910 mono_ms=7975114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9656 role=brain wall_ms=1784243670910 mono_ms=7975114 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9656 role=brain wall_ms=1784243670910 mono_ms=7975114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9657 role=brain wall_ms=1784243670911 mono_ms=7975114 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9657 role=brain wall_ms=1784243670911 mono_ms=7975115 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9658 role=brain wall_ms=1784243671070 mono_ms=7975274 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9658 role=brain wall_ms=1784243671070 mono_ms=7975274 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243671076 mono_ms=7975279 event=stream-sub-attach stream=3723 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243671076 mono_ms=7975280 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9660 role=brain wall_ms=1784243672144 mono_ms=7976348 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9660 role=brain wall_ms=1784243672144 mono_ms=7976348 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9661 role=brain stream-subscriber stream=3728 wall_ms=1784243672210 mono_ms=7976414 event=stream-sub-attach stream=3728 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9661 role=brain stream-subscriber stream=3728 wall_ms=1784243672210 mono_ms=7976414 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9661 role=brain stream-subscriber stream=3728 wall_ms=1784243672210 mono_ms=7976414 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9662 role=brain wall_ms=1784243672211 mono_ms=7976415 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9662 role=brain wall_ms=1784243672211 mono_ms=7976415 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9663 role=brain wall_ms=1784243672354 mono_ms=7976558 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9663 role=brain wall_ms=1784243672354 mono_ms=7976558 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9664 role=brain stream-subscriber stream=3729 wall_ms=1784243672420 mono_ms=7976624 event=stream-sub-attach stream=3729 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9664 role=brain stream-subscriber stream=3729 wall_ms=1784243672420 mono_ms=7976624 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9664 role=brain stream-subscriber stream=3729 wall_ms=1784243672421 mono_ms=7976625 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9665 role=brain wall_ms=1784243672423 mono_ms=7976627 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9665 role=brain wall_ms=1784243672423 mono_ms=7976627 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9666 role=brain wall_ms=1784243674917 mono_ms=7979121 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9666 role=brain wall_ms=1784243674917 mono_ms=7979121 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9667 role=brain wall_ms=1784243675160 mono_ms=7979364 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9667 role=brain wall_ms=1784243675160 mono_ms=7979364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9668 role=brain wall_ms=1784243675170 mono_ms=7979374 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9668 role=brain wall_ms=1784243675170 mono_ms=7979374 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9669 role=brain wall_ms=1784243675171 mono_ms=7979375 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9669 role=brain stream-subscriber stream=3731 wall_ms=1784243675171 mono_ms=7979375 event=stream-sub-attach stream=3731 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9669 role=brain stream-subscriber stream=3731 wall_ms=1784243675174 mono_ms=7979378 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9670 role=brain wall_ms=1784243675175 mono_ms=7979379 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9670 role=brain wall_ms=1784243675175 mono_ms=7979379 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9671 role=brain wall_ms=1784243675196 mono_ms=7979399 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9671 role=brain stream-subscriber stream=3730 wall_ms=1784243675196 mono_ms=7979400 event=stream-sub-attach stream=3730 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9671 role=brain stream-subscriber stream=3730 wall_ms=1784243675201 mono_ms=7979405 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9672 role=brain wall_ms=1784243675239 mono_ms=7979443 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9672 role=brain wall_ms=1784243675240 mono_ms=7979444 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9673 role=brain wall_ms=1784243675716 mono_ms=7979919 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9673 role=brain wall_ms=1784243675716 mono_ms=7979920 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9674 role=brain stream-subscriber stream=3732 wall_ms=1784243675718 mono_ms=7979922 event=stream-sub-attach stream=3732 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9674 role=brain stream-subscriber stream=3732 wall_ms=1784243675718 mono_ms=7979922 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9674 role=brain stream-subscriber stream=3732 wall_ms=1784243675719 mono_ms=7979923 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9675 role=brain wall_ms=1784243675771 mono_ms=7979975 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9675 role=brain wall_ms=1784243675771 mono_ms=7979975 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9676 role=brain wall_ms=1784243680071 mono_ms=7984275 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9676 role=brain wall_ms=1784243680072 mono_ms=7984275 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9677 role=brain wall_ms=1784243685135 mono_ms=7989339 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9677 role=brain wall_ms=1784243685135 mono_ms=7989339 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9678 role=brain wall_ms=1784243685686 mono_ms=7989890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9679 role=brain wall_ms=1784243685686 mono_ms=7989890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9678 role=brain wall_ms=1784243685686 mono_ms=7989890 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9679 role=brain wall_ms=1784243685686 mono_ms=7989890 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9680 role=brain stream-subscriber stream=3733 wall_ms=1784243685686 mono_ms=7989890 event=stream-sub-attach stream=3733 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9680 role=brain stream-subscriber stream=3733 wall_ms=1784243685686 mono_ms=7989890 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9681 role=brain wall_ms=1784243685687 mono_ms=7989891 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9681 role=brain stream-subscriber stream=3734 wall_ms=1784243685687 mono_ms=7989891 event=stream-sub-attach stream=3734 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9681 role=brain stream-subscriber stream=3734 wall_ms=1784243685724 mono_ms=7989928 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9682 role=brain wall_ms=1784243685724 mono_ms=7989928 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9682 role=brain wall_ms=1784243685724 mono_ms=7989928 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPSYCHE_COMMUNE_SYNC_FAIL:doyle: echo-commune spawn failed: bounded invocation timed out after 30s (killed): claude-spt echo-commune --id doyle --session-id a2fdb848-6643-4e10-b221-6baee7e91b7b\nPSYCHE_TURN_FAIL:doyle (strike 1/3): turn: psyche turn runtime: bounded invocation timed out after 30s (killed): claude-spt psyche --id doyle --session-id a5918ea9-d5bf-4657-a6d3-159f6d6634c4 --psyche-context-file C:\\Users\\decid\\AppData\\Local\\spt-core\\owlery\\doyle\\nested\\doyle-psyche\\psyche-context.txt\nDISPATCH:3694:Failed(\"failed to fill whole buffer\")\nENDPOINT_INJECT:lia (1811 bytes → translation binary)\nCONN_LIFECYCLE: conn=9684 role=brain wall_ms=1784243688454 mono_ms=7992658 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9684 role=brain wall_ms=1784243688454 mono_ms=7992658 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3721:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=9659 role=brain stream-subscriber stream=3723 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9572 role=brain stream-subscriber stream=3696 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9686 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9579 role=brain stream-subscriber stream=3699 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9683 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9609 role=brain stream-subscriber stream=3713 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9685 role=brain wall_ms=1784243688480 mono_ms=7992684 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9688 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9687 role=brain wall_ms=1784243688480 mono_ms=7992683 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9586 role=brain stream-subscriber stream=3700 wall_ms=1784243688480 mono_ms=7992683 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9686 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9683 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9685 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9688 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9687 role=brain wall_ms=1784243688480 mono_ms=7992684 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9655 role=brain stream-subscriber stream=3724 wall_ms=1784243688482 mono_ms=7992686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9689 role=brain wall_ms=1784243688482 mono_ms=7992686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9689 role=brain wall_ms=1784243688482 mono_ms=7992686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9690 role=brain wall_ms=1784243688485 mono_ms=7992688 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9567 role=brain stream-subscriber stream=3697 wall_ms=1784243688485 mono_ms=7992689 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9690 role=brain wall_ms=1784243688485 mono_ms=7992689 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3711:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=9607 role=brain stream-subscriber stream=3714 wall_ms=1784243688495 mono_ms=7992699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9691 role=brain wall_ms=1784243688495 mono_ms=7992699 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9691 role=brain wall_ms=1784243688495 mono_ms=7992699 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9574 role=brain stream-subscriber stream=3704 wall_ms=1784243688500 mono_ms=7992703 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9692 role=brain wall_ms=1784243688500 mono_ms=7992704 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9692 role=brain wall_ms=1784243688500 mono_ms=7992704 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9680 role=brain stream-subscriber stream=3733 wall_ms=1784243688502 mono_ms=7992706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9693 role=brain wall_ms=1784243688502 mono_ms=7992706 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9693 role=brain wall_ms=1784243688502 mono_ms=7992706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9694 role=brain wall_ms=1784243688585 mono_ms=7992788 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9695 role=brain wall_ms=1784243688585 mono_ms=7992788 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9694 role=brain wall_ms=1784243688585 mono_ms=7992788 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9695 role=brain wall_ms=1784243688585 mono_ms=7992788 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9696 role=brain stream-subscriber stream=3737 wall_ms=1784243688585 mono_ms=7992789 event=stream-sub-attach stream=3737 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=9697 role=brain stream-subscriber stream=3735 wall_ms=1784243688585 mono_ms=7992789 event=stream-sub-attach stream=3735 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]","startLine":23484,"lineNumbers":[23484,23485,23486,23487,23488,23489,23490,23491,23492,23493,23494,23495,23496,23497,23498,23499,23500,23501,23502,23503,23504,23505,23506,23507,23508,23509,23510,23511,23512,23513,23514,23515,23516,23517,23518,23519,23520,23521,23522,23523,23524,23525,23526,23527,23528,23529,23530,23531,23532,23533,23534,23535,23536,23537,23538,23539,23540,23541,23542,23543,23544,23545,23546,23547,23548,23549,23550,23551,23552,23553,23554,23555,23556,23557,23558,23559,23560,23561,23562,23563,23564,23565,23566,23567,23568,23569,23570,23571,23572,23573,23574,23575,23576,23577,23578,23579,23580,23581,23582,23583,23584,23585,23586,23587,23588,23589,23590,23591,23592,23593,23594,23595,23596,23597,23598,23599,23600,23601,23602,23603,23604,23605,23606,23607,23608,23609,23610,23611,23612,23613,23614,23615,23616,23617,23618,23619,23620,23621,23622,23623,23624,23625,23626,23627,23628,23629,23630,23631,23632,23633,23634,23635,23636,23637,23638,23639,23640,23641,23642,23643,23644,23645,23646,23647,23648,23649,23650,23651,23652,23653,23654,23655,23656,23657,23658,23659,23660,23661,23662,23663,23664,23665,23666,23667,23668,23669,23670,23671,23672,23673,23674,23675,23676,23677,23678,23679,23680,23681,23682,23683,23684,23685,23686,23687,23688,23689,23690,23691,23692,23693,23694,23695,23696,23697,23698,23699,23700,23701,23702,23703,23704,23705,23706,23707,23708,23709,23710,23711,23712,23713,23714,23715,23716,23717,23718,23719,23720,23721,23722,23723,23724,23725,23726,23727,23728,23729,23730,23731,23732,23733,23734,23735,23736,23737,23738,23739,23740,23741,23742,23743,23744,23745,23746,23747,23748,23749,23750,23751,23752,23753,23754,23755,23756,23757,23758,23759,23760,23761,23762,23763,23764,23765,23766,23767,23768,23769,23770,23771,23772,23773,23774,23775,23776,23777,23778,23779,23780,23781,23782,23783,23784,23785,23786,23787,23788,23789,23790,23791,23792,23793,23794,23795,23796,23797,23798,23799,23800,23801,23802,23803,23804,23805,23806,23807,23808,23809,23810,23811,23812,23813,23814,23815,23816,23817,23818,23819,23820,23821,23822,23823]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":383,"totalBytes":51985,"outputLines":340,"outputBytes":51985,"shownRange":{"start":23484,"end":23823},"nextOffset":23824}}},"isError":false,"timestamp":1784247455431}}
{"type":"message","id":"45702403","parentId":"bf2a5e6b","timestamp":"2026-07-17T00:17:35.433Z","message":{"role":"toolResult","toolCallId":"call_gB8rB8gEXSqNvoUSNJe6a4uA|fc_05a4d8ea8a10ef0b016a59749f440881988b36a49cd420543c","toolName":"read","content":[{"type":"text","text":"CONN_LIFECYCLE: conn=10061 role=brain wall_ms=1784243982257 mono_ms=8286458 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10062 role=brain stream-subscriber stream=3864 wall_ms=1784243982260 mono_ms=8286461 event=stream-sub-attach stream=3864 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10062 role=brain stream-subscriber stream=3864 wall_ms=1784243982260 mono_ms=8286461 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10062 role=brain stream-subscriber stream=3864 wall_ms=1784243982261 mono_ms=8286462 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10063 role=brain wall_ms=1784243982267 mono_ms=8286468 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10063 role=brain wall_ms=1784243982268 mono_ms=8286469 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10064 role=brain wall_ms=1784243986870 mono_ms=8291071 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10064 role=brain wall_ms=1784243986870 mono_ms=8291071 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10065 role=brain wall_ms=1784243986876 mono_ms=8291077 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10065 role=brain stream-subscriber stream=3865 wall_ms=1784243986876 mono_ms=8291077 event=stream-sub-attach stream=3865 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10066 role=brain wall_ms=1784243986977 mono_ms=8291178 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10066 role=brain wall_ms=1784243986977 mono_ms=8291178 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10067 role=brain wall_ms=1784243986986 mono_ms=8291187 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10067 role=brain wall_ms=1784243986986 mono_ms=8291187 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10068 role=brain wall_ms=1784243986995 mono_ms=8291196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10068 role=brain wall_ms=1784243986995 mono_ms=8291196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10069 role=brain wall_ms=1784243986996 mono_ms=8291196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10069 role=brain stream-subscriber stream=3866 wall_ms=1784243986996 mono_ms=8291197 event=stream-sub-attach stream=3866 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10069 role=brain stream-subscriber stream=3866 wall_ms=1784243987005 mono_ms=8291206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10070 role=brain wall_ms=1784243987021 mono_ms=8291222 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10070 role=brain stream-subscriber stream=3867 wall_ms=1784243987021 mono_ms=8291222 event=stream-sub-attach stream=3867 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10070 role=brain stream-subscriber stream=3867 wall_ms=1784243987024 mono_ms=8291225 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10071 role=brain wall_ms=1784243987026 mono_ms=8291227 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10071 role=brain wall_ms=1784243987026 mono_ms=8291227 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10072 role=brain wall_ms=1784243987036 mono_ms=8291237 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10072 role=brain wall_ms=1784243987036 mono_ms=8291237 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10065 role=brain stream-subscriber stream=3865 wall_ms=1784243987492 mono_ms=8291693 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10073 role=brain wall_ms=1784243987492 mono_ms=8291693 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10073 role=brain wall_ms=1784243987493 mono_ms=8291694 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10074 role=brain wall_ms=1784243987705 mono_ms=8291906 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10074 role=brain wall_ms=1784243987705 mono_ms=8291906 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784243987711 mono_ms=8291912 event=stream-sub-attach stream=3868 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784243987711 mono_ms=8291912 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10076 role=brain wall_ms=1784243987714 mono_ms=8291915 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10076 role=brain wall_ms=1784243987715 mono_ms=8291915 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10077 role=brain stream-subscriber stream=3869 wall_ms=1784243987715 mono_ms=8291916 event=stream-sub-attach stream=3869 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10077 role=brain stream-subscriber stream=3869 wall_ms=1784243987715 mono_ms=8291916 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10078 role=brain wall_ms=1784243991986 mono_ms=8296187 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10078 role=brain wall_ms=1784243991987 mono_ms=8296188 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10079 role=brain stream-subscriber stream=3870 wall_ms=1784243991991 mono_ms=8296191 event=stream-sub-attach stream=3870 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10079 role=brain stream-subscriber stream=3870 wall_ms=1784243991991 mono_ms=8296191 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10080 role=brain wall_ms=1784243992213 mono_ms=8296414 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10080 role=brain wall_ms=1784243992213 mono_ms=8296414 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10081 role=brain wall_ms=1784243997341 mono_ms=8301542 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10081 role=brain wall_ms=1784243997341 mono_ms=8301542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474800 id=e66347900e9753f45b3a8e0ea1ee052832c50dddbda05e4df7dcaa8cb458f1cd addr=EndpointAddr { id: PublicKey(e66347900e9753f45b3a8e0ea1ee052832c50dddbda05e4df7dcaa8cb458f1cd), addrs: {Ip(100.68.35.65:56773), Ip(192.168.1.81:56773)} }\nPAIR_MEET_UP:SPT_DEV step=59474800 id=112b8b55bad339ca7c289165c970c66d6151a080ec708b48152ab51427bc9935 addr=EndpointAddr { id: PublicKey(112b8b55bad339ca7c289165c970c66d6151a080ec708b48152ab51427bc9935), addrs: {Ip(100.68.35.65:56772), Ip(192.168.1.81:56772)} }\nDISPATCH:3858:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784244001057 mono_ms=8305257 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10082 role=brain wall_ms=1784244001058 mono_ms=8305258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10036 role=brain stream-subscriber stream=3856 wall_ms=1784244001058 mono_ms=8305258 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10083 role=brain wall_ms=1784244001058 mono_ms=8305258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10082 role=brain wall_ms=1784244001058 mono_ms=8305259 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10083 role=brain wall_ms=1784244001058 mono_ms=8305259 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10084 role=brain wall_ms=1784244001062 mono_ms=8305263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10038 role=brain stream-subscriber stream=3857 wall_ms=1784244001062 mono_ms=8305263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10084 role=brain wall_ms=1784244001062 mono_ms=8305263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10077 role=brain stream-subscriber stream=3869 wall_ms=1784244001064 mono_ms=8305265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10085 role=brain wall_ms=1784244001066 mono_ms=8305267 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10085 role=brain wall_ms=1784244001066 mono_ms=8305267 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10079 role=brain stream-subscriber stream=3870 wall_ms=1784244001069 mono_ms=8305270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10086 role=brain wall_ms=1784244001069 mono_ms=8305270 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10086 role=brain wall_ms=1784244001069 mono_ms=8305270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10087 role=brain wall_ms=1784244001572 mono_ms=8305773 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10087 role=brain wall_ms=1784244001572 mono_ms=8305773 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10088 role=brain stream-subscriber stream=3858 wall_ms=1784244001573 mono_ms=8305773 event=stream-sub-attach stream=3858 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10088 role=brain stream-subscriber stream=3858 wall_ms=1784244001573 mono_ms=8305773 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10088 role=brain stream-subscriber stream=3858 wall_ms=1784244001579 mono_ms=8305780 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10089 role=brain wall_ms=1784244001580 mono_ms=8305780 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10089 role=brain wall_ms=1784244001580 mono_ms=8305781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10090 role=brain wall_ms=1784244001982 mono_ms=8306183 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10090 role=brain wall_ms=1784244001982 mono_ms=8306183 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10091 role=brain wall_ms=1784244001984 mono_ms=8306184 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10091 role=brain stream-subscriber stream=3875 wall_ms=1784244001984 mono_ms=8306184 event=stream-sub-attach stream=3875 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10092 role=brain wall_ms=1784244002084 mono_ms=8306285 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10093 role=brain wall_ms=1784244002085 mono_ms=8306285 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10092 role=brain wall_ms=1784244002085 mono_ms=8306285 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10093 role=brain wall_ms=1784244002085 mono_ms=8306285 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10095 role=brain wall_ms=1784244002086 mono_ms=8306286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10094 role=brain wall_ms=1784244002086 mono_ms=8306286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10095 role=brain stream-subscriber stream=3876 wall_ms=1784244002086 mono_ms=8306286 event=stream-sub-attach stream=3876 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10094 role=brain stream-subscriber stream=3877 wall_ms=1784244002086 mono_ms=8306287 event=stream-sub-attach stream=3877 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10094 role=brain stream-subscriber stream=3877 wall_ms=1784244002087 mono_ms=8306288 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10096 role=brain wall_ms=1784244002087 mono_ms=8306288 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10096 role=brain wall_ms=1784244002087 mono_ms=8306288 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10095 role=brain stream-subscriber stream=3876 wall_ms=1784244002090 mono_ms=8306291 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10097 role=brain wall_ms=1784244002090 mono_ms=8306291 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10097 role=brain wall_ms=1784244002090 mono_ms=8306291 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10091 role=brain stream-subscriber stream=3875 wall_ms=1784244002095 mono_ms=8306296 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10098 role=brain wall_ms=1784244002096 mono_ms=8306296 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10098 role=brain wall_ms=1784244002096 mono_ms=8306296 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10099 role=brain wall_ms=1784244002398 mono_ms=8306599 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10099 role=brain wall_ms=1784244002399 mono_ms=8306599 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10100 role=brain wall_ms=1784244007443 mono_ms=8311643 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10100 role=brain wall_ms=1784244007443 mono_ms=8311643 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=10101 role=brain wall_ms=1784244012486 mono_ms=8316686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10101 role=brain wall_ms=1784244012486 mono_ms=8316686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784244013181 mono_ms=8317382 event=stream-sub-attach stream=3880 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10102 role=brain wall_ms=1784244017036 mono_ms=8321237 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10102 role=brain wall_ms=1784244017037 mono_ms=8321237 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10103 role=brain wall_ms=1784244017038 mono_ms=8321238 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10103 role=brain stream-subscriber stream=3882 wall_ms=1784244017038 mono_ms=8321238 event=stream-sub-attach stream=3882 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10103 role=brain stream-subscriber stream=3882 wall_ms=1784244017047 mono_ms=8321248 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10104 role=brain wall_ms=1784244017047 mono_ms=8321248 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10104 role=brain wall_ms=1784244017047 mono_ms=8321248 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10105 role=brain wall_ms=1784244017139 mono_ms=8321340 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10106 role=brain wall_ms=1784244017139 mono_ms=8321340 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10105 role=brain wall_ms=1784244017139 mono_ms=8321340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10106 role=brain wall_ms=1784244017139 mono_ms=8321340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10107 role=brain wall_ms=1784244017140 mono_ms=8321341 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10107 role=brain stream-subscriber stream=3883 wall_ms=1784244017140 mono_ms=8321341 event=stream-sub-attach stream=3883 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10107 role=brain stream-subscriber stream=3883 wall_ms=1784244017144 mono_ms=8321345 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10109 role=brain wall_ms=1784244017144 mono_ms=8321345 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10109 role=brain wall_ms=1784244017145 mono_ms=8321345 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10108 role=brain wall_ms=1784244017151 mono_ms=8321351 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10108 role=brain stream-subscriber stream=3884 wall_ms=1784244017151 mono_ms=8321352 event=stream-sub-attach stream=3884 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10108 role=brain stream-subscriber stream=3884 wall_ms=1784244017153 mono_ms=8321354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10110 role=brain wall_ms=1784244017153 mono_ms=8321354 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10110 role=brain wall_ms=1784244017153 mono_ms=8321354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10111 role=brain wall_ms=1784244017531 mono_ms=8321731 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10111 role=brain wall_ms=1784244017531 mono_ms=8321732 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10112 role=brain wall_ms=1784244022155 mono_ms=8326356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10112 role=brain wall_ms=1784244022155 mono_ms=8326356 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10113 role=brain stream-subscriber stream=3885 wall_ms=1784244022155 mono_ms=8326356 event=stream-sub-attach stream=3885 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10113 role=brain stream-subscriber stream=3885 wall_ms=1784244022155 mono_ms=8326356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10113 role=brain stream-subscriber stream=3885 wall_ms=1784244022163 mono_ms=8326364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10114 role=brain wall_ms=1784244022163 mono_ms=8326364 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10114 role=brain wall_ms=1784244022163 mono_ms=8326364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10115 role=brain wall_ms=1784244022574 mono_ms=8326775 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10115 role=brain wall_ms=1784244022574 mono_ms=8326775 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=10116 role=brain wall_ms=1784244027171 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10117 role=brain wall_ms=1784244027171 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10116 role=brain wall_ms=1784244027171 mono_ms=8331372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10117 role=brain wall_ms=1784244027171 mono_ms=8331372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10118 role=brain stream-subscriber stream=3886 wall_ms=1784244027172 mono_ms=8331372 event=stream-sub-attach stream=3886 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10119 role=brain stream-subscriber stream=3887 wall_ms=1784244027172 mono_ms=8331372 event=stream-sub-attach stream=3887 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10119 role=brain stream-subscriber stream=3887 wall_ms=1784244027172 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10118 role=brain stream-subscriber stream=3886 wall_ms=1784244027172 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10118 role=brain stream-subscriber stream=3886 wall_ms=1784244027178 mono_ms=8331379 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10120 role=brain wall_ms=1784244027178 mono_ms=8331379 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10120 role=brain wall_ms=1784244027179 mono_ms=8331379 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10119 role=brain stream-subscriber stream=3887 wall_ms=1784244027180 mono_ms=8331381 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10121 role=brain wall_ms=1784244027181 mono_ms=8331381 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10121 role=brain wall_ms=1784244027181 mono_ms=8331381 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10122 role=brain wall_ms=1784244027616 mono_ms=8331817 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10122 role=brain wall_ms=1784244027617 mono_ms=8331817 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474801 id=ff1190830820ff6200c2cc91ed086f96be9a43e3a213fd7f89de47cd42141918 addr=EndpointAddr { id: PublicKey(ff1190830820ff6200c2cc91ed086f96be9a43e3a213fd7f89de47cd42141918), addrs: {Ip(100.68.35.65:56482), Ip(192.168.1.81:56482)} }\nPAIR_MEET_UP:SPT_DEV step=59474801 id=3148450cf726ca15c113b2acef358728b6a9effc4e30c1dcc311321547aad4e1 addr=EndpointAddr { id: PublicKey(3148450cf726ca15c113b2acef358728b6a9effc4e30c1dcc311321547aad4e1), addrs: {Ip(100.68.35.65:56483), Ip(192.168.1.81:56483)} }\nCONN_LIFECYCLE: conn=10123 role=brain wall_ms=1784244032190 mono_ms=8336391 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10123 role=brain wall_ms=1784244032190 mono_ms=8336391 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10124 role=brain wall_ms=1784244032191 mono_ms=8336392 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10124 role=brain stream-subscriber stream=3888 wall_ms=1784244032191 mono_ms=8336392 event=stream-sub-attach stream=3888 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10124 role=brain stream-subscriber stream=3888 wall_ms=1784244032232 mono_ms=8336432 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10125 role=brain wall_ms=1784244032232 mono_ms=8336432 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10125 role=brain wall_ms=1784244032232 mono_ms=8336432 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10126 role=brain wall_ms=1784244032662 mono_ms=8336863 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10126 role=brain wall_ms=1784244032662 mono_ms=8336863 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10127 role=brain wall_ms=1784244037706 mono_ms=8341906 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10127 role=brain wall_ms=1784244037706 mono_ms=8341906 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10128 role=brain wall_ms=1784244041404 mono_ms=8345604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10128 role=brain wall_ms=1784244041404 mono_ms=8345604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10129 role=brain stream-subscriber stream=3892 wall_ms=1784244041404 mono_ms=8345604 event=stream-sub-attach stream=3892 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10129 role=brain stream-subscriber stream=3892 wall_ms=1784244041404 mono_ms=8345604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10129 role=brain stream-subscriber stream=3892 wall_ms=1784244041404 mono_ms=8345605 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10130 role=brain wall_ms=1784244041404 mono_ms=8345605 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10130 role=brain wall_ms=1784244041405 mono_ms=8345605 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10131 role=brain wall_ms=1784244041506 mono_ms=8345706 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10131 role=brain wall_ms=1784244041506 mono_ms=8345706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10132 role=brain stream-subscriber stream=3893 wall_ms=1784244041506 mono_ms=8345707 event=stream-sub-attach stream=3893 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10132 role=brain stream-subscriber stream=3893 wall_ms=1784244041506 mono_ms=8345707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10132 role=brain stream-subscriber stream=3893 wall_ms=1784244041507 mono_ms=8345707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10133 role=brain wall_ms=1784244041507 mono_ms=8345707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10133 role=brain wall_ms=1784244041507 mono_ms=8345707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10134 role=brain wall_ms=1784244042121 mono_ms=8346322 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10134 role=brain wall_ms=1784244042122 mono_ms=8346322 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10135 role=brain wall_ms=1784244042123 mono_ms=8346323 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10135 role=brain stream-subscriber stream=3894 wall_ms=1784244042123 mono_ms=8346323 event=stream-sub-attach stream=3894 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10135 role=brain stream-subscriber stream=3894 wall_ms=1784244042128 mono_ms=8346328 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10136 role=brain wall_ms=1784244042128 mono_ms=8346328 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10136 role=brain wall_ms=1784244042128 mono_ms=8346328 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10137 role=brain wall_ms=1784244042224 mono_ms=8346424 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10137 role=brain wall_ms=1784244042224 mono_ms=8346424 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10138 role=brain wall_ms=1784244042225 mono_ms=8346425 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10138 role=brain stream-subscriber stream=3895 wall_ms=1784244042225 mono_ms=8346425 event=stream-sub-attach stream=3895 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10138 role=brain stream-subscriber stream=3895 wall_ms=1784244042227 mono_ms=8346428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10139 role=brain wall_ms=1784244042227 mono_ms=8346428 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10139 role=brain wall_ms=1784244042227 mono_ms=8346428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10140 role=brain wall_ms=1784244042735 mono_ms=8346936 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10140 role=brain wall_ms=1784244042735 mono_ms=8346936 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10141 role=brain stream-subscriber stream=3896 wall_ms=1784244042736 mono_ms=8346936 event=stream-sub-attach stream=3896 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10141 role=brain stream-subscriber stream=3896 wall_ms=1784244042736 mono_ms=8346936 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10141 role=brain stream-subscriber stream=3896 wall_ms=1784244042736 mono_ms=8346936 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10142 role=brain wall_ms=1784244042736 mono_ms=8346937 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10142 role=brain wall_ms=1784244042736 mono_ms=8346937 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10143 role=brain wall_ms=1784244042751 mono_ms=8346951 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10143 role=brain wall_ms=1784244042751 mono_ms=8346951 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10144 role=brain wall_ms=1784244047241 mono_ms=8351442 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10144 role=brain wall_ms=1784244047241 mono_ms=8351442 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10145 role=brain wall_ms=1784244047246 mono_ms=8351447 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10145 role=brain stream-subscriber stream=3897 wall_ms=1784244047246 mono_ms=8351447 event=stream-sub-attach stream=3897 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10145 role=brain stream-subscriber stream=3897 wall_ms=1784244047258 mono_ms=8351458 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10146 role=brain wall_ms=1784244047258 mono_ms=8351459 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10146 role=brain wall_ms=1784244047258 mono_ms=8351459 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10147 role=brain wall_ms=1784244047795 mono_ms=8351995 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10147 role=brain wall_ms=1784244047795 mono_ms=8351995 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nREGISTRY_EVICT:BIGNET: 2 row(s) from silent node(s)\nCONN_LIFECYCLE: conn=10148 role=brain wall_ms=1784244052392 mono_ms=8356592 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10148 role=brain wall_ms=1784244052392 mono_ms=8356592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244052392 mono_ms=8356592 event=stream-sub-attach stream=3898 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244052392 mono_ms=8356592 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10150 role=brain wall_ms=1784244052855 mono_ms=8357056 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10150 role=brain wall_ms=1784244052856 mono_ms=8357056 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10151 role=brain wall_ms=1784244057914 mono_ms=8362114 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10151 role=brain wall_ms=1784244057914 mono_ms=8362114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474802 id=d275ca0e94e7870fc2a5e74c39b624fe9d1fcb00be085119fa841a8e5efe5006 addr=EndpointAddr { id: PublicKey(d275ca0e94e7870fc2a5e74c39b624fe9d1fcb00be085119fa841a8e5efe5006), addrs: {Ip(100.68.35.65:56622), Ip(192.168.1.81:56622)} }\nPAIR_MEET_UP:BIGNET step=59474802 id=663dc658569a0a494a272cf8d5477db81946be5a5cc16e4ac03cf75e24e08fc8 addr=EndpointAddr { id: PublicKey(663dc658569a0a494a272cf8d5477db81946be5a5cc16e4ac03cf75e24e08fc8), addrs: {Ip(100.68.35.65:56628), Ip(192.168.1.81:56628)} }\nCONN_LIFECYCLE: conn=10152 role=brain wall_ms=1784244063056 mono_ms=8367256 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10152 role=brain wall_ms=1784244063056 mono_ms=8367256 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_WRITE_POISONED: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244067399 mono_ms=8371599 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244067399 mono_ms=8371599 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10153 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10154 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10155 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10156 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10153 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10157 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10154 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10155 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10156 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10157 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244067505 mono_ms=8371705 event=stream-sub-attach stream=3903 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10161 role=brain stream-subscriber stream=3902 wall_ms=1784244067505 mono_ms=8371705 event=stream-sub-attach stream=3902 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10161 role=brain stream-subscriber stream=3902 wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10160 role=brain wall_ms=1784244067507 mono_ms=8371707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10159 role=brain wall_ms=1784244067507 mono_ms=8371707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10160 role=brain stream-subscriber stream=3901 wall_ms=1784244067507 mono_ms=8371707 event=stream-sub-attach stream=3901 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10159 role=brain stream-subscriber stream=3899 wall_ms=1784244067507 mono_ms=8371707 event=stream-sub-attach stream=3899 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10162 role=brain wall_ms=1784244067507 mono_ms=8371707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10162 role=brain stream-subscriber stream=3900 wall_ms=1784244067507 mono_ms=8371708 event=stream-sub-attach stream=3900 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10159 role=brain stream-subscriber stream=3899 wall_ms=1784244067511 mono_ms=8371711 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10163 role=brain wall_ms=1784244067511 mono_ms=8371711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10163 role=brain wall_ms=1784244067511 mono_ms=8371712 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10162 role=brain stream-subscriber stream=3900 wall_ms=1784244067515 mono_ms=8371715 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10164 role=brain wall_ms=1784244067515 mono_ms=8371716 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10164 role=brain wall_ms=1784244067515 mono_ms=8371716 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10160 role=brain stream-subscriber stream=3901 wall_ms=1784244067524 mono_ms=8371724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10165 role=brain wall_ms=1784244067524 mono_ms=8371724 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10165 role=brain wall_ms=1784244067524 mono_ms=8371724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10166 role=brain wall_ms=1784244068112 mono_ms=8372313 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10166 role=brain wall_ms=1784244068112 mono_ms=8372313 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10167 role=brain wall_ms=1784244072335 mono_ms=8376535 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10168 role=brain wall_ms=1784244072335 mono_ms=8376535 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10167 role=brain wall_ms=1784244072335 mono_ms=8376535 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10168 role=brain wall_ms=1784244072335 mono_ms=8376535 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10169 role=brain wall_ms=1784244072336 mono_ms=8376537 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10169 role=brain stream-subscriber stream=3904 wall_ms=1784244072336 mono_ms=8376537 event=stream-sub-attach stream=3904 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10169 role=brain stream-subscriber stream=3904 wall_ms=1784244072341 mono_ms=8376542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10171 role=brain wall_ms=1784244072342 mono_ms=8376542 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10171 role=brain wall_ms=1784244072342 mono_ms=8376542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10170 role=brain wall_ms=1784244072344 mono_ms=8376544 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10170 role=brain stream-subscriber stream=3905 wall_ms=1784244072344 mono_ms=8376544 event=stream-sub-attach stream=3905 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10170 role=brain stream-subscriber stream=3905 wall_ms=1784244072346 mono_ms=8376546 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10172 role=brain wall_ms=1784244072346 mono_ms=8376546 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10172 role=brain wall_ms=1784244072346 mono_ms=8376546 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10173 role=brain wall_ms=1784244073159 mono_ms=8377359 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10173 role=brain wall_ms=1784244073159 mono_ms=8377359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10174 role=brain wall_ms=1784244077477 mono_ms=8381678 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10174 role=brain wall_ms=1784244077478 mono_ms=8381678 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10175 role=brain wall_ms=1784244077479 mono_ms=8381679 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10175 role=brain stream-subscriber stream=3906 wall_ms=1784244077479 mono_ms=8381679 event=stream-sub-attach stream=3906 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10175 role=brain stream-subscriber stream=3906 wall_ms=1784244077874 mono_ms=8382074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10176 role=brain wall_ms=1784244077874 mono_ms=8382074 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10176 role=brain wall_ms=1784244077874 mono_ms=8382074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10177 role=brain wall_ms=1784244078206 mono_ms=8382406 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10177 role=brain wall_ms=1784244078206 mono_ms=8382406 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10178 role=brain wall_ms=1784244082619 mono_ms=8386819 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10178 role=brain wall_ms=1784244082619 mono_ms=8386819 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244082619 mono_ms=8386819 event=stream-sub-attach stream=3907 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244082619 mono_ms=8386819 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10180 role=brain wall_ms=1784244083264 mono_ms=8387464 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10180 role=brain wall_ms=1784244083264 mono_ms=8387464 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10181 role=brain wall_ms=1784244088327 mono_ms=8392527 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10181 role=brain wall_ms=1784244088327 mono_ms=8392527 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474803 id=1fa80028d461a91f14cbc9c51d1f4827e12462db551ca973dcf66a89802fa778 addr=EndpointAddr { id: PublicKey(1fa80028d461a91f14cbc9c51d1f4827e12462db551ca973dcf66a89802fa778), addrs: {Ip(100.68.35.65:52279), Ip(192.168.1.81:52279)} }\nPAIR_MEET_UP:SPT_DEV step=59474803 id=d62d7d85ca101584ff9f2f94814744db56d1ebe71818530861319e142c728247 addr=EndpointAddr { id: PublicKey(d62d7d85ca101584ff9f2f94814744db56d1ebe71818530861319e142c728247), addrs: {Ip(100.68.35.65:52285), Ip(192.168.1.81:52285)} }\nCONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_WRITE_POISONED: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244097733 mono_ms=8401933 event=stream-sub-attach stream=3908 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244097733 mono_ms=8401933 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10186 role=brain wall_ms=1784244097734 mono_ms=8401934 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10186 role=brain stream-subscriber stream=3909 wall_ms=1784244097734 mono_ms=8401934 event=stream-sub-attach stream=3909 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10186 role=brain stream-subscriber stream=3909 wall_ms=1784244097743 mono_ms=8401943 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10187 role=brain wall_ms=1784244097743 mono_ms=8401943 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10187 role=brain wall_ms=1784244097743 mono_ms=8401943 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10188 role=brain wall_ms=1784244098469 mono_ms=8402669 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10188 role=brain wall_ms=1784244098469 mono_ms=8402669 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10161 role=brain stream-subscriber stream=3902 wall_ms=1784244102367 mono_ms=8406567 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10189 role=brain wall_ms=1784244102368 mono_ms=8406568 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10189 role=brain wall_ms=1784244102368 mono_ms=8406568 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3907:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3898:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10192 role=brain wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10193 role=brain wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10192 role=brain wall_ms=1784244102973 mono_ms=8407173 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10193 role=brain wall_ms=1784244102973 mono_ms=8407173 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10194 role=brain stream-subscriber stream=3898 wall_ms=1784244102973 mono_ms=8407173 event=stream-sub-attach stream=3898 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10195 role=brain stream-subscriber stream=3907 wall_ms=1784244102973 mono_ms=8407173 event=stream-sub-attach stream=3907 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10194 role=brain stream-subscriber stream=3898 wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10195 role=brain stream-subscriber stream=3907 wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10195 role=brain stream-subscriber stream=3907 wall_ms=1784244102987 mono_ms=8407187 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n\n[Showing lines 24719-25053 of 383. Use :25054 to continue]"}],"details":{"truncation":{"content":"CONN_LIFECYCLE: conn=10061 role=brain wall_ms=1784243982257 mono_ms=8286458 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10062 role=brain stream-subscriber stream=3864 wall_ms=1784243982260 mono_ms=8286461 event=stream-sub-attach stream=3864 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10062 role=brain stream-subscriber stream=3864 wall_ms=1784243982260 mono_ms=8286461 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10062 role=brain stream-subscriber stream=3864 wall_ms=1784243982261 mono_ms=8286462 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10063 role=brain wall_ms=1784243982267 mono_ms=8286468 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10063 role=brain wall_ms=1784243982268 mono_ms=8286469 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10064 role=brain wall_ms=1784243986870 mono_ms=8291071 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10064 role=brain wall_ms=1784243986870 mono_ms=8291071 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10065 role=brain wall_ms=1784243986876 mono_ms=8291077 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10065 role=brain stream-subscriber stream=3865 wall_ms=1784243986876 mono_ms=8291077 event=stream-sub-attach stream=3865 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10066 role=brain wall_ms=1784243986977 mono_ms=8291178 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10066 role=brain wall_ms=1784243986977 mono_ms=8291178 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10067 role=brain wall_ms=1784243986986 mono_ms=8291187 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10067 role=brain wall_ms=1784243986986 mono_ms=8291187 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10068 role=brain wall_ms=1784243986995 mono_ms=8291196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10068 role=brain wall_ms=1784243986995 mono_ms=8291196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10069 role=brain wall_ms=1784243986996 mono_ms=8291196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10069 role=brain stream-subscriber stream=3866 wall_ms=1784243986996 mono_ms=8291197 event=stream-sub-attach stream=3866 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10069 role=brain stream-subscriber stream=3866 wall_ms=1784243987005 mono_ms=8291206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10070 role=brain wall_ms=1784243987021 mono_ms=8291222 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10070 role=brain stream-subscriber stream=3867 wall_ms=1784243987021 mono_ms=8291222 event=stream-sub-attach stream=3867 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10070 role=brain stream-subscriber stream=3867 wall_ms=1784243987024 mono_ms=8291225 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10071 role=brain wall_ms=1784243987026 mono_ms=8291227 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10071 role=brain wall_ms=1784243987026 mono_ms=8291227 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10072 role=brain wall_ms=1784243987036 mono_ms=8291237 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10072 role=brain wall_ms=1784243987036 mono_ms=8291237 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10065 role=brain stream-subscriber stream=3865 wall_ms=1784243987492 mono_ms=8291693 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10073 role=brain wall_ms=1784243987492 mono_ms=8291693 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10073 role=brain wall_ms=1784243987493 mono_ms=8291694 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10074 role=brain wall_ms=1784243987705 mono_ms=8291906 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10074 role=brain wall_ms=1784243987705 mono_ms=8291906 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784243987711 mono_ms=8291912 event=stream-sub-attach stream=3868 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784243987711 mono_ms=8291912 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10076 role=brain wall_ms=1784243987714 mono_ms=8291915 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10076 role=brain wall_ms=1784243987715 mono_ms=8291915 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10077 role=brain stream-subscriber stream=3869 wall_ms=1784243987715 mono_ms=8291916 event=stream-sub-attach stream=3869 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10077 role=brain stream-subscriber stream=3869 wall_ms=1784243987715 mono_ms=8291916 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10078 role=brain wall_ms=1784243991986 mono_ms=8296187 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10078 role=brain wall_ms=1784243991987 mono_ms=8296188 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10079 role=brain stream-subscriber stream=3870 wall_ms=1784243991991 mono_ms=8296191 event=stream-sub-attach stream=3870 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10079 role=brain stream-subscriber stream=3870 wall_ms=1784243991991 mono_ms=8296191 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10080 role=brain wall_ms=1784243992213 mono_ms=8296414 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10080 role=brain wall_ms=1784243992213 mono_ms=8296414 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10081 role=brain wall_ms=1784243997341 mono_ms=8301542 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10081 role=brain wall_ms=1784243997341 mono_ms=8301542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474800 id=e66347900e9753f45b3a8e0ea1ee052832c50dddbda05e4df7dcaa8cb458f1cd addr=EndpointAddr { id: PublicKey(e66347900e9753f45b3a8e0ea1ee052832c50dddbda05e4df7dcaa8cb458f1cd), addrs: {Ip(100.68.35.65:56773), Ip(192.168.1.81:56773)} }\nPAIR_MEET_UP:SPT_DEV step=59474800 id=112b8b55bad339ca7c289165c970c66d6151a080ec708b48152ab51427bc9935 addr=EndpointAddr { id: PublicKey(112b8b55bad339ca7c289165c970c66d6151a080ec708b48152ab51427bc9935), addrs: {Ip(100.68.35.65:56772), Ip(192.168.1.81:56772)} }\nDISPATCH:3858:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784244001057 mono_ms=8305257 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10082 role=brain wall_ms=1784244001058 mono_ms=8305258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10036 role=brain stream-subscriber stream=3856 wall_ms=1784244001058 mono_ms=8305258 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10083 role=brain wall_ms=1784244001058 mono_ms=8305258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10082 role=brain wall_ms=1784244001058 mono_ms=8305259 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10083 role=brain wall_ms=1784244001058 mono_ms=8305259 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10084 role=brain wall_ms=1784244001062 mono_ms=8305263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10038 role=brain stream-subscriber stream=3857 wall_ms=1784244001062 mono_ms=8305263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10084 role=brain wall_ms=1784244001062 mono_ms=8305263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10077 role=brain stream-subscriber stream=3869 wall_ms=1784244001064 mono_ms=8305265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10085 role=brain wall_ms=1784244001066 mono_ms=8305267 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10085 role=brain wall_ms=1784244001066 mono_ms=8305267 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10079 role=brain stream-subscriber stream=3870 wall_ms=1784244001069 mono_ms=8305270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10086 role=brain wall_ms=1784244001069 mono_ms=8305270 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10086 role=brain wall_ms=1784244001069 mono_ms=8305270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10087 role=brain wall_ms=1784244001572 mono_ms=8305773 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10087 role=brain wall_ms=1784244001572 mono_ms=8305773 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10088 role=brain stream-subscriber stream=3858 wall_ms=1784244001573 mono_ms=8305773 event=stream-sub-attach stream=3858 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10088 role=brain stream-subscriber stream=3858 wall_ms=1784244001573 mono_ms=8305773 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10088 role=brain stream-subscriber stream=3858 wall_ms=1784244001579 mono_ms=8305780 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10089 role=brain wall_ms=1784244001580 mono_ms=8305780 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10089 role=brain wall_ms=1784244001580 mono_ms=8305781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10090 role=brain wall_ms=1784244001982 mono_ms=8306183 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10090 role=brain wall_ms=1784244001982 mono_ms=8306183 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10091 role=brain wall_ms=1784244001984 mono_ms=8306184 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10091 role=brain stream-subscriber stream=3875 wall_ms=1784244001984 mono_ms=8306184 event=stream-sub-attach stream=3875 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10092 role=brain wall_ms=1784244002084 mono_ms=8306285 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10093 role=brain wall_ms=1784244002085 mono_ms=8306285 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10092 role=brain wall_ms=1784244002085 mono_ms=8306285 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10093 role=brain wall_ms=1784244002085 mono_ms=8306285 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10095 role=brain wall_ms=1784244002086 mono_ms=8306286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10094 role=brain wall_ms=1784244002086 mono_ms=8306286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10095 role=brain stream-subscriber stream=3876 wall_ms=1784244002086 mono_ms=8306286 event=stream-sub-attach stream=3876 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10094 role=brain stream-subscriber stream=3877 wall_ms=1784244002086 mono_ms=8306287 event=stream-sub-attach stream=3877 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10094 role=brain stream-subscriber stream=3877 wall_ms=1784244002087 mono_ms=8306288 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10096 role=brain wall_ms=1784244002087 mono_ms=8306288 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10096 role=brain wall_ms=1784244002087 mono_ms=8306288 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10095 role=brain stream-subscriber stream=3876 wall_ms=1784244002090 mono_ms=8306291 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10097 role=brain wall_ms=1784244002090 mono_ms=8306291 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10097 role=brain wall_ms=1784244002090 mono_ms=8306291 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10091 role=brain stream-subscriber stream=3875 wall_ms=1784244002095 mono_ms=8306296 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10098 role=brain wall_ms=1784244002096 mono_ms=8306296 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10098 role=brain wall_ms=1784244002096 mono_ms=8306296 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10099 role=brain wall_ms=1784244002398 mono_ms=8306599 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10099 role=brain wall_ms=1784244002399 mono_ms=8306599 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10100 role=brain wall_ms=1784244007443 mono_ms=8311643 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10100 role=brain wall_ms=1784244007443 mono_ms=8311643 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=10101 role=brain wall_ms=1784244012486 mono_ms=8316686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10101 role=brain wall_ms=1784244012486 mono_ms=8316686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784244013181 mono_ms=8317382 event=stream-sub-attach stream=3880 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10102 role=brain wall_ms=1784244017036 mono_ms=8321237 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10102 role=brain wall_ms=1784244017037 mono_ms=8321237 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10103 role=brain wall_ms=1784244017038 mono_ms=8321238 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10103 role=brain stream-subscriber stream=3882 wall_ms=1784244017038 mono_ms=8321238 event=stream-sub-attach stream=3882 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10103 role=brain stream-subscriber stream=3882 wall_ms=1784244017047 mono_ms=8321248 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10104 role=brain wall_ms=1784244017047 mono_ms=8321248 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10104 role=brain wall_ms=1784244017047 mono_ms=8321248 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10105 role=brain wall_ms=1784244017139 mono_ms=8321340 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10106 role=brain wall_ms=1784244017139 mono_ms=8321340 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10105 role=brain wall_ms=1784244017139 mono_ms=8321340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10106 role=brain wall_ms=1784244017139 mono_ms=8321340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10107 role=brain wall_ms=1784244017140 mono_ms=8321341 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10107 role=brain stream-subscriber stream=3883 wall_ms=1784244017140 mono_ms=8321341 event=stream-sub-attach stream=3883 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10107 role=brain stream-subscriber stream=3883 wall_ms=1784244017144 mono_ms=8321345 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10109 role=brain wall_ms=1784244017144 mono_ms=8321345 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10109 role=brain wall_ms=1784244017145 mono_ms=8321345 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10108 role=brain wall_ms=1784244017151 mono_ms=8321351 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10108 role=brain stream-subscriber stream=3884 wall_ms=1784244017151 mono_ms=8321352 event=stream-sub-attach stream=3884 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10108 role=brain stream-subscriber stream=3884 wall_ms=1784244017153 mono_ms=8321354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10110 role=brain wall_ms=1784244017153 mono_ms=8321354 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10110 role=brain wall_ms=1784244017153 mono_ms=8321354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10111 role=brain wall_ms=1784244017531 mono_ms=8321731 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10111 role=brain wall_ms=1784244017531 mono_ms=8321732 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10112 role=brain wall_ms=1784244022155 mono_ms=8326356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10112 role=brain wall_ms=1784244022155 mono_ms=8326356 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10113 role=brain stream-subscriber stream=3885 wall_ms=1784244022155 mono_ms=8326356 event=stream-sub-attach stream=3885 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10113 role=brain stream-subscriber stream=3885 wall_ms=1784244022155 mono_ms=8326356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10113 role=brain stream-subscriber stream=3885 wall_ms=1784244022163 mono_ms=8326364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10114 role=brain wall_ms=1784244022163 mono_ms=8326364 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10114 role=brain wall_ms=1784244022163 mono_ms=8326364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10115 role=brain wall_ms=1784244022574 mono_ms=8326775 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10115 role=brain wall_ms=1784244022574 mono_ms=8326775 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=10116 role=brain wall_ms=1784244027171 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10117 role=brain wall_ms=1784244027171 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10116 role=brain wall_ms=1784244027171 mono_ms=8331372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10117 role=brain wall_ms=1784244027171 mono_ms=8331372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10118 role=brain stream-subscriber stream=3886 wall_ms=1784244027172 mono_ms=8331372 event=stream-sub-attach stream=3886 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10119 role=brain stream-subscriber stream=3887 wall_ms=1784244027172 mono_ms=8331372 event=stream-sub-attach stream=3887 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10119 role=brain stream-subscriber stream=3887 wall_ms=1784244027172 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10118 role=brain stream-subscriber stream=3886 wall_ms=1784244027172 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10118 role=brain stream-subscriber stream=3886 wall_ms=1784244027178 mono_ms=8331379 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10120 role=brain wall_ms=1784244027178 mono_ms=8331379 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10120 role=brain wall_ms=1784244027179 mono_ms=8331379 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10119 role=brain stream-subscriber stream=3887 wall_ms=1784244027180 mono_ms=8331381 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10121 role=brain wall_ms=1784244027181 mono_ms=8331381 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10121 role=brain wall_ms=1784244027181 mono_ms=8331381 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10122 role=brain wall_ms=1784244027616 mono_ms=8331817 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10122 role=brain wall_ms=1784244027617 mono_ms=8331817 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474801 id=ff1190830820ff6200c2cc91ed086f96be9a43e3a213fd7f89de47cd42141918 addr=EndpointAddr { id: PublicKey(ff1190830820ff6200c2cc91ed086f96be9a43e3a213fd7f89de47cd42141918), addrs: {Ip(100.68.35.65:56482), Ip(192.168.1.81:56482)} }\nPAIR_MEET_UP:SPT_DEV step=59474801 id=3148450cf726ca15c113b2acef358728b6a9effc4e30c1dcc311321547aad4e1 addr=EndpointAddr { id: PublicKey(3148450cf726ca15c113b2acef358728b6a9effc4e30c1dcc311321547aad4e1), addrs: {Ip(100.68.35.65:56483), Ip(192.168.1.81:56483)} }\nCONN_LIFECYCLE: conn=10123 role=brain wall_ms=1784244032190 mono_ms=8336391 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10123 role=brain wall_ms=1784244032190 mono_ms=8336391 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10124 role=brain wall_ms=1784244032191 mono_ms=8336392 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10124 role=brain stream-subscriber stream=3888 wall_ms=1784244032191 mono_ms=8336392 event=stream-sub-attach stream=3888 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10124 role=brain stream-subscriber stream=3888 wall_ms=1784244032232 mono_ms=8336432 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10125 role=brain wall_ms=1784244032232 mono_ms=8336432 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10125 role=brain wall_ms=1784244032232 mono_ms=8336432 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10126 role=brain wall_ms=1784244032662 mono_ms=8336863 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10126 role=brain wall_ms=1784244032662 mono_ms=8336863 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10127 role=brain wall_ms=1784244037706 mono_ms=8341906 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10127 role=brain wall_ms=1784244037706 mono_ms=8341906 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10128 role=brain wall_ms=1784244041404 mono_ms=8345604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10128 role=brain wall_ms=1784244041404 mono_ms=8345604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10129 role=brain stream-subscriber stream=3892 wall_ms=1784244041404 mono_ms=8345604 event=stream-sub-attach stream=3892 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10129 role=brain stream-subscriber stream=3892 wall_ms=1784244041404 mono_ms=8345604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10129 role=brain stream-subscriber stream=3892 wall_ms=1784244041404 mono_ms=8345605 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10130 role=brain wall_ms=1784244041404 mono_ms=8345605 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10130 role=brain wall_ms=1784244041405 mono_ms=8345605 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10131 role=brain wall_ms=1784244041506 mono_ms=8345706 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10131 role=brain wall_ms=1784244041506 mono_ms=8345706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10132 role=brain stream-subscriber stream=3893 wall_ms=1784244041506 mono_ms=8345707 event=stream-sub-attach stream=3893 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10132 role=brain stream-subscriber stream=3893 wall_ms=1784244041506 mono_ms=8345707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10132 role=brain stream-subscriber stream=3893 wall_ms=1784244041507 mono_ms=8345707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10133 role=brain wall_ms=1784244041507 mono_ms=8345707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10133 role=brain wall_ms=1784244041507 mono_ms=8345707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10134 role=brain wall_ms=1784244042121 mono_ms=8346322 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10134 role=brain wall_ms=1784244042122 mono_ms=8346322 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10135 role=brain wall_ms=1784244042123 mono_ms=8346323 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10135 role=brain stream-subscriber stream=3894 wall_ms=1784244042123 mono_ms=8346323 event=stream-sub-attach stream=3894 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10135 role=brain stream-subscriber stream=3894 wall_ms=1784244042128 mono_ms=8346328 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10136 role=brain wall_ms=1784244042128 mono_ms=8346328 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10136 role=brain wall_ms=1784244042128 mono_ms=8346328 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10137 role=brain wall_ms=1784244042224 mono_ms=8346424 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10137 role=brain wall_ms=1784244042224 mono_ms=8346424 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10138 role=brain wall_ms=1784244042225 mono_ms=8346425 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10138 role=brain stream-subscriber stream=3895 wall_ms=1784244042225 mono_ms=8346425 event=stream-sub-attach stream=3895 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10138 role=brain stream-subscriber stream=3895 wall_ms=1784244042227 mono_ms=8346428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10139 role=brain wall_ms=1784244042227 mono_ms=8346428 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10139 role=brain wall_ms=1784244042227 mono_ms=8346428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10140 role=brain wall_ms=1784244042735 mono_ms=8346936 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10140 role=brain wall_ms=1784244042735 mono_ms=8346936 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10141 role=brain stream-subscriber stream=3896 wall_ms=1784244042736 mono_ms=8346936 event=stream-sub-attach stream=3896 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10141 role=brain stream-subscriber stream=3896 wall_ms=1784244042736 mono_ms=8346936 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10141 role=brain stream-subscriber stream=3896 wall_ms=1784244042736 mono_ms=8346936 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10142 role=brain wall_ms=1784244042736 mono_ms=8346937 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10142 role=brain wall_ms=1784244042736 mono_ms=8346937 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10143 role=brain wall_ms=1784244042751 mono_ms=8346951 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10143 role=brain wall_ms=1784244042751 mono_ms=8346951 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10144 role=brain wall_ms=1784244047241 mono_ms=8351442 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10144 role=brain wall_ms=1784244047241 mono_ms=8351442 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10145 role=brain wall_ms=1784244047246 mono_ms=8351447 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10145 role=brain stream-subscriber stream=3897 wall_ms=1784244047246 mono_ms=8351447 event=stream-sub-attach stream=3897 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10145 role=brain stream-subscriber stream=3897 wall_ms=1784244047258 mono_ms=8351458 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10146 role=brain wall_ms=1784244047258 mono_ms=8351459 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10146 role=brain wall_ms=1784244047258 mono_ms=8351459 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10147 role=brain wall_ms=1784244047795 mono_ms=8351995 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10147 role=brain wall_ms=1784244047795 mono_ms=8351995 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nREGISTRY_EVICT:BIGNET: 2 row(s) from silent node(s)\nCONN_LIFECYCLE: conn=10148 role=brain wall_ms=1784244052392 mono_ms=8356592 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10148 role=brain wall_ms=1784244052392 mono_ms=8356592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244052392 mono_ms=8356592 event=stream-sub-attach stream=3898 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244052392 mono_ms=8356592 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10150 role=brain wall_ms=1784244052855 mono_ms=8357056 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10150 role=brain wall_ms=1784244052856 mono_ms=8357056 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10151 role=brain wall_ms=1784244057914 mono_ms=8362114 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10151 role=brain wall_ms=1784244057914 mono_ms=8362114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474802 id=d275ca0e94e7870fc2a5e74c39b624fe9d1fcb00be085119fa841a8e5efe5006 addr=EndpointAddr { id: PublicKey(d275ca0e94e7870fc2a5e74c39b624fe9d1fcb00be085119fa841a8e5efe5006), addrs: {Ip(100.68.35.65:56622), Ip(192.168.1.81:56622)} }\nPAIR_MEET_UP:BIGNET step=59474802 id=663dc658569a0a494a272cf8d5477db81946be5a5cc16e4ac03cf75e24e08fc8 addr=EndpointAddr { id: PublicKey(663dc658569a0a494a272cf8d5477db81946be5a5cc16e4ac03cf75e24e08fc8), addrs: {Ip(100.68.35.65:56628), Ip(192.168.1.81:56628)} }\nCONN_LIFECYCLE: conn=10152 role=brain wall_ms=1784244063056 mono_ms=8367256 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10152 role=brain wall_ms=1784244063056 mono_ms=8367256 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_WRITE_POISONED: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244067399 mono_ms=8371599 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244067399 mono_ms=8371599 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10153 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10154 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10155 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10156 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10153 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10157 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10154 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10155 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10156 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10157 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244067505 mono_ms=8371705 event=stream-sub-attach stream=3903 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10161 role=brain stream-subscriber stream=3902 wall_ms=1784244067505 mono_ms=8371705 event=stream-sub-attach stream=3902 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10161 role=brain stream-subscriber stream=3902 wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10160 role=brain wall_ms=1784244067507 mono_ms=8371707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10159 role=brain wall_ms=1784244067507 mono_ms=8371707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10160 role=brain stream-subscriber stream=3901 wall_ms=1784244067507 mono_ms=8371707 event=stream-sub-attach stream=3901 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10159 role=brain stream-subscriber stream=3899 wall_ms=1784244067507 mono_ms=8371707 event=stream-sub-attach stream=3899 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10162 role=brain wall_ms=1784244067507 mono_ms=8371707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10162 role=brain stream-subscriber stream=3900 wall_ms=1784244067507 mono_ms=8371708 event=stream-sub-attach stream=3900 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10159 role=brain stream-subscriber stream=3899 wall_ms=1784244067511 mono_ms=8371711 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10163 role=brain wall_ms=1784244067511 mono_ms=8371711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10163 role=brain wall_ms=1784244067511 mono_ms=8371712 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10162 role=brain stream-subscriber stream=3900 wall_ms=1784244067515 mono_ms=8371715 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10164 role=brain wall_ms=1784244067515 mono_ms=8371716 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10164 role=brain wall_ms=1784244067515 mono_ms=8371716 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10160 role=brain stream-subscriber stream=3901 wall_ms=1784244067524 mono_ms=8371724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10165 role=brain wall_ms=1784244067524 mono_ms=8371724 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10165 role=brain wall_ms=1784244067524 mono_ms=8371724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10166 role=brain wall_ms=1784244068112 mono_ms=8372313 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10166 role=brain wall_ms=1784244068112 mono_ms=8372313 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10167 role=brain wall_ms=1784244072335 mono_ms=8376535 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10168 role=brain wall_ms=1784244072335 mono_ms=8376535 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10167 role=brain wall_ms=1784244072335 mono_ms=8376535 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10168 role=brain wall_ms=1784244072335 mono_ms=8376535 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10169 role=brain wall_ms=1784244072336 mono_ms=8376537 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10169 role=brain stream-subscriber stream=3904 wall_ms=1784244072336 mono_ms=8376537 event=stream-sub-attach stream=3904 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10169 role=brain stream-subscriber stream=3904 wall_ms=1784244072341 mono_ms=8376542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10171 role=brain wall_ms=1784244072342 mono_ms=8376542 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10171 role=brain wall_ms=1784244072342 mono_ms=8376542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10170 role=brain wall_ms=1784244072344 mono_ms=8376544 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10170 role=brain stream-subscriber stream=3905 wall_ms=1784244072344 mono_ms=8376544 event=stream-sub-attach stream=3905 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10170 role=brain stream-subscriber stream=3905 wall_ms=1784244072346 mono_ms=8376546 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10172 role=brain wall_ms=1784244072346 mono_ms=8376546 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10172 role=brain wall_ms=1784244072346 mono_ms=8376546 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10173 role=brain wall_ms=1784244073159 mono_ms=8377359 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10173 role=brain wall_ms=1784244073159 mono_ms=8377359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10174 role=brain wall_ms=1784244077477 mono_ms=8381678 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10174 role=brain wall_ms=1784244077478 mono_ms=8381678 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10175 role=brain wall_ms=1784244077479 mono_ms=8381679 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10175 role=brain stream-subscriber stream=3906 wall_ms=1784244077479 mono_ms=8381679 event=stream-sub-attach stream=3906 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10175 role=brain stream-subscriber stream=3906 wall_ms=1784244077874 mono_ms=8382074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10176 role=brain wall_ms=1784244077874 mono_ms=8382074 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10176 role=brain wall_ms=1784244077874 mono_ms=8382074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10177 role=brain wall_ms=1784244078206 mono_ms=8382406 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10177 role=brain wall_ms=1784244078206 mono_ms=8382406 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10178 role=brain wall_ms=1784244082619 mono_ms=8386819 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10178 role=brain wall_ms=1784244082619 mono_ms=8386819 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244082619 mono_ms=8386819 event=stream-sub-attach stream=3907 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244082619 mono_ms=8386819 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10180 role=brain wall_ms=1784244083264 mono_ms=8387464 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10180 role=brain wall_ms=1784244083264 mono_ms=8387464 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10181 role=brain wall_ms=1784244088327 mono_ms=8392527 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10181 role=brain wall_ms=1784244088327 mono_ms=8392527 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474803 id=1fa80028d461a91f14cbc9c51d1f4827e12462db551ca973dcf66a89802fa778 addr=EndpointAddr { id: PublicKey(1fa80028d461a91f14cbc9c51d1f4827e12462db551ca973dcf66a89802fa778), addrs: {Ip(100.68.35.65:52279), Ip(192.168.1.81:52279)} }\nPAIR_MEET_UP:SPT_DEV step=59474803 id=d62d7d85ca101584ff9f2f94814744db56d1ebe71818530861319e142c728247 addr=EndpointAddr { id: PublicKey(d62d7d85ca101584ff9f2f94814744db56d1ebe71818530861319e142c728247), addrs: {Ip(100.68.35.65:52285), Ip(192.168.1.81:52285)} }\nCONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_WRITE_POISONED: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244097733 mono_ms=8401933 event=stream-sub-attach stream=3908 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244097733 mono_ms=8401933 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10186 role=brain wall_ms=1784244097734 mono_ms=8401934 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10186 role=brain stream-subscriber stream=3909 wall_ms=1784244097734 mono_ms=8401934 event=stream-sub-attach stream=3909 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10186 role=brain stream-subscriber stream=3909 wall_ms=1784244097743 mono_ms=8401943 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10187 role=brain wall_ms=1784244097743 mono_ms=8401943 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10187 role=brain wall_ms=1784244097743 mono_ms=8401943 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10188 role=brain wall_ms=1784244098469 mono_ms=8402669 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10188 role=brain wall_ms=1784244098469 mono_ms=8402669 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10161 role=brain stream-subscriber stream=3902 wall_ms=1784244102367 mono_ms=8406567 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10189 role=brain wall_ms=1784244102368 mono_ms=8406568 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10189 role=brain wall_ms=1784244102368 mono_ms=8406568 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3907:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3898:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10192 role=brain wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10193 role=brain wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10192 role=brain wall_ms=1784244102973 mono_ms=8407173 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10193 role=brain wall_ms=1784244102973 mono_ms=8407173 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10194 role=brain stream-subscriber stream=3898 wall_ms=1784244102973 mono_ms=8407173 event=stream-sub-attach stream=3898 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10195 role=brain stream-subscriber stream=3907 wall_ms=1784244102973 mono_ms=8407173 event=stream-sub-attach stream=3907 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10194 role=brain stream-subscriber stream=3898 wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10195 role=brain stream-subscriber stream=3907 wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10195 role=brain stream-subscriber stream=3907 wall_ms=1784244102987 mono_ms=8407187 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]","truncated":true,"truncatedBy":"lines","totalLines":383,"totalBytes":51195,"outputLines":335,"outputBytes":51195,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"CONN_LIFECYCLE: conn=10061 role=brain wall_ms=1784243982257 mono_ms=8286458 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10062 role=brain stream-subscriber stream=3864 wall_ms=1784243982260 mono_ms=8286461 event=stream-sub-attach stream=3864 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10062 role=brain stream-subscriber stream=3864 wall_ms=1784243982260 mono_ms=8286461 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10062 role=brain stream-subscriber stream=3864 wall_ms=1784243982261 mono_ms=8286462 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10063 role=brain wall_ms=1784243982267 mono_ms=8286468 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10063 role=brain wall_ms=1784243982268 mono_ms=8286469 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10064 role=brain wall_ms=1784243986870 mono_ms=8291071 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10064 role=brain wall_ms=1784243986870 mono_ms=8291071 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10065 role=brain wall_ms=1784243986876 mono_ms=8291077 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10065 role=brain stream-subscriber stream=3865 wall_ms=1784243986876 mono_ms=8291077 event=stream-sub-attach stream=3865 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10066 role=brain wall_ms=1784243986977 mono_ms=8291178 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10066 role=brain wall_ms=1784243986977 mono_ms=8291178 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10067 role=brain wall_ms=1784243986986 mono_ms=8291187 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10067 role=brain wall_ms=1784243986986 mono_ms=8291187 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10068 role=brain wall_ms=1784243986995 mono_ms=8291196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10068 role=brain wall_ms=1784243986995 mono_ms=8291196 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10069 role=brain wall_ms=1784243986996 mono_ms=8291196 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10069 role=brain stream-subscriber stream=3866 wall_ms=1784243986996 mono_ms=8291197 event=stream-sub-attach stream=3866 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10069 role=brain stream-subscriber stream=3866 wall_ms=1784243987005 mono_ms=8291206 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10070 role=brain wall_ms=1784243987021 mono_ms=8291222 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10070 role=brain stream-subscriber stream=3867 wall_ms=1784243987021 mono_ms=8291222 event=stream-sub-attach stream=3867 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10070 role=brain stream-subscriber stream=3867 wall_ms=1784243987024 mono_ms=8291225 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10071 role=brain wall_ms=1784243987026 mono_ms=8291227 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10071 role=brain wall_ms=1784243987026 mono_ms=8291227 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10072 role=brain wall_ms=1784243987036 mono_ms=8291237 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10072 role=brain wall_ms=1784243987036 mono_ms=8291237 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10065 role=brain stream-subscriber stream=3865 wall_ms=1784243987492 mono_ms=8291693 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10073 role=brain wall_ms=1784243987492 mono_ms=8291693 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10073 role=brain wall_ms=1784243987493 mono_ms=8291694 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10074 role=brain wall_ms=1784243987705 mono_ms=8291906 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10074 role=brain wall_ms=1784243987705 mono_ms=8291906 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784243987711 mono_ms=8291912 event=stream-sub-attach stream=3868 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784243987711 mono_ms=8291912 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10076 role=brain wall_ms=1784243987714 mono_ms=8291915 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10076 role=brain wall_ms=1784243987715 mono_ms=8291915 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10077 role=brain stream-subscriber stream=3869 wall_ms=1784243987715 mono_ms=8291916 event=stream-sub-attach stream=3869 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10077 role=brain stream-subscriber stream=3869 wall_ms=1784243987715 mono_ms=8291916 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10078 role=brain wall_ms=1784243991986 mono_ms=8296187 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10078 role=brain wall_ms=1784243991987 mono_ms=8296188 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10079 role=brain stream-subscriber stream=3870 wall_ms=1784243991991 mono_ms=8296191 event=stream-sub-attach stream=3870 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10079 role=brain stream-subscriber stream=3870 wall_ms=1784243991991 mono_ms=8296191 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10080 role=brain wall_ms=1784243992213 mono_ms=8296414 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10080 role=brain wall_ms=1784243992213 mono_ms=8296414 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10081 role=brain wall_ms=1784243997341 mono_ms=8301542 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10081 role=brain wall_ms=1784243997341 mono_ms=8301542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474800 id=e66347900e9753f45b3a8e0ea1ee052832c50dddbda05e4df7dcaa8cb458f1cd addr=EndpointAddr { id: PublicKey(e66347900e9753f45b3a8e0ea1ee052832c50dddbda05e4df7dcaa8cb458f1cd), addrs: {Ip(100.68.35.65:56773), Ip(192.168.1.81:56773)} }\nPAIR_MEET_UP:SPT_DEV step=59474800 id=112b8b55bad339ca7c289165c970c66d6151a080ec708b48152ab51427bc9935 addr=EndpointAddr { id: PublicKey(112b8b55bad339ca7c289165c970c66d6151a080ec708b48152ab51427bc9935), addrs: {Ip(100.68.35.65:56772), Ip(192.168.1.81:56772)} }\nDISPATCH:3858:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=10075 role=brain stream-subscriber stream=3868 wall_ms=1784244001057 mono_ms=8305257 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10082 role=brain wall_ms=1784244001058 mono_ms=8305258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10036 role=brain stream-subscriber stream=3856 wall_ms=1784244001058 mono_ms=8305258 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10083 role=brain wall_ms=1784244001058 mono_ms=8305258 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10082 role=brain wall_ms=1784244001058 mono_ms=8305259 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10083 role=brain wall_ms=1784244001058 mono_ms=8305259 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10084 role=brain wall_ms=1784244001062 mono_ms=8305263 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10038 role=brain stream-subscriber stream=3857 wall_ms=1784244001062 mono_ms=8305263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10084 role=brain wall_ms=1784244001062 mono_ms=8305263 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10077 role=brain stream-subscriber stream=3869 wall_ms=1784244001064 mono_ms=8305265 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10085 role=brain wall_ms=1784244001066 mono_ms=8305267 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10085 role=brain wall_ms=1784244001066 mono_ms=8305267 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10079 role=brain stream-subscriber stream=3870 wall_ms=1784244001069 mono_ms=8305270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10086 role=brain wall_ms=1784244001069 mono_ms=8305270 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10086 role=brain wall_ms=1784244001069 mono_ms=8305270 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10087 role=brain wall_ms=1784244001572 mono_ms=8305773 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10087 role=brain wall_ms=1784244001572 mono_ms=8305773 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10088 role=brain stream-subscriber stream=3858 wall_ms=1784244001573 mono_ms=8305773 event=stream-sub-attach stream=3858 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10088 role=brain stream-subscriber stream=3858 wall_ms=1784244001573 mono_ms=8305773 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10088 role=brain stream-subscriber stream=3858 wall_ms=1784244001579 mono_ms=8305780 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10089 role=brain wall_ms=1784244001580 mono_ms=8305780 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10089 role=brain wall_ms=1784244001580 mono_ms=8305781 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10090 role=brain wall_ms=1784244001982 mono_ms=8306183 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10090 role=brain wall_ms=1784244001982 mono_ms=8306183 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10091 role=brain wall_ms=1784244001984 mono_ms=8306184 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10091 role=brain stream-subscriber stream=3875 wall_ms=1784244001984 mono_ms=8306184 event=stream-sub-attach stream=3875 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10092 role=brain wall_ms=1784244002084 mono_ms=8306285 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10093 role=brain wall_ms=1784244002085 mono_ms=8306285 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10092 role=brain wall_ms=1784244002085 mono_ms=8306285 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10093 role=brain wall_ms=1784244002085 mono_ms=8306285 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10095 role=brain wall_ms=1784244002086 mono_ms=8306286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10094 role=brain wall_ms=1784244002086 mono_ms=8306286 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10095 role=brain stream-subscriber stream=3876 wall_ms=1784244002086 mono_ms=8306286 event=stream-sub-attach stream=3876 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10094 role=brain stream-subscriber stream=3877 wall_ms=1784244002086 mono_ms=8306287 event=stream-sub-attach stream=3877 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10094 role=brain stream-subscriber stream=3877 wall_ms=1784244002087 mono_ms=8306288 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10096 role=brain wall_ms=1784244002087 mono_ms=8306288 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10096 role=brain wall_ms=1784244002087 mono_ms=8306288 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10095 role=brain stream-subscriber stream=3876 wall_ms=1784244002090 mono_ms=8306291 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10097 role=brain wall_ms=1784244002090 mono_ms=8306291 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10097 role=brain wall_ms=1784244002090 mono_ms=8306291 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10091 role=brain stream-subscriber stream=3875 wall_ms=1784244002095 mono_ms=8306296 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10098 role=brain wall_ms=1784244002096 mono_ms=8306296 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10098 role=brain wall_ms=1784244002096 mono_ms=8306296 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10099 role=brain wall_ms=1784244002398 mono_ms=8306599 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10099 role=brain wall_ms=1784244002399 mono_ms=8306599 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10100 role=brain wall_ms=1784244007443 mono_ms=8311643 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10100 role=brain wall_ms=1784244007443 mono_ms=8311643 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:c8939d2f12b7488cf658a694b500f2da3ab32fa478dfe078557a862534baa573:submit-dial exceeded the 10s bound (peer unresponsive)\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=10101 role=brain wall_ms=1784244012486 mono_ms=8316686 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10101 role=brain wall_ms=1784244012486 mono_ms=8316686 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784244013181 mono_ms=8317382 event=stream-sub-attach stream=3880 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10102 role=brain wall_ms=1784244017036 mono_ms=8321237 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10102 role=brain wall_ms=1784244017037 mono_ms=8321237 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10103 role=brain wall_ms=1784244017038 mono_ms=8321238 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10103 role=brain stream-subscriber stream=3882 wall_ms=1784244017038 mono_ms=8321238 event=stream-sub-attach stream=3882 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10103 role=brain stream-subscriber stream=3882 wall_ms=1784244017047 mono_ms=8321248 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10104 role=brain wall_ms=1784244017047 mono_ms=8321248 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10104 role=brain wall_ms=1784244017047 mono_ms=8321248 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10105 role=brain wall_ms=1784244017139 mono_ms=8321340 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10106 role=brain wall_ms=1784244017139 mono_ms=8321340 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10105 role=brain wall_ms=1784244017139 mono_ms=8321340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10106 role=brain wall_ms=1784244017139 mono_ms=8321340 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10107 role=brain wall_ms=1784244017140 mono_ms=8321341 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10107 role=brain stream-subscriber stream=3883 wall_ms=1784244017140 mono_ms=8321341 event=stream-sub-attach stream=3883 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10107 role=brain stream-subscriber stream=3883 wall_ms=1784244017144 mono_ms=8321345 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10109 role=brain wall_ms=1784244017144 mono_ms=8321345 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10109 role=brain wall_ms=1784244017145 mono_ms=8321345 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10108 role=brain wall_ms=1784244017151 mono_ms=8321351 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10108 role=brain stream-subscriber stream=3884 wall_ms=1784244017151 mono_ms=8321352 event=stream-sub-attach stream=3884 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10108 role=brain stream-subscriber stream=3884 wall_ms=1784244017153 mono_ms=8321354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10110 role=brain wall_ms=1784244017153 mono_ms=8321354 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10110 role=brain wall_ms=1784244017153 mono_ms=8321354 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10111 role=brain wall_ms=1784244017531 mono_ms=8321731 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10111 role=brain wall_ms=1784244017531 mono_ms=8321732 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10112 role=brain wall_ms=1784244022155 mono_ms=8326356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10112 role=brain wall_ms=1784244022155 mono_ms=8326356 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10113 role=brain stream-subscriber stream=3885 wall_ms=1784244022155 mono_ms=8326356 event=stream-sub-attach stream=3885 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10113 role=brain stream-subscriber stream=3885 wall_ms=1784244022155 mono_ms=8326356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10113 role=brain stream-subscriber stream=3885 wall_ms=1784244022163 mono_ms=8326364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10114 role=brain wall_ms=1784244022163 mono_ms=8326364 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10114 role=brain wall_ms=1784244022163 mono_ms=8326364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10115 role=brain wall_ms=1784244022574 mono_ms=8326775 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10115 role=brain wall_ms=1784244022574 mono_ms=8326775 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=10116 role=brain wall_ms=1784244027171 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10117 role=brain wall_ms=1784244027171 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10116 role=brain wall_ms=1784244027171 mono_ms=8331372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10117 role=brain wall_ms=1784244027171 mono_ms=8331372 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10118 role=brain stream-subscriber stream=3886 wall_ms=1784244027172 mono_ms=8331372 event=stream-sub-attach stream=3886 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10119 role=brain stream-subscriber stream=3887 wall_ms=1784244027172 mono_ms=8331372 event=stream-sub-attach stream=3887 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10119 role=brain stream-subscriber stream=3887 wall_ms=1784244027172 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10118 role=brain stream-subscriber stream=3886 wall_ms=1784244027172 mono_ms=8331372 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10118 role=brain stream-subscriber stream=3886 wall_ms=1784244027178 mono_ms=8331379 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10120 role=brain wall_ms=1784244027178 mono_ms=8331379 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10120 role=brain wall_ms=1784244027179 mono_ms=8331379 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10119 role=brain stream-subscriber stream=3887 wall_ms=1784244027180 mono_ms=8331381 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10121 role=brain wall_ms=1784244027181 mono_ms=8331381 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10121 role=brain wall_ms=1784244027181 mono_ms=8331381 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10122 role=brain wall_ms=1784244027616 mono_ms=8331817 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10122 role=brain wall_ms=1784244027617 mono_ms=8331817 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474801 id=ff1190830820ff6200c2cc91ed086f96be9a43e3a213fd7f89de47cd42141918 addr=EndpointAddr { id: PublicKey(ff1190830820ff6200c2cc91ed086f96be9a43e3a213fd7f89de47cd42141918), addrs: {Ip(100.68.35.65:56482), Ip(192.168.1.81:56482)} }\nPAIR_MEET_UP:SPT_DEV step=59474801 id=3148450cf726ca15c113b2acef358728b6a9effc4e30c1dcc311321547aad4e1 addr=EndpointAddr { id: PublicKey(3148450cf726ca15c113b2acef358728b6a9effc4e30c1dcc311321547aad4e1), addrs: {Ip(100.68.35.65:56483), Ip(192.168.1.81:56483)} }\nCONN_LIFECYCLE: conn=10123 role=brain wall_ms=1784244032190 mono_ms=8336391 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10123 role=brain wall_ms=1784244032190 mono_ms=8336391 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10124 role=brain wall_ms=1784244032191 mono_ms=8336392 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10124 role=brain stream-subscriber stream=3888 wall_ms=1784244032191 mono_ms=8336392 event=stream-sub-attach stream=3888 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10124 role=brain stream-subscriber stream=3888 wall_ms=1784244032232 mono_ms=8336432 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10125 role=brain wall_ms=1784244032232 mono_ms=8336432 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10125 role=brain wall_ms=1784244032232 mono_ms=8336432 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10126 role=brain wall_ms=1784244032662 mono_ms=8336863 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10126 role=brain wall_ms=1784244032662 mono_ms=8336863 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10127 role=brain wall_ms=1784244037706 mono_ms=8341906 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10127 role=brain wall_ms=1784244037706 mono_ms=8341906 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10128 role=brain wall_ms=1784244041404 mono_ms=8345604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10128 role=brain wall_ms=1784244041404 mono_ms=8345604 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10129 role=brain stream-subscriber stream=3892 wall_ms=1784244041404 mono_ms=8345604 event=stream-sub-attach stream=3892 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10129 role=brain stream-subscriber stream=3892 wall_ms=1784244041404 mono_ms=8345604 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10129 role=brain stream-subscriber stream=3892 wall_ms=1784244041404 mono_ms=8345605 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10130 role=brain wall_ms=1784244041404 mono_ms=8345605 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10130 role=brain wall_ms=1784244041405 mono_ms=8345605 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10131 role=brain wall_ms=1784244041506 mono_ms=8345706 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10131 role=brain wall_ms=1784244041506 mono_ms=8345706 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10132 role=brain stream-subscriber stream=3893 wall_ms=1784244041506 mono_ms=8345707 event=stream-sub-attach stream=3893 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10132 role=brain stream-subscriber stream=3893 wall_ms=1784244041506 mono_ms=8345707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10132 role=brain stream-subscriber stream=3893 wall_ms=1784244041507 mono_ms=8345707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10133 role=brain wall_ms=1784244041507 mono_ms=8345707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10133 role=brain wall_ms=1784244041507 mono_ms=8345707 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10134 role=brain wall_ms=1784244042121 mono_ms=8346322 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10134 role=brain wall_ms=1784244042122 mono_ms=8346322 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10135 role=brain wall_ms=1784244042123 mono_ms=8346323 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10135 role=brain stream-subscriber stream=3894 wall_ms=1784244042123 mono_ms=8346323 event=stream-sub-attach stream=3894 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10135 role=brain stream-subscriber stream=3894 wall_ms=1784244042128 mono_ms=8346328 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10136 role=brain wall_ms=1784244042128 mono_ms=8346328 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10136 role=brain wall_ms=1784244042128 mono_ms=8346328 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10137 role=brain wall_ms=1784244042224 mono_ms=8346424 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10137 role=brain wall_ms=1784244042224 mono_ms=8346424 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10138 role=brain wall_ms=1784244042225 mono_ms=8346425 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10138 role=brain stream-subscriber stream=3895 wall_ms=1784244042225 mono_ms=8346425 event=stream-sub-attach stream=3895 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10138 role=brain stream-subscriber stream=3895 wall_ms=1784244042227 mono_ms=8346428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10139 role=brain wall_ms=1784244042227 mono_ms=8346428 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10139 role=brain wall_ms=1784244042227 mono_ms=8346428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10140 role=brain wall_ms=1784244042735 mono_ms=8346936 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10140 role=brain wall_ms=1784244042735 mono_ms=8346936 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10141 role=brain stream-subscriber stream=3896 wall_ms=1784244042736 mono_ms=8346936 event=stream-sub-attach stream=3896 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10141 role=brain stream-subscriber stream=3896 wall_ms=1784244042736 mono_ms=8346936 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10141 role=brain stream-subscriber stream=3896 wall_ms=1784244042736 mono_ms=8346936 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10142 role=brain wall_ms=1784244042736 mono_ms=8346937 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10142 role=brain wall_ms=1784244042736 mono_ms=8346937 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10143 role=brain wall_ms=1784244042751 mono_ms=8346951 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10143 role=brain wall_ms=1784244042751 mono_ms=8346951 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10144 role=brain wall_ms=1784244047241 mono_ms=8351442 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10144 role=brain wall_ms=1784244047241 mono_ms=8351442 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10145 role=brain wall_ms=1784244047246 mono_ms=8351447 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10145 role=brain stream-subscriber stream=3897 wall_ms=1784244047246 mono_ms=8351447 event=stream-sub-attach stream=3897 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10145 role=brain stream-subscriber stream=3897 wall_ms=1784244047258 mono_ms=8351458 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10146 role=brain wall_ms=1784244047258 mono_ms=8351459 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10146 role=brain wall_ms=1784244047258 mono_ms=8351459 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10147 role=brain wall_ms=1784244047795 mono_ms=8351995 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10147 role=brain wall_ms=1784244047795 mono_ms=8351995 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nREGISTRY_EVICT:BIGNET: 2 row(s) from silent node(s)\nCONN_LIFECYCLE: conn=10148 role=brain wall_ms=1784244052392 mono_ms=8356592 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10148 role=brain wall_ms=1784244052392 mono_ms=8356592 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244052392 mono_ms=8356592 event=stream-sub-attach stream=3898 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244052392 mono_ms=8356592 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10150 role=brain wall_ms=1784244052855 mono_ms=8357056 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10150 role=brain wall_ms=1784244052856 mono_ms=8357056 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10151 role=brain wall_ms=1784244057914 mono_ms=8362114 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10151 role=brain wall_ms=1784244057914 mono_ms=8362114 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474802 id=d275ca0e94e7870fc2a5e74c39b624fe9d1fcb00be085119fa841a8e5efe5006 addr=EndpointAddr { id: PublicKey(d275ca0e94e7870fc2a5e74c39b624fe9d1fcb00be085119fa841a8e5efe5006), addrs: {Ip(100.68.35.65:56622), Ip(192.168.1.81:56622)} }\nPAIR_MEET_UP:BIGNET step=59474802 id=663dc658569a0a494a272cf8d5477db81946be5a5cc16e4ac03cf75e24e08fc8 addr=EndpointAddr { id: PublicKey(663dc658569a0a494a272cf8d5477db81946be5a5cc16e4ac03cf75e24e08fc8), addrs: {Ip(100.68.35.65:56628), Ip(192.168.1.81:56628)} }\nCONN_LIFECYCLE: conn=10152 role=brain wall_ms=1784244063056 mono_ms=8367256 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10152 role=brain wall_ms=1784244063056 mono_ms=8367256 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_WRITE_POISONED: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244067399 mono_ms=8371599 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=10149 role=brain stream-subscriber stream=3898 wall_ms=1784244067399 mono_ms=8371599 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10153 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10154 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10155 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10156 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10153 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10157 role=brain wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10154 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10155 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10156 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10157 role=brain wall_ms=1784244067505 mono_ms=8371705 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244067505 mono_ms=8371705 event=stream-sub-attach stream=3903 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10161 role=brain stream-subscriber stream=3902 wall_ms=1784244067505 mono_ms=8371705 event=stream-sub-attach stream=3902 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10161 role=brain stream-subscriber stream=3902 wall_ms=1784244067505 mono_ms=8371705 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10160 role=brain wall_ms=1784244067507 mono_ms=8371707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10159 role=brain wall_ms=1784244067507 mono_ms=8371707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10160 role=brain stream-subscriber stream=3901 wall_ms=1784244067507 mono_ms=8371707 event=stream-sub-attach stream=3901 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10159 role=brain stream-subscriber stream=3899 wall_ms=1784244067507 mono_ms=8371707 event=stream-sub-attach stream=3899 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10162 role=brain wall_ms=1784244067507 mono_ms=8371707 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10162 role=brain stream-subscriber stream=3900 wall_ms=1784244067507 mono_ms=8371708 event=stream-sub-attach stream=3900 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10159 role=brain stream-subscriber stream=3899 wall_ms=1784244067511 mono_ms=8371711 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10163 role=brain wall_ms=1784244067511 mono_ms=8371711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10163 role=brain wall_ms=1784244067511 mono_ms=8371712 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10162 role=brain stream-subscriber stream=3900 wall_ms=1784244067515 mono_ms=8371715 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10164 role=brain wall_ms=1784244067515 mono_ms=8371716 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10164 role=brain wall_ms=1784244067515 mono_ms=8371716 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10160 role=brain stream-subscriber stream=3901 wall_ms=1784244067524 mono_ms=8371724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10165 role=brain wall_ms=1784244067524 mono_ms=8371724 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10165 role=brain wall_ms=1784244067524 mono_ms=8371724 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10166 role=brain wall_ms=1784244068112 mono_ms=8372313 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10166 role=brain wall_ms=1784244068112 mono_ms=8372313 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10167 role=brain wall_ms=1784244072335 mono_ms=8376535 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10168 role=brain wall_ms=1784244072335 mono_ms=8376535 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10167 role=brain wall_ms=1784244072335 mono_ms=8376535 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10168 role=brain wall_ms=1784244072335 mono_ms=8376535 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10169 role=brain wall_ms=1784244072336 mono_ms=8376537 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10169 role=brain stream-subscriber stream=3904 wall_ms=1784244072336 mono_ms=8376537 event=stream-sub-attach stream=3904 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10169 role=brain stream-subscriber stream=3904 wall_ms=1784244072341 mono_ms=8376542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10171 role=brain wall_ms=1784244072342 mono_ms=8376542 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10171 role=brain wall_ms=1784244072342 mono_ms=8376542 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10170 role=brain wall_ms=1784244072344 mono_ms=8376544 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10170 role=brain stream-subscriber stream=3905 wall_ms=1784244072344 mono_ms=8376544 event=stream-sub-attach stream=3905 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10170 role=brain stream-subscriber stream=3905 wall_ms=1784244072346 mono_ms=8376546 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10172 role=brain wall_ms=1784244072346 mono_ms=8376546 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10172 role=brain wall_ms=1784244072346 mono_ms=8376546 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10173 role=brain wall_ms=1784244073159 mono_ms=8377359 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10173 role=brain wall_ms=1784244073159 mono_ms=8377359 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10174 role=brain wall_ms=1784244077477 mono_ms=8381678 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10174 role=brain wall_ms=1784244077478 mono_ms=8381678 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10175 role=brain wall_ms=1784244077479 mono_ms=8381679 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10175 role=brain stream-subscriber stream=3906 wall_ms=1784244077479 mono_ms=8381679 event=stream-sub-attach stream=3906 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10175 role=brain stream-subscriber stream=3906 wall_ms=1784244077874 mono_ms=8382074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10176 role=brain wall_ms=1784244077874 mono_ms=8382074 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10176 role=brain wall_ms=1784244077874 mono_ms=8382074 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10177 role=brain wall_ms=1784244078206 mono_ms=8382406 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10177 role=brain wall_ms=1784244078206 mono_ms=8382406 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10178 role=brain wall_ms=1784244082619 mono_ms=8386819 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10178 role=brain wall_ms=1784244082619 mono_ms=8386819 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244082619 mono_ms=8386819 event=stream-sub-attach stream=3907 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244082619 mono_ms=8386819 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10180 role=brain wall_ms=1784244083264 mono_ms=8387464 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10180 role=brain wall_ms=1784244083264 mono_ms=8387464 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10181 role=brain wall_ms=1784244088327 mono_ms=8392527 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10181 role=brain wall_ms=1784244088327 mono_ms=8392527 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:BIGNET step=59474803 id=1fa80028d461a91f14cbc9c51d1f4827e12462db551ca973dcf66a89802fa778 addr=EndpointAddr { id: PublicKey(1fa80028d461a91f14cbc9c51d1f4827e12462db551ca973dcf66a89802fa778), addrs: {Ip(100.68.35.65:52279), Ip(192.168.1.81:52279)} }\nPAIR_MEET_UP:SPT_DEV step=59474803 id=d62d7d85ca101584ff9f2f94814744db56d1ebe71818530861319e142c728247 addr=EndpointAddr { id: PublicKey(d62d7d85ca101584ff9f2f94814744db56d1ebe71818530861319e142c728247), addrs: {Ip(100.68.35.65:52285), Ip(192.168.1.81:52285)} }\nCONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10182 role=brain wall_ms=1784244093410 mono_ms=8397610 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_WRITE_POISONED: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 — physical broker conn retired: a write exceeded its 15000ms bound; in-flight I/O aborted, conn never reused [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\nCONN_LIFECYCLE: conn=10179 role=brain stream-subscriber stream=3907 wall_ms=1784244097627 mono_ms=8401827 event=transport-close poisoned=true timed_out=true [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10183 role=brain wall_ms=1784244097732 mono_ms=8401932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10184 role=brain wall_ms=1784244097732 mono_ms=8401932 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244097733 mono_ms=8401933 event=stream-sub-attach stream=3908 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244097733 mono_ms=8401933 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10186 role=brain wall_ms=1784244097734 mono_ms=8401934 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10186 role=brain stream-subscriber stream=3909 wall_ms=1784244097734 mono_ms=8401934 event=stream-sub-attach stream=3909 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10186 role=brain stream-subscriber stream=3909 wall_ms=1784244097743 mono_ms=8401943 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10187 role=brain wall_ms=1784244097743 mono_ms=8401943 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10187 role=brain wall_ms=1784244097743 mono_ms=8401943 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10188 role=brain wall_ms=1784244098469 mono_ms=8402669 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10188 role=brain wall_ms=1784244098469 mono_ms=8402669 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10161 role=brain stream-subscriber stream=3902 wall_ms=1784244102367 mono_ms=8406567 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10189 role=brain wall_ms=1784244102368 mono_ms=8406568 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10189 role=brain wall_ms=1784244102368 mono_ms=8406568 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3907:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=10185 role=brain stream-subscriber stream=3908 wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10190 role=brain wall_ms=1784244102378 mono_ms=8406578 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nDISPATCH:3898:Failed(\"failed to fill whole buffer\")\nCONN_LIFECYCLE: conn=10158 role=brain stream-subscriber stream=3903 wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10191 role=brain wall_ms=1784244102386 mono_ms=8406586 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10192 role=brain wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10193 role=brain wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10192 role=brain wall_ms=1784244102973 mono_ms=8407173 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10193 role=brain wall_ms=1784244102973 mono_ms=8407173 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10194 role=brain stream-subscriber stream=3898 wall_ms=1784244102973 mono_ms=8407173 event=stream-sub-attach stream=3898 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10195 role=brain stream-subscriber stream=3907 wall_ms=1784244102973 mono_ms=8407173 event=stream-sub-attach stream=3907 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10194 role=brain stream-subscriber stream=3898 wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10195 role=brain stream-subscriber stream=3907 wall_ms=1784244102973 mono_ms=8407173 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=10195 role=brain stream-subscriber stream=3907 wall_ms=1784244102987 mono_ms=8407187 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]","startLine":24719,"lineNumbers":[24719,24720,24721,24722,24723,24724,24725,24726,24727,24728,24729,24730,24731,24732,24733,24734,24735,24736,24737,24738,24739,24740,24741,24742,24743,24744,24745,24746,24747,24748,24749,24750,24751,24752,24753,24754,24755,24756,24757,24758,24759,24760,24761,24762,24763,24764,24765,24766,24767,24768,24769,24770,24771,24772,24773,24774,24775,24776,24777,24778,24779,24780,24781,24782,24783,24784,24785,24786,24787,24788,24789,24790,24791,24792,24793,24794,24795,24796,24797,24798,24799,24800,24801,24802,24803,24804,24805,24806,24807,24808,24809,24810,24811,24812,24813,24814,24815,24816,24817,24818,24819,24820,24821,24822,24823,24824,24825,24826,24827,24828,24829,24830,24831,24832,24833,24834,24835,24836,24837,24838,24839,24840,24841,24842,24843,24844,24845,24846,24847,24848,24849,24850,24851,24852,24853,24854,24855,24856,24857,24858,24859,24860,24861,24862,24863,24864,24865,24866,24867,24868,24869,24870,24871,24872,24873,24874,24875,24876,24877,24878,24879,24880,24881,24882,24883,24884,24885,24886,24887,24888,24889,24890,24891,24892,24893,24894,24895,24896,24897,24898,24899,24900,24901,24902,24903,24904,24905,24906,24907,24908,24909,24910,24911,24912,24913,24914,24915,24916,24917,24918,24919,24920,24921,24922,24923,24924,24925,24926,24927,24928,24929,24930,24931,24932,24933,24934,24935,24936,24937,24938,24939,24940,24941,24942,24943,24944,24945,24946,24947,24948,24949,24950,24951,24952,24953,24954,24955,24956,24957,24958,24959,24960,24961,24962,24963,24964,24965,24966,24967,24968,24969,24970,24971,24972,24973,24974,24975,24976,24977,24978,24979,24980,24981,24982,24983,24984,24985,24986,24987,24988,24989,24990,24991,24992,24993,24994,24995,24996,24997,24998,24999,25000,25001,25002,25003,25004,25005,25006,25007,25008,25009,25010,25011,25012,25013,25014,25015,25016,25017,25018,25019,25020,25021,25022,25023,25024,25025,25026,25027,25028,25029,25030,25031,25032,25033,25034,25035,25036,25037,25038,25039,25040,25041,25042,25043,25044,25045,25046,25047,25048,25049,25050,25051,25052,25053]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":383,"totalBytes":51195,"outputLines":335,"outputBytes":51195,"shownRange":{"start":24719,"end":25053},"nextOffset":25054}}},"isError":false,"timestamp":1784247455433}}
{"type":"message","id":"be9f0728","parentId":"45702403","timestamp":"2026-07-17T00:17:57.842Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Analyzing dispatch failure timing discrepancies**\n\n**Designing live latency probe approach**\n\n**Planning synchronized runtime status reads**"},{"type":"thinking","thinking":"**Verifying deployed broker version**"},{"type":"toolCall","id":"call_8PrGO0V9yCpMbztHQGKHP6np|fc_05a4d8ea8a10ef0b016a5974b5c8d88198b1387b729d4a495e","name":"grep","arguments":{"i":"Resolving deployed executable hash","pattern":"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3","path":"C:/Users/decid/AppData/Local/spt-core;.","selector":null,"case":true,"gitignore":false,"skip":null}},{"type":"toolCall","id":"call_c7cI6tNA4YzjNZCMJVvUBozd|fc_05a4d8ea8a10ef0b016a5974b5c8ec819892c6ad2b1bbb4378","name":"read","arguments":{"i":"Reading latest runtime tail","path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","selector":"36400-36550"}},{"type":"toolCall","id":"call_hZdG7RvU7NXhTuZ5RdD3upCj|fc_05a4d8ea8a10ef0b016a5974b5c8f48198bbb9f759a68edb6b","name":"read","arguments":{"i":"Refreshing runtime heartbeat","path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json","selector":"raw"}},{"type":"toolCall","id":"call_9skxmbWo92Ze2YZaq5lGFeRo|fc_05a4d8ea8a10ef0b016a5974b5c8f88198ad9aec065549c85b","name":"read","arguments":{"i":"Refreshing daemon PID","path":"C:/Users/decid/AppData/Local/spt-core/daemon.pid","selector":"raw"}},{"type":"toolCall","id":"call_20cqCd605DsunQxeOxvpBT3x|fc_05a4d8ea8a10ef0b016a5974b5c9008198ab3a7282838513d2","name":"read","arguments":{"i":"Refreshing brain readiness","path":"C:/Users/decid/AppData/Local/spt-core/brain.ready","selector":"raw"}},{"type":"toolCall","id":"call_vcr50Mt1T86ULIxQ8eYBwCkn|fc_05a4d8ea8a10ef0b016a5974b5c9048198b69825da5253ae02","name":"read","arguments":{"i":"Reading status JSON fields","path":"crates/spt/src/cli.rs","selector":"4130-4195,4348-4460,4470-4520"}},{"type":"toolCall","id":"call_2wg5CcStKgqGQw3XzG1TRWta|fc_05a4d8ea8a10ef0b016a5974b5c9088198b73e0008143ec32a","name":"irc","arguments":{"i":"Requesting regression relation","op":"send","to":"V034DiffRca","message":"Need final v0.33→v0.34 relation soon. Live v0.34 shows repeated stream-subscriber conn attach→exact 15s CONN_WRITE_POISONED→~20s DISPATCH failed/retry. Did 0.34 introduce/magnify this or expose preexisting issue? Send source-grounded answer.","replyTo":null,"await":false,"from":null,"timeoutMs":null,"peek":null}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":40600,"output":1092,"cacheRead":148992,"cacheWrite":0,"totalTokens":190684,"reasoningTokens":646,"cost":{"input":0.203,"output":0.03276,"cacheRead":0.07449599999999999,"cacheWrite":0,"total":0.31025600000000003}},"stopReason":"toolUse","timestamp":1784247455443,"responseId":"resp_05a4d8ea8a10ef0b016a59749fa4b08198a6eeb4726a5b51c5","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a5974a1e79c81988702d68e2ac69c93","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXSrUma1IGM61iEndykyvFk8Ditq5XQNZCU0XG7in3XRSBklK5AtZzvUDrB-oLCEZaoq0JxPMi8Qcx1WnToy1RtEJdBL1XXtgpFKlr6oHdHtUfyAMJM-EQJqUCM29b1VH2dLbS8kiYIcceUeA_BOqZXO7swUaq32J7kyM2CP0k20d17-saJ39KyLVavoQcpNeJAA2Tk4kvGHwvl5XabbbcP0Zt60oRGHNt0wYh6-AuqLOHrJVMYoqBHMlpROT7e_Wg3EiNMLqONi1PKMFNo2za27GBHZ2mHBzO4IudI1xa4yKcikgZBOzKQaVOjGtM_zvz02t-FrzLcTAX2lNo_TIxMQBdc0GXL3fKchWaHNMiJcgFkLmVhoThR3ebr0BHLDixqWe9Rh1I7TnLMRhcaoCwUFl9pdDnMUdvtsM3M7RHBWM7dJr88EC1S1mHNlU55cHBXHAOGbNZAi76vTywxCpP8t8To-h4STG2QbESmIGG7ICUndMj6fIPW8s9s92Cnfs2azSk76Oi30PqOO00cvVF9aQ9tLu1kqAUGvEh9i2DwC3c9GpJ58p1d9Lva0hNqkC3CGnw77l1YIWf1RohPsePu-Hva4gOmIEJtf7JtO_U-R8KbSyzuRQMIKJQpwbzCBBElFQ9s2-it9ePqTFy4-Vwl--SblxOsBay3Zdh2L_wIlwq-velTfoX7RSH5kg-tCcfHj2_wmt5Bj7eZgr3G92Mbq0aIghSA3NAqDiR5FKPi3xGfBg0hYFLeTYID9sYHdeVQ53T5KfSGHwLFnf6KNOs_OBML7xw2QSlwq0PqU1HAr0FpVHS0VwepVWui47Qee8UDGzV8VtsAvXYp1FCKVMgXOt_GaW32lnQXA1Rmr5iEq2k6M7GxEN8xWGZUxqD3febb88hKJ9x4t9jTYgU8JzxtEDnxcbXpl7UF1dvbFzOkGLNS6gRmNHhctqeGkPuZOaZLueBlt2LfbAO4FHpjpNLEYZaPSF5znjTvdQbT4eZLBe2zcFPclTXkjPKxW9aasNHbs_Y8UCUmToziZFnx7dC9HWeUVh0pOemLZ1VsVF63tGNG3E4RtR2tUxuC9Fh-K0X4JaBzzaQoLqy5Krlk7PDsyvHwPTyW1uUyg7rEVtloJKyY6f4xfEDzkFTweoRgs8EDCl30s7f_m-JHkyowUtLjuhGi2AvVrCdwuwSWNvPPFZT4Or1xZx2gxcPDkB8JjQ6S6rPPeSOfgaKv7ZTd6CCi7YAybVQLRhdeoWeb6wX2t9BxpJ0Y_9Z1O5MUsIV2-0zD9n-wgAsEcGFN_rNY-YWEieQsmOxZpXEM9-Tg7nv1Ey7TVeV2iildtNkc8GnjY9_gkIrvb9T_88urH_5-LJKEO0mu8-VpEUVNamus9uvriQ0zLfpOxyMFYlm4_6epWtul00sbinFLyhXTqq2iLM894ozXyta6cBfdslsVcQ-e55rqN3LJlxwU9CGF1TOY-d33sL0rdB908zDrop4qNQuV7a9w2AhuG6LMmJFjeqzCk9g21nJbQCC6OKApAhzuBBNAtvpuKnBE7EI7tD2XHhCRE-FVahF8CdkjGFaomgC4ybQGzxhZnnnrrb0oGOyfj-8IL0DcNf_J5m2UphzXrXMWsA0JAUUIjUKAsuW_ptmzpPmMOFVd2B5jUsA5B3_IX8gzR_yUK-btB8RnRLRnNOk82g_VYBr73peQcgZBHnWooGDvDZYsSmUv0Naosujw27H4jHT6YE-WesX6_-osItKsqwXo6czaC3I1kI_-UnQEwOPTHbk4i3AF8-c0ulKvnlN6YhfZXdco_8xgZondikOIb6iV4xDZNmqwxhZdnAmBG66hhypA2gIUvW-fwYj4ax5mjQW_YH7zDQHrXCNmbglxoR12VtVsrqmwQvwMOO3Wt29LCiatF9M3Xyqky3cvblqkjXqCavWafz4i0T0HqGCsDgXti_CxB9CeuoIhLKGw6IyLoINHLlsxDw-EJc_sG81MpTXO9wpv05e2Fs2KS-X-iH5Biw7PWZKMFlhqxpL30M2qI6lMbXpH7DSIfbtWivUBkDWMwfqP0RCi1OoqX-N64wPJFtuV4VrS5OH-3_ktHrpmw9tR3768iqZb9JtvVKSElcmtYtWq0ttnvzHUfPTUxNGxS31h2Hjbfs7tHhyLpuIdKrZTouka7IE0C9iub8jgZTK_dQ41bMESDJXr4ed5iyAgFtmvozS4PEDEowu2paZim-ni4yuRLdza4t73OUVvIOlIboAbd_fLS19xGP4fJIQZdyP4zyTYWFb7eI3RelaaFDax5y56UW_66Uup1E-xQtWsZZGbYZYyTmReQWpwqJ02YYkUNNSMo9roaE9XIdQJvAYcFuNDm2xBgx5l73Xnft3hVYeBXUPV5r-Raz9AC30yO2V3bvT_PaE6z92zvw-ZK0lZ-JmkrpBlL-BSeiCZMyAg_pZF-D9n7WoMh4nmsLM2xs9AypHpAY2oGBcY6-ELLRwHKz5AjTWkr8fMkQOkHJNcjM_Mv8dlXZl85Y6CfgcHtSFHXCCJTRZwNl5sz1KD-35tIwNsIIrOAo-ZvA7TzikSDi5j-FuqNnTAzSFbYGuz_0Minthho3mVVvGpnkHfvVElOc8xURCyVHbl8OjV9EijskoI3ec6eA2mb6LcALzjCMHg_fsht1Rt2EbukFrWRqIJcuSRp_yfgf2XFuF2rsJL4RoTZU-frkUPCUarqcSSehyPLWtDZba4cpJB4FdMU8EuYvjXmI4WCTq7_UebPD65KgUs-94sMuqvFi-XqUNFz0O2_ZTRXWpPSLSGPw0AvHCdvRT91lgiklhFvHNXTBKqSewL-bNi0hDG8RJBOXcep2anXvV5hwtvVA-EakN4VWPo1g_lvg07GJ12euRnj0-pYBaRbWRwtEIGUpdM0gTjuf7fKwe-mq6I9vbEGEDH7_j-1mTF-1b6EG6L3B8dnXu16-JZEIvmDL4PaMqWcfJ0ySwD7BCWSo8PbmqU2K6u25BYFP9kQPrGVW7M0zRLDtgsYq-Se_KB4hIc6DipjAzjdbcjFrEC4seOVxBhqmLoT24AjHk0hmiOooqLNKJztfMuxfXT-QL28zea8kXx6bZ4vyAjfMyB9KkRJ4oIOjYk4NW5n5tEl2jJ1mxyFUFlBgFfihVKzpWiLl05FpjaXWtkMN7OgIN80pPqm3XNYF74pUMC2WYMnL5r_yrlnV5wo9YU4-88kbgA_OKg53c7bvxUaqtptafuN5QPqp7uiARgmnpRhqoKyiXOQzBnIpTXcxTqVidMni8k55TDfTJNOZZB4np4qxwj6BE6jUxqXQAByHAniv_Ys1CSS0ZJmpONaiiW1gZuztVDaSugpCojPlp7K4z1PhRjq2aWymoCgm7m-7c29P_RGUQ7mGD2qjTDiNYznTnH-n-9n50ZpzvMYZTKFB85U76pu1Ok9vpYScHhdHj1mfapy1gdEWZxW_oRoAKqsuk9FRUhAlwdi34Hj8Vs3uu3sA8AYwUGmU2sJpDpcpHBINW7kTT02zsXQiyPlJt8ZxYknmftLIqOrN4kq3HpF0TE0zoHjUB0nualX4nyg_9hxzdez1IvhQJbqZhEq0byBKY4B0oAPadPAIcoITuidYORGmZLBLLmM02WkUV2QLbUmG5Q5PTRaPxRgZh5ZQUw607la5yTN2N4RL3J4Ym4Ia4ma6yB9agLYPxELh0HjiYu0-2_8G7hc2-u_zeNrHnVEoafw9P-anUROnAn6yUSGKQgI2B8IJI55ZuPF4h7sv3QoanCNpW-S4zzJV6axXNXlFzofhxN3c3hIsObyBbzkUwxh8ssvtsRe-pbFv3HZr49tAQcNIV5absyGPQTYiX1hh8hPNjbEeJBvpBQh5XuC506X025PE9n2LTtkulCDKCxlaQ0cnn6kF5EpVRL6ZkoD4uXtPbgaR8LvmCuqbQ==","summary":[{"type":"summary_text","text":"**Analyzing dispatch failure timing discrepancies**"},{"type":"summary_text","text":"**Designing live latency probe approach**"},{"type":"summary_text","text":"**Planning synchronized runtime status reads**"}]},{"id":"rs_05a4d8ea8a10ef0b016a5974ab86048198b7f17fd039b2680e","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXS1HXqyJubmy3_aY09FSo2D_r22suBH0z09S8sGHHbVB9u8ssRh1E6f-2IDv36svmkGLwbFGn8qhHyrl72Tkk21f7pkY7oYcQgV5oRETCBC_pc34sx9Q-GvywK-Eq_3-M-8ZJtuHN1-y7xNMZSTldIT6FCzQQikaYcKvVn2DeRd50i_nyBoX6xuQfUthti6dqHPuS90HPKPVgB9mJ_XJ-rZnlGInYxge73wFgq3ZSvLc_9h7ll0w1EUL9bJlVk0wxlM3FVAwqABkGl7irk_ak80MiQ2oWVL2hkX6s_W6oiAphlkd0pk3UVblRJ0QA8G14-I3vLXgVV4naHKdl5beNRGmzrVJZQlRP0mzFE50jike8TJbCTyEg82XkA1heEHkJnGB-BJVdt539nF0GK0ZSmRaowd8R5KeCCRxJfIJA-BHkEb1oZymHft2WLlb22oBHT9EhmogpqOkNOEjpuhC3ClV7fhgz1Uz3UiJ3MYTA0esuj8O1hhED_bd-4xebdm3cNdqyCI00J2B5Y609neFD602Ta84PXhU6LecdrFf93jWdUwnUiQumwsxXHZib5CyQYM1eWbbfaMfXconzkIn4B1BJBqNXTh57wRjYxJgeDvJNCltmR-6YZkcupuqE8CLNI6QdkKgDNgkuy9UMFNgWYIjEKsaUXkequA6I348feGPtJJE7wp9U72CJ-VSxxHXMDU6mKqqegd8h5H8AMU1fCvH4icDWFmzXRJM-wRJJD7Sv6GIwKgcykCXmbGMU4gWNJLGVDannpLZ5K37rKLlDV4FBTgmiSeBByRYmVEZwU9Wr2AxR8AOxmoY0Cg6FomvlLYZMhwa3qSkhzM0hL7F6NY_mlXJX6OA4LZzt4UHvAc6QciwV5u6exBXr2Rr-nqr74KLJUOQvLOqsVik9bjKkiPBUFTEizTwBbkKCRKIPPiR3U1B4E8oGTmaUe_V8-EDGS4WDFpjK5V7qD4jnIVL6eEdC-4S7hIlEZlxnbjRGYNWU0FyYSdsGrB6MdpDG1Hz1OOd5JC93udSUPNZz4HCGPyBk0ykumrTumeA5RjvH9s4vjWThKG5FrR8ra1ALsXbEjiio-JSbxXtmqWs4Rv59HJPuiG_Rj6ytSv8y5TJy8tUWlYDMq7-EHM57u8jyPJBxjctNSs5dkyYCf0mCLNdQmpQU2NbFeeoIMKm6Tlz2SXSx4qieZj3vVSHZoY0Htf4sQrjkwKqwAk0Dyoj9dhTdgH00XJ-dWQD3ddKtLv5lxYxbDuJySX3m-Oc-EOUiCy9hJkH3tKlh1pyRN18RZnrFdq7fkjDkdJZZgtW4HYxPzsbVs79O6FK8aFlIa7T4Gp4_9zfdrVYVDFYnJ6gdqJLPjxTXP7ANVAIdO37pIar2tyB4K48CAHq0IsnhRBYSEIVKqGnnksPiMCimHFaQvYN5Kz1fv6oddi5EYVhQioMwzfYIlEVDUzXSGnlzLIyQNVNKeFwEIH4h7AENy5-3lRg1WH2iZYZDCJIluUleE1uXG2dewZkUetun5FXSFJK9q0iJtqGzX_RcdkcvwRa-QkjuL5SgVqQwOzNcKcMcxxZOXb7QP0R-_Z5ITaUF64emD6IuDc44uWpFOgg5VTJrDQTNVSksolsQJvoTUoeNIggyhQF8kSs4zP-KVp84OJTyxXmWYA14ulJbYU1GJygBxda1mbDg==","summary":[{"type":"summary_text","text":"**Verifying deployed broker version**"}]},{"id":"fc_05a4d8ea8a10ef0b016a5974b5c8d88198b1387b729d4a495e","type":"function_call","status":"completed","arguments":"{\"i\":\"Resolving deployed executable hash\",\"pattern\":\"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3\",\"path\":\"C:/Users/decid/AppData/Local/spt-core;.\",\"selector\":null,\"case\":true,\"gitignore\":false,\"skip\":null}","call_id":"call_8PrGO0V9yCpMbztHQGKHP6np","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a5974b5c8ec819892c6ad2b1bbb4378","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading latest runtime tail\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"selector\":\"36400-36550\"}","call_id":"call_c7cI6tNA4YzjNZCMJVvUBozd","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a5974b5c8f48198bbb9f759a68edb6b","type":"function_call","status":"completed","arguments":"{\"i\":\"Refreshing runtime heartbeat\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json\",\"selector\":\"raw\"}","call_id":"call_hZdG7RvU7NXhTuZ5RdD3upCj","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a5974b5c8f88198ad9aec065549c85b","type":"function_call","status":"completed","arguments":"{\"i\":\"Refreshing daemon PID\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/daemon.pid\",\"selector\":\"raw\"}","call_id":"call_9skxmbWo92Ze2YZaq5lGFeRo","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a5974b5c9008198ab3a7282838513d2","type":"function_call","status":"completed","arguments":"{\"i\":\"Refreshing brain readiness\",\"path\":\"C:/Users/decid/AppData/Local/spt-core/brain.ready\",\"selector\":\"raw\"}","call_id":"call_20cqCd605DsunQxeOxvpBT3x","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a5974b5c9048198b69825da5253ae02","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading status JSON fields\",\"path\":\"crates/spt/src/cli.rs\",\"selector\":\"4130-4195,4348-4460,4470-4520\"}","call_id":"call_vcr50Mt1T86ULIxQ8eYBwCkn","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a5974b5c9088198b73e0008143ec32a","type":"function_call","status":"completed","arguments":"{\"i\":\"Requesting regression relation\",\"op\":\"send\",\"to\":\"V034DiffRca\",\"message\":\"Need final v0.33→v0.34 relation soon. Live v0.34 shows repeated stream-subscriber conn attach→exact 15s CONN_WRITE_POISONED→~20s DISPATCH failed/retry. Did 0.34 introduce/magnify this or expose preexisting issue? Send source-grounded answer.\",\"replyTo\":null,\"await\":false,\"from\":null,\"timeoutMs\":null,\"peek\":null}","call_id":"call_2wg5CcStKgqGQw3XzG1TRWta","name":"irc"}]},"duration":22397.29429999739,"ttft":2476.408100001514,"contextSnapshot":{"promptTokens":189592,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_8PrGO0V9yCpMbztHQGKHP6np|fc_05a4d8ea8a10ef0b016a5974b5c8d88198b1387b729d4a495e","toolName":"grep","startedAt":"2026-07-17T00:17:57.843Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core;."},"intent":"Resolving deployed executable hash"},"id":"89be4fb4","parentId":"be9f0728","timestamp":"2026-07-17T00:17:57.843Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_c7cI6tNA4YzjNZCMJVvUBozd|fc_05a4d8ea8a10ef0b016a5974b5c8ec819892c6ad2b1bbb4378","toolName":"read","startedAt":"2026-07-17T00:17:57.843Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"},"intent":"Reading latest runtime tail"},"id":"c6a7f22d","parentId":"89be4fb4","timestamp":"2026-07-17T00:17:57.843Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_hZdG7RvU7NXhTuZ5RdD3upCj|fc_05a4d8ea8a10ef0b016a5974b5c8f48198bbb9f759a68edb6b","toolName":"read","startedAt":"2026-07-17T00:17:57.843Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json"},"intent":"Refreshing runtime heartbeat"},"id":"5db33784","parentId":"c6a7f22d","timestamp":"2026-07-17T00:17:57.843Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_9skxmbWo92Ze2YZaq5lGFeRo|fc_05a4d8ea8a10ef0b016a5974b5c8f88198ad9aec065549c85b","toolName":"read","startedAt":"2026-07-17T00:17:57.843Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/daemon.pid"},"intent":"Refreshing daemon PID"},"id":"b04173fb","parentId":"5db33784","timestamp":"2026-07-17T00:17:57.843Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_20cqCd605DsunQxeOxvpBT3x|fc_05a4d8ea8a10ef0b016a5974b5c9008198ab3a7282838513d2","toolName":"read","startedAt":"2026-07-17T00:17:57.843Z","args":{"path":"C:/Users/decid/AppData/Local/spt-core/brain.ready"},"intent":"Refreshing brain readiness"},"id":"36742b86","parentId":"b04173fb","timestamp":"2026-07-17T00:17:57.843Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_vcr50Mt1T86ULIxQ8eYBwCkn|fc_05a4d8ea8a10ef0b016a5974b5c9048198b69825da5253ae02","toolName":"read","startedAt":"2026-07-17T00:17:57.843Z","args":{"path":"crates/spt/src/cli.rs"},"intent":"Reading status JSON fields"},"id":"edfbdf3e","parentId":"36742b86","timestamp":"2026-07-17T00:17:57.843Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_2wg5CcStKgqGQw3XzG1TRWta|fc_05a4d8ea8a10ef0b016a5974b5c9088198b73e0008143ec32a","toolName":"irc","startedAt":"2026-07-17T00:17:57.843Z","intent":"Requesting regression relation"},"id":"ee5ee17a","parentId":"edfbdf3e","timestamp":"2026-07-17T00:17:57.843Z"}
{"type":"message","id":"947acf56","parentId":"ee5ee17a","timestamp":"2026-07-17T00:17:57.843Z","message":{"role":"toolResult","toolCallId":"call_2wg5CcStKgqGQw3XzG1TRWta|fc_05a4d8ea8a10ef0b016a5974b5c9088198b73e0008143ec32a","toolName":"irc","content":[{"type":"text","text":"Delivered to 1 peer(s):\n- V034DiffRca: injected"}],"details":{"op":"send","from":"LiveLogRca","to":"V034DiffRca","receipts":[{"to":"V034DiffRca","outcome":"injected"}]},"isError":false,"timestamp":1784247477843}}
{"type":"message","id":"c439a649","parentId":"947acf56","timestamp":"2026-07-17T00:17:58.005Z","message":{"role":"toolResult","toolCallId":"call_hZdG7RvU7NXhTuZ5RdD3upCj|fc_05a4d8ea8a10ef0b016a5974b5c8f48198bbb9f759a68edb6b","toolName":"read","content":[{"type":"text","text":"1784247477529"}],"details":{"displayContent":{"text":"1784247477529","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json"}}},"isError":false,"timestamp":1784247478004}}
{"type":"message","id":"eaae2bf7","parentId":"c439a649","timestamp":"2026-07-17T00:17:58.005Z","message":{"role":"toolResult","toolCallId":"call_vcr50Mt1T86ULIxQ8eYBwCkn|fc_05a4d8ea8a10ef0b016a5974b5c9048198b69825da5253ae02","toolName":"read","content":[{"type":"text","text":"/// REQ-CLI-2): daemon state (running/stopped + the peer-pump heartbeat —\n/// a stalled pump renders honestly, never implied-healthy), the member\n/// subnets, and this node's local endpoints. Read-only and ungated.\n// [impl->REQ-CLI-2]\n/// `spt daemon status` --json: the same facts the human view renders — daemon\n/// running + pid, network/pump liveness, the managing service, member subnet\n/// rows, and this node's local perches — copied into committed fields.\n// [impl->REQ-CLI-JSON]\n#[derive(serde::Serialize)]\nstruct DaemonStatusJson {\n    running: bool,\n    pid: Option<String>,\n    /// Net endpoint bound (the pump has a network to gossip on). `None` when\n    /// the daemon is down (not queried).\n    net_up: Option<bool>,\n    /// Peer-pump last-tick wall-clock ms (`None` = no heartbeat recorded).\n    pump_heartbeat_ms: Option<u64>,\n    /// The managing service label, if a registered service owns this daemon.\n    managed_by: Option<String>,\n    managed_active: Option<bool>,\n    subnets: Vec<DaemonSubnetJson>,\n    local_endpoints: Vec<LocalPerchJson>,\n    /// F-025: the version the RUNNING broker reports it was compiled at (its own\n    /// image), or `None` when the daemon is down / the broker predates the\n    /// self-report. Distinct from the installed CLI version.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    broker_image: Option<String>,\n    /// F-025: whether the running broker is on a DIFFERENT image than the\n    /// installed CLI (a `spt update apply` landed but the surviving daemon still\n    /// runs the previous version). `None` when the daemon is down.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    broker_stale: Option<bool>,\n    /// LIFECYCLE-TRUTH W2 observability rider: brain-subscriber stall-evicts since\n    /// broker boot (a controller detached for a suspended/black-holed brain conn).\n    /// `None` when the daemon is down or the broker is too old to report; `Some(0)`\n    /// = healthy, none evicted.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    stall_evict_count: Option<u64>,\n    /// Wall-ms of the most recent stall-evict (0 = none). Omitted when count is None.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    stall_evict_last_ms: Option<u64>,\n    /// PROJECT-INDEX W2 (ADR-0037): the index writer's observability sidecar —\n    /// generated time, source generation, pending refresh, last duration/error,\n    /// counts, cache hits/misses, stale reads, repairs, and the per-cycle\n    /// complexity counters (the CI-gate surface). `None` = no writer has ever\n    /// run on this home (index presence alone is not health — this block IS the\n    /// health surface). A plain file read: reported whether or not the daemon\n    /// is up (daemon-offline observability mirrors daemon-offline reads).\n    // [impl->REQ-PROJECT-INDEX-WRITER]\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    project_index: Option<spt_daemon::projwriter::IndexWriterStats>,\n    /// MESH-RECOVERY (ADR-0039 Decision 5, REQ-PUMP-STAGE-TRUTH): the pump's\n    /// reachability snapshot — live peer count, last successful dial, last\n    /// admitted registry update, all-peer-failure window, per-peer failing\n    /// stages. ADDITIVE (an N-1 reader ignores it); `None` = no snapshot on\n    /// this home yet.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    peer_health: Option<spt_daemon::pump::health::PumpHealth>,\n    /// The rendered verdict over `peer_health`: `idle` / `healthy` /\n    /// `connecting` / `degraded`. Omitted with it.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    peer_health_verdict: Option<String>,\n}\n\n/// One member subnet's count row in the daemon status view.\n// [impl->REQ-CLI-JSON]\n…\nfn cmd_daemon_status(json: bool) -> i32 {\n    // Daemon state: the socket ping is liveness truth (never the pid file).\n    let running = spt_daemon::is_running();\n    // [impl->REQ-CLI-JSON] Machine-readable view: assemble the same facts the\n    // human render below derives, then emit the DTO and return.\n    if json {\n        let pid = running\n            .then(|| {\n                std::fs::read_to_string(spt_daemon::daemon_pid_path())\n                    .ok()\n                    .map(|s| s.trim().to_string())\n                    .filter(|p| !p.is_empty())\n            })\n            .flatten();\n        // One broker handle answers net-status, the F-025 image query, and the W2\n        // stall-evict tally.\n        let (net_up, broker_image, broker_queried, stall_stats) = if running {\n            match spt_daemon::brain::Brain::cold_start(&spt_daemon::broker_socket_name(), now_ms()) {\n                Ok(mut b) => {\n                    let n = b.net_status().ok().map(|s| s.enabled).unwrap_or(true);\n                    let stall = b.stall_evicts().ok().flatten();\n                    // Ok(Some)=version / Ok(None)=old broker (both a successful\n                    // query) vs Err=couldn't query — keep them distinct so a\n                    // transient IPC failure does not read as a definite stale.\n                    match b.broker_image_version() {\n                        Ok(v) => (Some(n), v, true, stall),\n                        Err(_) => (Some(n), None, false, stall),\n                    }\n                }\n                Err(_) => (Some(true), None, false, None),\n            }\n        } else {\n            (None, None, false, None)\n        };\n        let (stall_evict_count, stall_evict_last_ms) = match stall_stats {\n            Some((c, l)) => (Some(c), Some(l)),\n            None => (None, None),\n        };\n        // [impl->REQ-UPDATE-RUNNING-IMAGE-SURFACE] stale is only DEFINITE after a\n        // successful query: None when the daemon is down OR the broker could not be\n        // queried (no false-positive true on a transient failure — doyle F-025 nit).\n        let broker_stale = (running && broker_queried)\n            .then(|| broker_image.as_deref() != Some(env!(\"CARGO_PKG_VERSION\")));\n        let pump_heartbeat_ms = if running {\n            spt_daemon::read_pump_heartbeat()\n        } else {\n            None\n        };\n        let svc = spt_daemon::service::platform_service();\n        let (managed_by, managed_active) = if svc.detected() {\n            (Some(svc.label().to_string()), Some(svc.is_active()))\n        } else {\n            (None, None)\n        };\n        let store = SubnetStore::load();\n        let mut subnets = Vec::new();\n        if !store.subnets.is_empty() {\n            let regs = crate::wansend::load_snapshots(&perch::identity_dir().join(\"registry\"));\n            let roster = spt_store::roster::RosterStore::load();\n            let own_hex = spt_store::nodeid::load_or_create()\n                .map(|i| i.public_key().to_hex())\n                .unwrap_or_default();\n            for row in subnet_status_rows(\n                &store,\n                &regs,\n                &roster,\n                Some(&own_hex).filter(|h| !h.is_empty()).map(|h| h.as_str()),\n                None,\n            ) {\n                subnets.push(DaemonSubnetJson {\n                    name: row.name,\n                    nodes: row.nodes,\n                    endpoints: row.endpoints,\n                });\n            }\n        }\n        let local_endpoints = roster::enumerate()\n            .into_iter()\n            .map(|p| LocalPerchJson {\n                id: p.id,\n                state: p.state,\n                address: p.address,\n                ready: p.ready,\n                alive: p.alive,\n                unbound: p.unbound,\n                // The project column is an `endpoint list` concern (#8); daemon-status\n                // does not derive it (avoids per-perch git cost here) — skip-if-none.\n                project: None,\n            })\n            .collect();\n        let peer_health = spt_daemon::read_pump_health();\n        let peer_health_verdict = peer_health\n            .as_ref()\n            .map(|h| peer_health_verdict_token(h).to_string());\n        return print_json(&DaemonStatusJson {\n            running,\n            pid,\n            net_up,\n            pump_heartbeat_ms,\n            managed_by,\n            managed_active,\n            subnets,\n            local_endpoints,\n            broker_image,\n            broker_stale,\n            stall_evict_count,\n            stall_evict_last_ms,\n            project_index: spt_daemon::projwriter::read_stats_at(\n                &spt_daemon::projwriter::stats_path(),\n            ),\n            peer_health,\n            peer_health_verdict,\n        });\n    }\n…\n        // Connection + pump liveness (M8 decision 23 leg 1; REQ-DAEMON-9): a\n        // net-LESS broker (net endpoint not bound — e.g. mid boot-race\n        // self-heal after the autostart beat the network up) surfaces the REAL\n        // cause, not a STALLED alarm read off a stale pre-boot heartbeat.\n        // One broker handle answers both net-status and the F-025 image query.\n        let (net_up, broker_image, stall_stats) = match spt_daemon::brain::Brain::cold_start(\n            &spt_daemon::broker_socket_name(),\n            now_ms(),\n        ) {\n            Ok(mut b) => {\n                let net_up = b.net_status().ok().map(|s| s.enabled).unwrap_or(true);\n                let stall = b.stall_evicts().ok().flatten();\n                let image = b.broker_image_version().ok().flatten();\n                (net_up, image, stall)\n            }\n            Err(_) => (true, None, None), // can't ask ⇒ don't false-alarm\n        };\n        let stale_after = 3 * spt_daemon::DaemonConfig::load()\n            .registry_pump_period\n            .as_millis() as u64;\n        print!(\n            \"{}\",\n            render_connection_lines(\n                net_up,\n                spt_daemon::read_pump_heartbeat(),\n                now_ms(),\n                stale_after,\n            )\n        );\n        // [impl->REQ-UPDATE-RUNNING-IMAGE-SURFACE] surface the RUNNING broker\n        // image beside the installed version (the daemon may have survived an\n        // apply and still run the previous binary).\n        println!(\n            \"{}\",\n            render_broker_image_line(broker_image.as_deref(), env!(\"CARGO_PKG_VERSION\"))\n        );\n        // [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE] W2 observability rider:\n        // surface brain-subscriber stall-evicts so a suspended/wedged brain that\n        // never returned is a diagnosable fact, not a silent absence.\n        if let Some(line) = render_stall_evict_line(stall_stats) {\n            println!(\"{line}\");\n        }\n        // [impl->REQ-PUMP-STAGE-TRUTH] peer reachability truth (ADR-0039): the\n        // 2026-07-10 sequester was invisible to every line above this one.\n        if let Some(line) =\n            render_peer_health_line(spt_daemon::read_pump_health().as_ref(), now_ms())\n        {\n            println!(\"{line}\");\n        }\n        // [impl->REQ-PROJECT-INDEX-WRITER] W2 observability: the materialized\n        // project index's writer health (index presence alone is not health).\n…\n}"}],"details":{"displayContent":{"text":"/// REQ-CLI-2): daemon state (running/stopped + the peer-pump heartbeat —\n/// a stalled pump renders honestly, never implied-healthy), the member\n/// subnets, and this node's local endpoints. Read-only and ungated.\n// [impl->REQ-CLI-2]\n/// `spt daemon status` --json: the same facts the human view renders — daemon\n/// running + pid, network/pump liveness, the managing service, member subnet\n/// rows, and this node's local perches — copied into committed fields.\n// [impl->REQ-CLI-JSON]\n#[derive(serde::Serialize)]\nstruct DaemonStatusJson {\n    running: bool,\n    pid: Option<String>,\n    /// Net endpoint bound (the pump has a network to gossip on). `None` when\n    /// the daemon is down (not queried).\n    net_up: Option<bool>,\n    /// Peer-pump last-tick wall-clock ms (`None` = no heartbeat recorded).\n    pump_heartbeat_ms: Option<u64>,\n    /// The managing service label, if a registered service owns this daemon.\n    managed_by: Option<String>,\n    managed_active: Option<bool>,\n    subnets: Vec<DaemonSubnetJson>,\n    local_endpoints: Vec<LocalPerchJson>,\n    /// F-025: the version the RUNNING broker reports it was compiled at (its own\n    /// image), or `None` when the daemon is down / the broker predates the\n    /// self-report. Distinct from the installed CLI version.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    broker_image: Option<String>,\n    /// F-025: whether the running broker is on a DIFFERENT image than the\n    /// installed CLI (a `spt update apply` landed but the surviving daemon still\n    /// runs the previous version). `None` when the daemon is down.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    broker_stale: Option<bool>,\n    /// LIFECYCLE-TRUTH W2 observability rider: brain-subscriber stall-evicts since\n    /// broker boot (a controller detached for a suspended/black-holed brain conn).\n    /// `None` when the daemon is down or the broker is too old to report; `Some(0)`\n    /// = healthy, none evicted.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    stall_evict_count: Option<u64>,\n    /// Wall-ms of the most recent stall-evict (0 = none). Omitted when count is None.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    stall_evict_last_ms: Option<u64>,\n    /// PROJECT-INDEX W2 (ADR-0037): the index writer's observability sidecar —\n    /// generated time, source generation, pending refresh, last duration/error,\n    /// counts, cache hits/misses, stale reads, repairs, and the per-cycle\n    /// complexity counters (the CI-gate surface). `None` = no writer has ever\n    /// run on this home (index presence alone is not health — this block IS the\n    /// health surface). A plain file read: reported whether or not the daemon\n    /// is up (daemon-offline observability mirrors daemon-offline reads).\n    // [impl->REQ-PROJECT-INDEX-WRITER]\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    project_index: Option<spt_daemon::projwriter::IndexWriterStats>,\n    /// MESH-RECOVERY (ADR-0039 Decision 5, REQ-PUMP-STAGE-TRUTH): the pump's\n    /// reachability snapshot — live peer count, last successful dial, last\n    /// admitted registry update, all-peer-failure window, per-peer failing\n    /// stages. ADDITIVE (an N-1 reader ignores it); `None` = no snapshot on\n    /// this home yet.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    peer_health: Option<spt_daemon::pump::health::PumpHealth>,\n    /// The rendered verdict over `peer_health`: `idle` / `healthy` /\n    /// `connecting` / `degraded`. Omitted with it.\n    #[serde(default, skip_serializing_if = \"Option::is_none\")]\n    peer_health_verdict: Option<String>,\n}\n\n/// One member subnet's count row in the daemon status view.\n// [impl->REQ-CLI-JSON]\n…\nfn cmd_daemon_status(json: bool) -> i32 {\n    // Daemon state: the socket ping is liveness truth (never the pid file).\n    let running = spt_daemon::is_running();\n    // [impl->REQ-CLI-JSON] Machine-readable view: assemble the same facts the\n    // human render below derives, then emit the DTO and return.\n    if json {\n        let pid = running\n            .then(|| {\n                std::fs::read_to_string(spt_daemon::daemon_pid_path())\n                    .ok()\n                    .map(|s| s.trim().to_string())\n                    .filter(|p| !p.is_empty())\n            })\n            .flatten();\n        // One broker handle answers net-status, the F-025 image query, and the W2\n        // stall-evict tally.\n        let (net_up, broker_image, broker_queried, stall_stats) = if running {\n            match spt_daemon::brain::Brain::cold_start(&spt_daemon::broker_socket_name(), now_ms()) {\n                Ok(mut b) => {\n                    let n = b.net_status().ok().map(|s| s.enabled).unwrap_or(true);\n                    let stall = b.stall_evicts().ok().flatten();\n                    // Ok(Some)=version / Ok(None)=old broker (both a successful\n                    // query) vs Err=couldn't query — keep them distinct so a\n                    // transient IPC failure does not read as a definite stale.\n                    match b.broker_image_version() {\n                        Ok(v) => (Some(n), v, true, stall),\n                        Err(_) => (Some(n), None, false, stall),\n                    }\n                }\n                Err(_) => (Some(true), None, false, None),\n            }\n        } else {\n            (None, None, false, None)\n        };\n        let (stall_evict_count, stall_evict_last_ms) = match stall_stats {\n            Some((c, l)) => (Some(c), Some(l)),\n            None => (None, None),\n        };\n        // [impl->REQ-UPDATE-RUNNING-IMAGE-SURFACE] stale is only DEFINITE after a\n        // successful query: None when the daemon is down OR the broker could not be\n        // queried (no false-positive true on a transient failure — doyle F-025 nit).\n        let broker_stale = (running && broker_queried)\n            .then(|| broker_image.as_deref() != Some(env!(\"CARGO_PKG_VERSION\")));\n        let pump_heartbeat_ms = if running {\n            spt_daemon::read_pump_heartbeat()\n        } else {\n            None\n        };\n        let svc = spt_daemon::service::platform_service();\n        let (managed_by, managed_active) = if svc.detected() {\n            (Some(svc.label().to_string()), Some(svc.is_active()))\n        } else {\n            (None, None)\n        };\n        let store = SubnetStore::load();\n        let mut subnets = Vec::new();\n        if !store.subnets.is_empty() {\n            let regs = crate::wansend::load_snapshots(&perch::identity_dir().join(\"registry\"));\n            let roster = spt_store::roster::RosterStore::load();\n            let own_hex = spt_store::nodeid::load_or_create()\n                .map(|i| i.public_key().to_hex())\n                .unwrap_or_default();\n            for row in subnet_status_rows(\n                &store,\n                &regs,\n                &roster,\n                Some(&own_hex).filter(|h| !h.is_empty()).map(|h| h.as_str()),\n                None,\n            ) {\n                subnets.push(DaemonSubnetJson {\n                    name: row.name,\n                    nodes: row.nodes,\n                    endpoints: row.endpoints,\n                });\n            }\n        }\n        let local_endpoints = roster::enumerate()\n            .into_iter()\n            .map(|p| LocalPerchJson {\n                id: p.id,\n                state: p.state,\n                address: p.address,\n                ready: p.ready,\n                alive: p.alive,\n                unbound: p.unbound,\n                // The project column is an `endpoint list` concern (#8); daemon-status\n                // does not derive it (avoids per-perch git cost here) — skip-if-none.\n                project: None,\n            })\n            .collect();\n        let peer_health = spt_daemon::read_pump_health();\n        let peer_health_verdict = peer_health\n            .as_ref()\n            .map(|h| peer_health_verdict_token(h).to_string());\n        return print_json(&DaemonStatusJson {\n            running,\n            pid,\n            net_up,\n            pump_heartbeat_ms,\n            managed_by,\n            managed_active,\n            subnets,\n            local_endpoints,\n            broker_image,\n            broker_stale,\n            stall_evict_count,\n            stall_evict_last_ms,\n            project_index: spt_daemon::projwriter::read_stats_at(\n                &spt_daemon::projwriter::stats_path(),\n            ),\n            peer_health,\n            peer_health_verdict,\n        });\n    }\n…\n        // Connection + pump liveness (M8 decision 23 leg 1; REQ-DAEMON-9): a\n        // net-LESS broker (net endpoint not bound — e.g. mid boot-race\n        // self-heal after the autostart beat the network up) surfaces the REAL\n        // cause, not a STALLED alarm read off a stale pre-boot heartbeat.\n        // One broker handle answers both net-status and the F-025 image query.\n        let (net_up, broker_image, stall_stats) = match spt_daemon::brain::Brain::cold_start(\n            &spt_daemon::broker_socket_name(),\n            now_ms(),\n        ) {\n            Ok(mut b) => {\n                let net_up = b.net_status().ok().map(|s| s.enabled).unwrap_or(true);\n                let stall = b.stall_evicts().ok().flatten();\n                let image = b.broker_image_version().ok().flatten();\n                (net_up, image, stall)\n            }\n            Err(_) => (true, None, None), // can't ask ⇒ don't false-alarm\n        };\n        let stale_after = 3 * spt_daemon::DaemonConfig::load()\n            .registry_pump_period\n            .as_millis() as u64;\n        print!(\n            \"{}\",\n            render_connection_lines(\n                net_up,\n                spt_daemon::read_pump_heartbeat(),\n                now_ms(),\n                stale_after,\n            )\n        );\n        // [impl->REQ-UPDATE-RUNNING-IMAGE-SURFACE] surface the RUNNING broker\n        // image beside the installed version (the daemon may have survived an\n        // apply and still run the previous binary).\n        println!(\n            \"{}\",\n            render_broker_image_line(broker_image.as_deref(), env!(\"CARGO_PKG_VERSION\"))\n        );\n        // [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE] W2 observability rider:\n        // surface brain-subscriber stall-evicts so a suspended/wedged brain that\n        // never returned is a diagnosable fact, not a silent absence.\n        if let Some(line) = render_stall_evict_line(stall_stats) {\n            println!(\"{line}\");\n        }\n        // [impl->REQ-PUMP-STAGE-TRUTH] peer reachability truth (ADR-0039): the\n        // 2026-07-10 sequester was invisible to every line above this one.\n        if let Some(line) =\n            render_peer_health_line(spt_daemon::read_pump_health().as_ref(), now_ms())\n        {\n            println!(\"{line}\");\n        }\n        // [impl->REQ-PROJECT-INDEX-WRITER] W2 observability: the materialized\n        // project index's writer health (index presence alone is not health).\n…\n}","startLine":4130,"lineNumbers":[4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,null,4348,4349,4350,4351,4352,4353,4354,4355,4356,4357,4358,4359,4360,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4371,4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,null,4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4518,4519,4520,null,4593]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt\\src\\cli.rs"}}},"isError":false,"timestamp":1784247478005}}
{"type":"message","id":"5c78021c","parentId":"eaae2bf7","timestamp":"2026-07-17T00:17:58.005Z","message":{"role":"toolResult","toolCallId":"call_20cqCd605DsunQxeOxvpBT3x|fc_05a4d8ea8a10ef0b016a5974b5c9008198ab3a7282838513d2","toolName":"read","content":[{"type":"text","text":"{\"pid\":47668,\"generation\":0,\"exe_hash\":\"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3\"}"}],"details":{"displayContent":{"text":"{\"pid\":47668,\"generation\":0,\"exe_hash\":\"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3\"}","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/brain.ready"}}},"isError":false,"timestamp":1784247478005}}
{"type":"message","id":"7a89dde3","parentId":"5c78021c","timestamp":"2026-07-17T00:17:58.011Z","message":{"role":"toolResult","toolCallId":"call_9skxmbWo92Ze2YZaq5lGFeRo|fc_05a4d8ea8a10ef0b016a5974b5c8f88198ad9aec065549c85b","toolName":"read","content":[{"type":"text","text":"82868"}],"details":{"displayContent":{"text":"82868","startLine":1,"lineNumbers":[1]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/daemon.pid"}}},"isError":false,"timestamp":1784247478011}}
{"type":"message","id":"2768a6e3","parentId":"7a89dde3","timestamp":"2026-07-17T00:17:58.067Z","message":{"role":"toolResult","toolCallId":"call_c7cI6tNA4YzjNZCMJVvUBozd|fc_05a4d8ea8a10ef0b016a5974b5c8ec819892c6ad2b1bbb4378","toolName":"read","content":[{"type":"text","text":"CONN_LIFECYCLE: conn=14848 role=brain wall_ms=1784247385652 mono_ms=11689836 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain wall_ms=1784247385658 mono_ms=11689841 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain stream-subscriber stream=5712 wall_ms=1784247385658 mono_ms=11689841 event=stream-sub-attach stream=5712 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain stream-subscriber stream=5712 wall_ms=1784247385663 mono_ms=11689846 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14849 role=brain wall_ms=1784247385663 mono_ms=11689847 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14849 role=brain wall_ms=1784247385663 mono_ms=11689847 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14850 role=brain wall_ms=1784247386788 mono_ms=11690972 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14850 role=brain wall_ms=1784247386789 mono_ms=11690972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474913 id=859e8318b5c71fde67e81989dfc364fafef2998e1b1914ba1f022d8486194b24 addr=EndpointAddr { id: PublicKey(859e8318b5c71fde67e81989dfc364fafef2998e1b1914ba1f022d8486194b24), addrs: {Ip(100.68.35.65:56371), Ip(192.168.1.81:56371)} }\nPAIR_MEET_UP:BIGNET step=59474913 id=b663abca6fc95c5ccbc7c4698a3bcc59fe8564d890a86ce01b783bb8cbf51841 addr=EndpointAddr { id: PublicKey(b663abca6fc95c5ccbc7c4698a3bcc59fe8564d890a86ce01b783bb8cbf51841), addrs: {Ip(100.68.35.65:56372), Ip(192.168.1.81:56372)} }\nCONN_LIFECYCLE: conn=14851 role=brain wall_ms=1784247391836 mono_ms=11696020 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14851 role=brain wall_ms=1784247391836 mono_ms=11696020 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14852 role=brain wall_ms=1784247393526 mono_ms=11697710 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14852 role=brain wall_ms=1784247393526 mono_ms=11697710 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14853 role=brain wall_ms=1784247393528 mono_ms=11697711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14853 role=brain stream-subscriber stream=5714 wall_ms=1784247393528 mono_ms=11697711 event=stream-sub-attach stream=5714 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14853 role=brain stream-subscriber stream=5714 wall_ms=1784247393537 mono_ms=11697720 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14854 role=brain wall_ms=1784247393537 mono_ms=11697721 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14854 role=brain wall_ms=1784247393537 mono_ms=11697721 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14855 role=brain wall_ms=1784247396895 mono_ms=11701078 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14855 role=brain wall_ms=1784247396895 mono_ms=11701078 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14856 role=brain wall_ms=1784247399951 mono_ms=11704135 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14856 role=brain wall_ms=1784247399951 mono_ms=11704135 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14857 role=brain stream-subscriber stream=5715 wall_ms=1784247399952 mono_ms=11704135 event=stream-sub-attach stream=5715 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14857 role=brain stream-subscriber stream=5715 wall_ms=1784247399952 mono_ms=11704135 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14857 role=brain stream-subscriber stream=5715 wall_ms=1784247399952 mono_ms=11704136 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14858 role=brain wall_ms=1784247399952 mono_ms=11704136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14858 role=brain wall_ms=1784247399952 mono_ms=11704136 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14859 role=brain wall_ms=1784247400469 mono_ms=11704652 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14859 role=brain wall_ms=1784247400469 mono_ms=11704652 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14860 role=brain wall_ms=1784247400470 mono_ms=11704653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14860 role=brain stream-subscriber stream=5716 wall_ms=1784247400470 mono_ms=11704653 event=stream-sub-attach stream=5716 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14860 role=brain stream-subscriber stream=5716 wall_ms=1784247400472 mono_ms=11704655 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14861 role=brain wall_ms=1784247400472 mono_ms=11704655 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14861 role=brain wall_ms=1784247400472 mono_ms=11704655 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14862 role=brain wall_ms=1784247400780 mono_ms=11704963 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14863 role=brain wall_ms=1784247400780 mono_ms=11704963 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14862 role=brain wall_ms=1784247400780 mono_ms=11704963 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14863 role=brain wall_ms=1784247400780 mono_ms=11704963 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14865 role=brain wall_ms=1784247400781 mono_ms=11704965 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14865 role=brain stream-subscriber stream=5717 wall_ms=1784247400781 mono_ms=11704965 event=stream-sub-attach stream=5717 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14865 role=brain stream-subscriber stream=5717 wall_ms=1784247400785 mono_ms=11704969 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14866 role=brain wall_ms=1784247400786 mono_ms=11704969 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14866 role=brain wall_ms=1784247400786 mono_ms=11704969 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14864 role=brain wall_ms=1784247400787 mono_ms=11704970 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14864 role=brain stream-subscriber stream=5718 wall_ms=1784247400787 mono_ms=11704970 event=stream-sub-attach stream=5718 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14864 role=brain stream-subscriber stream=5718 wall_ms=1784247400789 mono_ms=11704973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14867 role=brain wall_ms=1784247400789 mono_ms=11704973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14867 role=brain wall_ms=1784247400789 mono_ms=11704973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14868 role=brain wall_ms=1784247401946 mono_ms=11706129 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14868 role=brain wall_ms=1784247401946 mono_ms=11706129 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14869 role=brain wall_ms=1784247407000 mono_ms=11711184 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14869 role=brain wall_ms=1784247407000 mono_ms=11711184 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14870 role=brain wall_ms=1784247408656 mono_ms=11712839 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14870 role=brain wall_ms=1784247408656 mono_ms=11712839 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14871 role=brain wall_ms=1784247408657 mono_ms=11712841 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14871 role=brain stream-subscriber stream=5722 wall_ms=1784247408657 mono_ms=11712841 event=stream-sub-attach stream=5722 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14871 role=brain stream-subscriber stream=5722 wall_ms=1784247408667 mono_ms=11712851 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14872 role=brain wall_ms=1784247408668 mono_ms=11712851 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14872 role=brain wall_ms=1784247408668 mono_ms=11712851 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14873 role=brain wall_ms=1784247409173 mono_ms=11713356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14873 role=brain wall_ms=1784247409173 mono_ms=11713356 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14874 role=brain stream-subscriber stream=5723 wall_ms=1784247409173 mono_ms=11713356 event=stream-sub-attach stream=5723 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14874 role=brain stream-subscriber stream=5723 wall_ms=1784247409173 mono_ms=11713357 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14874 role=brain stream-subscriber stream=5723 wall_ms=1784247409180 mono_ms=11713363 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14875 role=brain wall_ms=1784247409180 mono_ms=11713364 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14875 role=brain wall_ms=1784247409180 mono_ms=11713364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14876 role=brain wall_ms=1784247410000 mono_ms=11714184 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14876 role=brain wall_ms=1784247410000 mono_ms=11714184 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14877 role=brain stream-subscriber stream=5724 wall_ms=1784247410001 mono_ms=11714184 event=stream-sub-attach stream=5724 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14877 role=brain stream-subscriber stream=5724 wall_ms=1784247410001 mono_ms=11714184 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14877 role=brain stream-subscriber stream=5724 wall_ms=1784247410005 mono_ms=11714189 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14878 role=brain wall_ms=1784247410005 mono_ms=11714189 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14878 role=brain wall_ms=1784247410005 mono_ms=11714189 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14879 role=brain wall_ms=1784247411347 mono_ms=11715531 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14880 role=brain wall_ms=1784247411347 mono_ms=11715531 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14879 role=brain wall_ms=1784247411347 mono_ms=11715531 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14880 role=brain wall_ms=1784247411347 mono_ms=11715531 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14882 role=brain stream-subscriber stream=5725 wall_ms=1784247411348 mono_ms=11715531 event=stream-sub-attach stream=5725 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14882 role=brain stream-subscriber stream=5725 wall_ms=1784247411348 mono_ms=11715531 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14881 role=brain stream-subscriber stream=5726 wall_ms=1784247411348 mono_ms=11715531 event=stream-sub-attach stream=5726 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14881 role=brain stream-subscriber stream=5726 wall_ms=1784247411348 mono_ms=11715531 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14881 role=brain stream-subscriber stream=5726 wall_ms=1784247411348 mono_ms=11715531 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14883 role=brain wall_ms=1784247411348 mono_ms=11715532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14883 role=brain wall_ms=1784247411348 mono_ms=11715532 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14882 role=brain stream-subscriber stream=5725 wall_ms=1784247411352 mono_ms=11715536 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14884 role=brain wall_ms=1784247411352 mono_ms=11715536 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14884 role=brain wall_ms=1784247411352 mono_ms=11715536 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14885 role=brain wall_ms=1784247411451 mono_ms=11715634 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14886 role=brain wall_ms=1784247411451 mono_ms=11715634 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14885 role=brain wall_ms=1784247411451 mono_ms=11715634 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14886 role=brain wall_ms=1784247411451 mono_ms=11715634 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14888 role=brain stream-subscriber stream=5727 wall_ms=1784247411451 mono_ms=11715635 event=stream-sub-attach stream=5727 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14888 role=brain stream-subscriber stream=5727 wall_ms=1784247411451 mono_ms=11715635 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14887 role=brain stream-subscriber stream=5728 wall_ms=1784247411451 mono_ms=11715635 event=stream-sub-attach stream=5728 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14887 role=brain stream-subscriber stream=5728 wall_ms=1784247411451 mono_ms=11715635 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14887 role=brain stream-subscriber stream=5728 wall_ms=1784247411452 mono_ms=11715635 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14889 role=brain wall_ms=1784247411452 mono_ms=11715635 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14889 role=brain wall_ms=1784247411452 mono_ms=11715635 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14888 role=brain stream-subscriber stream=5727 wall_ms=1784247411456 mono_ms=11715640 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14890 role=brain wall_ms=1784247411456 mono_ms=11715640 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14890 role=brain wall_ms=1784247411457 mono_ms=11715640 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14891 role=brain wall_ms=1784247412048 mono_ms=11716232 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14891 role=brain wall_ms=1784247412049 mono_ms=11716232 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14892 role=brain wall_ms=1784247417098 mono_ms=11721281 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14892 role=brain wall_ms=1784247417098 mono_ms=11721281 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474914 id=9f2e49b65327cb37eb25a1d3ed535f5edc0e734e60d6e01ba3d82666d3646c1b addr=EndpointAddr { id: PublicKey(9f2e49b65327cb37eb25a1d3ed535f5edc0e734e60d6e01ba3d82666d3646c1b), addrs: {Ip(100.68.35.65:56626), Ip(192.168.1.81:56626)} }\nPAIR_MEET_UP:BIGNET step=59474914 id=ea99cca1909c6e8ad7e4a4e95c4694d150c9d809c647bcf8220198f42553eeab addr=EndpointAddr { id: PublicKey(ea99cca1909c6e8ad7e4a4e95c4694d150c9d809c647bcf8220198f42553eeab), addrs: {Ip(100.68.35.65:56624), Ip(192.168.1.81:56624)} }\nCONN_LIFECYCLE: conn=14893 role=brain wall_ms=1784247422148 mono_ms=11726332 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14893 role=brain wall_ms=1784247422148 mono_ms=11726332 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14894 role=brain wall_ms=1784247423768 mono_ms=11727951 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14894 role=brain wall_ms=1784247423768 mono_ms=11727951 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14895 role=brain wall_ms=1784247423769 mono_ms=11727952 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14895 role=brain stream-subscriber stream=5732 wall_ms=1784247423769 mono_ms=11727952 event=stream-sub-attach stream=5732 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14895 role=brain stream-subscriber stream=5732 wall_ms=1784247423778 mono_ms=11727961 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14896 role=brain wall_ms=1784247423778 mono_ms=11727961 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14896 role=brain wall_ms=1784247423778 mono_ms=11727961 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14897 role=brain wall_ms=1784247425526 mono_ms=11729709 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14897 role=brain wall_ms=1784247425526 mono_ms=11729709 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14898 role=brain wall_ms=1784247425527 mono_ms=11729711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14898 role=brain stream-subscriber stream=5733 wall_ms=1784247425527 mono_ms=11729711 event=stream-sub-attach stream=5733 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14898 role=brain stream-subscriber stream=5733 wall_ms=1784247425529 mono_ms=11729713 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14899 role=brain wall_ms=1784247425529 mono_ms=11729713 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14899 role=brain wall_ms=1784247425529 mono_ms=11729713 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14900 role=brain wall_ms=1784247425836 mono_ms=11730020 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14901 role=brain wall_ms=1784247425836 mono_ms=11730020 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14900 role=brain wall_ms=1784247425836 mono_ms=11730020 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14901 role=brain wall_ms=1784247425836 mono_ms=11730020 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14903 role=brain wall_ms=1784247425838 mono_ms=11730021 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14903 role=brain stream-subscriber stream=5735 wall_ms=1784247425838 mono_ms=11730021 event=stream-sub-attach stream=5735 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14903 role=brain stream-subscriber stream=5735 wall_ms=1784247425840 mono_ms=11730023 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14904 role=brain wall_ms=1784247425840 mono_ms=11730023 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14904 role=brain wall_ms=1784247425840 mono_ms=11730024 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14902 role=brain wall_ms=1784247425848 mono_ms=11730031 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14902 role=brain stream-subscriber stream=5734 wall_ms=1784247425848 mono_ms=11730031 event=stream-sub-attach stream=5734 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14902 role=brain stream-subscriber stream=5734 wall_ms=1784247425853 mono_ms=11730037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14905 role=brain wall_ms=1784247425854 mono_ms=11730037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14905 role=brain wall_ms=1784247425854 mono_ms=11730037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14906 role=brain wall_ms=1784247427197 mono_ms=11731380 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14906 role=brain wall_ms=1784247427197 mono_ms=11731380 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247432103 mono_ms=11736286 event=stream-sub-attach stream=5736 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14907 role=brain wall_ms=1784247432244 mono_ms=11736428 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14907 role=brain wall_ms=1784247432245 mono_ms=11736428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247432914 mono_ms=11737098 event=stream-sub-attach stream=5737 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247433127 mono_ms=11737310 event=stream-sub-attach stream=5738 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14908 role=brain wall_ms=1784247437296 mono_ms=11741479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14908 role=brain wall_ms=1784247437296 mono_ms=11741479 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14909 role=brain wall_ms=1784247438776 mono_ms=11742959 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14909 role=brain wall_ms=1784247438776 mono_ms=11742959 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\n\n[More lines in file (5.4MB total; not scanned to EOF). Use :36554 to continue]"}],"details":{"displayContent":{"text":"CONN_LIFECYCLE: conn=14848 role=brain wall_ms=1784247385652 mono_ms=11689836 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain wall_ms=1784247385658 mono_ms=11689841 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain stream-subscriber stream=5712 wall_ms=1784247385658 mono_ms=11689841 event=stream-sub-attach stream=5712 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14846 role=brain stream-subscriber stream=5712 wall_ms=1784247385663 mono_ms=11689846 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14849 role=brain wall_ms=1784247385663 mono_ms=11689847 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14849 role=brain wall_ms=1784247385663 mono_ms=11689847 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14850 role=brain wall_ms=1784247386788 mono_ms=11690972 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14850 role=brain wall_ms=1784247386789 mono_ms=11690972 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474913 id=859e8318b5c71fde67e81989dfc364fafef2998e1b1914ba1f022d8486194b24 addr=EndpointAddr { id: PublicKey(859e8318b5c71fde67e81989dfc364fafef2998e1b1914ba1f022d8486194b24), addrs: {Ip(100.68.35.65:56371), Ip(192.168.1.81:56371)} }\nPAIR_MEET_UP:BIGNET step=59474913 id=b663abca6fc95c5ccbc7c4698a3bcc59fe8564d890a86ce01b783bb8cbf51841 addr=EndpointAddr { id: PublicKey(b663abca6fc95c5ccbc7c4698a3bcc59fe8564d890a86ce01b783bb8cbf51841), addrs: {Ip(100.68.35.65:56372), Ip(192.168.1.81:56372)} }\nCONN_LIFECYCLE: conn=14851 role=brain wall_ms=1784247391836 mono_ms=11696020 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14851 role=brain wall_ms=1784247391836 mono_ms=11696020 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14852 role=brain wall_ms=1784247393526 mono_ms=11697710 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14852 role=brain wall_ms=1784247393526 mono_ms=11697710 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14853 role=brain wall_ms=1784247393528 mono_ms=11697711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14853 role=brain stream-subscriber stream=5714 wall_ms=1784247393528 mono_ms=11697711 event=stream-sub-attach stream=5714 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14853 role=brain stream-subscriber stream=5714 wall_ms=1784247393537 mono_ms=11697720 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14854 role=brain wall_ms=1784247393537 mono_ms=11697721 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14854 role=brain wall_ms=1784247393537 mono_ms=11697721 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14855 role=brain wall_ms=1784247396895 mono_ms=11701078 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14855 role=brain wall_ms=1784247396895 mono_ms=11701078 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14856 role=brain wall_ms=1784247399951 mono_ms=11704135 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14856 role=brain wall_ms=1784247399951 mono_ms=11704135 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14857 role=brain stream-subscriber stream=5715 wall_ms=1784247399952 mono_ms=11704135 event=stream-sub-attach stream=5715 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14857 role=brain stream-subscriber stream=5715 wall_ms=1784247399952 mono_ms=11704135 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14857 role=brain stream-subscriber stream=5715 wall_ms=1784247399952 mono_ms=11704136 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14858 role=brain wall_ms=1784247399952 mono_ms=11704136 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14858 role=brain wall_ms=1784247399952 mono_ms=11704136 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14859 role=brain wall_ms=1784247400469 mono_ms=11704652 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14859 role=brain wall_ms=1784247400469 mono_ms=11704652 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14860 role=brain wall_ms=1784247400470 mono_ms=11704653 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14860 role=brain stream-subscriber stream=5716 wall_ms=1784247400470 mono_ms=11704653 event=stream-sub-attach stream=5716 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14860 role=brain stream-subscriber stream=5716 wall_ms=1784247400472 mono_ms=11704655 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14861 role=brain wall_ms=1784247400472 mono_ms=11704655 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14861 role=brain wall_ms=1784247400472 mono_ms=11704655 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14862 role=brain wall_ms=1784247400780 mono_ms=11704963 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14863 role=brain wall_ms=1784247400780 mono_ms=11704963 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14862 role=brain wall_ms=1784247400780 mono_ms=11704963 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14863 role=brain wall_ms=1784247400780 mono_ms=11704963 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14865 role=brain wall_ms=1784247400781 mono_ms=11704965 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14865 role=brain stream-subscriber stream=5717 wall_ms=1784247400781 mono_ms=11704965 event=stream-sub-attach stream=5717 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14865 role=brain stream-subscriber stream=5717 wall_ms=1784247400785 mono_ms=11704969 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14866 role=brain wall_ms=1784247400786 mono_ms=11704969 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14866 role=brain wall_ms=1784247400786 mono_ms=11704969 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14864 role=brain wall_ms=1784247400787 mono_ms=11704970 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14864 role=brain stream-subscriber stream=5718 wall_ms=1784247400787 mono_ms=11704970 event=stream-sub-attach stream=5718 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14864 role=brain stream-subscriber stream=5718 wall_ms=1784247400789 mono_ms=11704973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14867 role=brain wall_ms=1784247400789 mono_ms=11704973 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14867 role=brain wall_ms=1784247400789 mono_ms=11704973 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14868 role=brain wall_ms=1784247401946 mono_ms=11706129 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14868 role=brain wall_ms=1784247401946 mono_ms=11706129 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14869 role=brain wall_ms=1784247407000 mono_ms=11711184 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14869 role=brain wall_ms=1784247407000 mono_ms=11711184 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14870 role=brain wall_ms=1784247408656 mono_ms=11712839 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14870 role=brain wall_ms=1784247408656 mono_ms=11712839 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14871 role=brain wall_ms=1784247408657 mono_ms=11712841 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14871 role=brain stream-subscriber stream=5722 wall_ms=1784247408657 mono_ms=11712841 event=stream-sub-attach stream=5722 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14871 role=brain stream-subscriber stream=5722 wall_ms=1784247408667 mono_ms=11712851 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14872 role=brain wall_ms=1784247408668 mono_ms=11712851 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14872 role=brain wall_ms=1784247408668 mono_ms=11712851 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14873 role=brain wall_ms=1784247409173 mono_ms=11713356 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14873 role=brain wall_ms=1784247409173 mono_ms=11713356 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14874 role=brain stream-subscriber stream=5723 wall_ms=1784247409173 mono_ms=11713356 event=stream-sub-attach stream=5723 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14874 role=brain stream-subscriber stream=5723 wall_ms=1784247409173 mono_ms=11713357 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14874 role=brain stream-subscriber stream=5723 wall_ms=1784247409180 mono_ms=11713363 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14875 role=brain wall_ms=1784247409180 mono_ms=11713364 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14875 role=brain wall_ms=1784247409180 mono_ms=11713364 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14876 role=brain wall_ms=1784247410000 mono_ms=11714184 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14876 role=brain wall_ms=1784247410000 mono_ms=11714184 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14877 role=brain stream-subscriber stream=5724 wall_ms=1784247410001 mono_ms=11714184 event=stream-sub-attach stream=5724 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14877 role=brain stream-subscriber stream=5724 wall_ms=1784247410001 mono_ms=11714184 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14877 role=brain stream-subscriber stream=5724 wall_ms=1784247410005 mono_ms=11714189 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14878 role=brain wall_ms=1784247410005 mono_ms=11714189 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14878 role=brain wall_ms=1784247410005 mono_ms=11714189 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14879 role=brain wall_ms=1784247411347 mono_ms=11715531 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14880 role=brain wall_ms=1784247411347 mono_ms=11715531 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14879 role=brain wall_ms=1784247411347 mono_ms=11715531 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14880 role=brain wall_ms=1784247411347 mono_ms=11715531 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14882 role=brain stream-subscriber stream=5725 wall_ms=1784247411348 mono_ms=11715531 event=stream-sub-attach stream=5725 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14882 role=brain stream-subscriber stream=5725 wall_ms=1784247411348 mono_ms=11715531 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14881 role=brain stream-subscriber stream=5726 wall_ms=1784247411348 mono_ms=11715531 event=stream-sub-attach stream=5726 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14881 role=brain stream-subscriber stream=5726 wall_ms=1784247411348 mono_ms=11715531 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14881 role=brain stream-subscriber stream=5726 wall_ms=1784247411348 mono_ms=11715531 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14883 role=brain wall_ms=1784247411348 mono_ms=11715532 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14883 role=brain wall_ms=1784247411348 mono_ms=11715532 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14882 role=brain stream-subscriber stream=5725 wall_ms=1784247411352 mono_ms=11715536 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14884 role=brain wall_ms=1784247411352 mono_ms=11715536 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14884 role=brain wall_ms=1784247411352 mono_ms=11715536 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14885 role=brain wall_ms=1784247411451 mono_ms=11715634 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14886 role=brain wall_ms=1784247411451 mono_ms=11715634 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14885 role=brain wall_ms=1784247411451 mono_ms=11715634 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14886 role=brain wall_ms=1784247411451 mono_ms=11715634 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14888 role=brain stream-subscriber stream=5727 wall_ms=1784247411451 mono_ms=11715635 event=stream-sub-attach stream=5727 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14888 role=brain stream-subscriber stream=5727 wall_ms=1784247411451 mono_ms=11715635 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14887 role=brain stream-subscriber stream=5728 wall_ms=1784247411451 mono_ms=11715635 event=stream-sub-attach stream=5728 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14887 role=brain stream-subscriber stream=5728 wall_ms=1784247411451 mono_ms=11715635 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14887 role=brain stream-subscriber stream=5728 wall_ms=1784247411452 mono_ms=11715635 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14889 role=brain wall_ms=1784247411452 mono_ms=11715635 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14889 role=brain wall_ms=1784247411452 mono_ms=11715635 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14888 role=brain stream-subscriber stream=5727 wall_ms=1784247411456 mono_ms=11715640 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14890 role=brain wall_ms=1784247411456 mono_ms=11715640 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14890 role=brain wall_ms=1784247411457 mono_ms=11715640 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14891 role=brain wall_ms=1784247412048 mono_ms=11716232 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14891 role=brain wall_ms=1784247412049 mono_ms=11716232 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14892 role=brain wall_ms=1784247417098 mono_ms=11721281 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14892 role=brain wall_ms=1784247417098 mono_ms=11721281 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nNET_FAMILY_GATE: binding IPv4-only (IPv6 unreachable or disabled)\nPAIR_MEET_UP:SPT_DEV step=59474914 id=9f2e49b65327cb37eb25a1d3ed535f5edc0e734e60d6e01ba3d82666d3646c1b addr=EndpointAddr { id: PublicKey(9f2e49b65327cb37eb25a1d3ed535f5edc0e734e60d6e01ba3d82666d3646c1b), addrs: {Ip(100.68.35.65:56626), Ip(192.168.1.81:56626)} }\nPAIR_MEET_UP:BIGNET step=59474914 id=ea99cca1909c6e8ad7e4a4e95c4694d150c9d809c647bcf8220198f42553eeab addr=EndpointAddr { id: PublicKey(ea99cca1909c6e8ad7e4a4e95c4694d150c9d809c647bcf8220198f42553eeab), addrs: {Ip(100.68.35.65:56624), Ip(192.168.1.81:56624)} }\nCONN_LIFECYCLE: conn=14893 role=brain wall_ms=1784247422148 mono_ms=11726332 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14893 role=brain wall_ms=1784247422148 mono_ms=11726332 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14894 role=brain wall_ms=1784247423768 mono_ms=11727951 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14894 role=brain wall_ms=1784247423768 mono_ms=11727951 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14895 role=brain wall_ms=1784247423769 mono_ms=11727952 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14895 role=brain stream-subscriber stream=5732 wall_ms=1784247423769 mono_ms=11727952 event=stream-sub-attach stream=5732 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14895 role=brain stream-subscriber stream=5732 wall_ms=1784247423778 mono_ms=11727961 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14896 role=brain wall_ms=1784247423778 mono_ms=11727961 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14896 role=brain wall_ms=1784247423778 mono_ms=11727961 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nPUMP_PEER_FAIL:ecb39e40e3400d46ddca73914685fb91b2d82969119e42293408511e27e55657:submit-dial exceeded the 10s bound (peer unresponsive)\nCONN_LIFECYCLE: conn=14897 role=brain wall_ms=1784247425526 mono_ms=11729709 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14897 role=brain wall_ms=1784247425526 mono_ms=11729709 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14898 role=brain wall_ms=1784247425527 mono_ms=11729711 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14898 role=brain stream-subscriber stream=5733 wall_ms=1784247425527 mono_ms=11729711 event=stream-sub-attach stream=5733 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14898 role=brain stream-subscriber stream=5733 wall_ms=1784247425529 mono_ms=11729713 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14899 role=brain wall_ms=1784247425529 mono_ms=11729713 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14899 role=brain wall_ms=1784247425529 mono_ms=11729713 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14900 role=brain wall_ms=1784247425836 mono_ms=11730020 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14901 role=brain wall_ms=1784247425836 mono_ms=11730020 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14900 role=brain wall_ms=1784247425836 mono_ms=11730020 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14901 role=brain wall_ms=1784247425836 mono_ms=11730020 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14903 role=brain wall_ms=1784247425838 mono_ms=11730021 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14903 role=brain stream-subscriber stream=5735 wall_ms=1784247425838 mono_ms=11730021 event=stream-sub-attach stream=5735 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14903 role=brain stream-subscriber stream=5735 wall_ms=1784247425840 mono_ms=11730023 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14904 role=brain wall_ms=1784247425840 mono_ms=11730023 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14904 role=brain wall_ms=1784247425840 mono_ms=11730024 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14902 role=brain wall_ms=1784247425848 mono_ms=11730031 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14902 role=brain stream-subscriber stream=5734 wall_ms=1784247425848 mono_ms=11730031 event=stream-sub-attach stream=5734 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14902 role=brain stream-subscriber stream=5734 wall_ms=1784247425853 mono_ms=11730037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14905 role=brain wall_ms=1784247425854 mono_ms=11730037 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14905 role=brain wall_ms=1784247425854 mono_ms=11730037 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14906 role=brain wall_ms=1784247427197 mono_ms=11731380 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14906 role=brain wall_ms=1784247427197 mono_ms=11731380 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247432103 mono_ms=11736286 event=stream-sub-attach stream=5736 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14907 role=brain wall_ms=1784247432244 mono_ms=11736428 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14907 role=brain wall_ms=1784247432245 mono_ms=11736428 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247432914 mono_ms=11737098 event=stream-sub-attach stream=5737 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=6 role=brain stream-subscriber stream=13 stream-subscriber stream=14 stream-subscriber stream=17 stream-subscriber stream=20 stream-subscriber stream=38 stream-subscriber stream=83 stream-subscriber stream=128 stream-subscriber stream=172… wall_ms=1784247433127 mono_ms=11737310 event=stream-sub-attach stream=5738 from_seq=0 [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14908 role=brain wall_ms=1784247437296 mono_ms=11741479 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14908 role=brain wall_ms=1784247437296 mono_ms=11741479 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14909 role=brain wall_ms=1784247438776 mono_ms=11742959 event=write-start [REQ-CONN-POISON-ATTRIBUTION]\nCONN_LIFECYCLE: conn=14909 role=brain wall_ms=1784247438776 mono_ms=11742959 event=transport-close poisoned=false timed_out=false [REQ-CONN-POISON-ATTRIBUTION]","startLine":36399,"lineNumbers":[36399,36400,36401,36402,36403,36404,36405,36406,36407,36408,36409,36410,36411,36412,36413,36414,36415,36416,36417,36418,36419,36420,36421,36422,36423,36424,36425,36426,36427,36428,36429,36430,36431,36432,36433,36434,36435,36436,36437,36438,36439,36440,36441,36442,36443,36444,36445,36446,36447,36448,36449,36450,36451,36452,36453,36454,36455,36456,36457,36458,36459,36460,36461,36462,36463,36464,36465,36466,36467,36468,36469,36470,36471,36472,36473,36474,36475,36476,36477,36478,36479,36480,36481,36482,36483,36484,36485,36486,36487,36488,36489,36490,36491,36492,36493,36494,36495,36496,36497,36498,36499,36500,36501,36502,36503,36504,36505,36506,36507,36508,36509,36510,36511,36512,36513,36514,36515,36516,36517,36518,36519,36520,36521,36522,36523,36524,36525,36526,36527,36528,36529,36530,36531,36532,36533,36534,36535,36536,36537,36538,36539,36540,36541,36542,36543,36544,36545,36546,36547,36548,36549,36550,36551,36552,36553]},"meta":{"source":{"type":"path","value":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log"}}},"isError":false,"timestamp":1784247478067}}
{"type":"message","id":"5bedf653","parentId":"2768a6e3","timestamp":"2026-07-17T00:18:37.862Z","message":{"role":"toolResult","toolCallId":"call_8PrGO0V9yCpMbztHQGKHP6np|fc_05a4d8ea8a10ef0b016a5974b5c8d88198b1387b729d4a495e","toolName":"grep","content":[{"type":"text","text":"Grep timed out after 30s; narrow paths or pattern, or scope with `glob` first"}],"details":{},"isError":true,"timestamp":1784247517861}}
{"type":"custom_message","customType":"irc:incoming","content":"<irc>\nIncoming IRC message from agent `V034DiffRca`:\n\nv0.34 W1 introduced opener RPC + retry claims + retirement: ad7fde8, 2a110ee, 8425357. `first_line` now tries `net_stream_opener`; ANY Err falls back to `peek_first_line` which opens fresh Brain conn + `net_stream_subscribe` (stream-subscriber). Failures requeue at 500ms then 1s, max 3; dispatcher polls 100ms. Thus your attach→exact 15s POISONED→~20s retry is v0.34-magnified: one 15s BrokerConn write expiry plus retry/backoff/setup, potentially repeat. Diff itself adds no 20/30s timer. Scope normally one stream/worker/physical conn; all PTYs only if brain-generation rediscovery launches all and shared broker/OS pressure wedges them together. On fully v0.34 broker opener should be pinned and avoid peek; repeated subscriber fallback implies opener RPC Err/unsupported/row race or later serve subscription. Correlate DISPATCH stream id and conn role.\n\nAn agent sent this while you were waiting or working. Any active interruptible wait was stopped early so you can read it now.\n\nIf a response is expected, reply with the `irc` tool (`op: \"send\"`, `to: \"V034DiffRca\"`) — you may finish your current step first. Nobody replies on your behalf.\n</irc>","display":true,"details":{"id":"1532a97499dc5f19","from":"V034DiffRca","message":"v0.34 W1 introduced opener RPC + retry claims + retirement: ad7fde8, 2a110ee, 8425357. `first_line` now tries `net_stream_opener`; ANY Err falls back to `peek_first_line` which opens fresh Brain conn + `net_stream_subscribe` (stream-subscriber). Failures requeue at 500ms then 1s, max 3; dispatcher polls 100ms. Thus your attach→exact 15s POISONED→~20s retry is v0.34-magnified: one 15s BrokerConn write expiry plus retry/backoff/setup, potentially repeat. Diff itself adds no 20/30s timer. Scope normally one stream/worker/physical conn; all PTYs only if brain-generation rediscovery launches all and shared broker/OS pressure wedges them together. On fully v0.34 broker opener should be pinned and avoid peek; repeated subscriber fallback implies opener RPC Err/unsupported/row race or later serve subscription. Correlate DISPATCH stream id and conn role."},"attribution":"agent","id":"32504b0b","parentId":"5bedf653","timestamp":"2026-07-17T00:18:37.862Z"}
{"type":"message","id":"1c8dc6f1","parentId":"32504b0b","timestamp":"2026-07-17T00:19:18.787Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Assessing runtime logging and stall counters**\n\n**Counting and timestamping timeout events**"},{"type":"thinking","thinking":"**Analyzing dispatch failure timing**\n\n**Tracing dispatch retry timing discrepancies**"},{"type":"thinking","thinking":"**Noting lack of CPU/memory telemetry**\n\n**Exonerating pump IPC lifecycle during timeouts**"},{"type":"thinking","thinking":"**Analyzing connection heartbeat patterns**\n\n**Identifying irrelevant heartbeat section**"},{"type":"toolCall","id":"call_uiiIj6GdvsvM9IokPzkBCWsL|fc_05a4d8ea8a10ef0b016a597506b5ec819894027c117ab6ce89","name":"read","arguments":{"i":"Reading brain heartbeat lifecycle","path":"crates/spt-daemon/src/brainproc.rs","selector":"260-325"}},{"type":"toolCall","id":"call_PPTNg6pkg3taavDuczqOin1J|fc_05a4d8ea8a10ef0b016a597506b60c81988e7c597f93132b9e","name":"read","arguments":{"i":"Reading broker timeout accounting","path":"crates/spt-daemon/src/broker.rs","selector":"1415-1460"}},{"type":"toolCall","id":"call_U8PEX6qfbqmGkGGoapyGNYjm|fc_05a4d8ea8a10ef0b016a597506b6148198bf4294e1cf4d2bc1","name":"read","arguments":{"i":"Reading dispatch worker retries test","path":"crates/spt-daemon/tests/redispatch.rs","selector":"520-590"}},{"type":"toolCall","id":"call_2XLMG7cGFMIzFjxJOlRrcttZ|fc_05a4d8ea8a10ef0b016a597506b61c8198b24eb62c0a05456a","name":"read","arguments":{"i":"Reading connection timeout tests","path":"crates/spt-daemon/tests/conn_blackhole_lifecycle.rs","selector":"230-320"}},{"type":"toolCall","id":"call_DTFSHybqX38K8a4I7ebXz7gD|fc_05a4d8ea8a10ef0b016a597506b62081988a5c4750bc9775fb","name":"irc","arguments":{"i":"Requesting probe recommendations","op":"send","to":"PtyPathRca","message":"Live evidence: stream=3907 subscriber attach 1784244082619, 15.008s poison, DISPATCH fail at ~19.749s, retry attach at 20.354s. Other broker conns continue throughout; pump heartbeat current. For live probe, what exact read-only/local-vs-child measurements best distinguish endpoint-local RC from ConPTY vs broker-wide? Reply terse.","replyTo":null,"await":false,"from":null,"timeoutMs":null,"peek":null}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":12904,"output":2029,"cacheRead":188928,"cacheWrite":0,"totalTokens":203861,"reasoningTokens":1724,"cost":{"input":0.06452000000000001,"output":0.06087,"cacheRead":0.09446399999999999,"cacheWrite":0,"total":0.219854}},"stopReason":"toolUse","timestamp":1784247517877,"responseId":"resp_05a4d8ea8a10ef0b016a5974de13608198a583945487dc90e1","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a5974e221d481989db2152edab7691e","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXTrn2bur8_1kZgFeeGE43UI--FkbEVuMN22hCuB70oPkfTEWNqw5_gK3l3gIAup3VCRt0lsRrwLB7RbAiwbWfDFMoLhFpwEd8hy6BPaIdD8smi0J0HJ-QbHL2bbZvHFZ7hX41XX-ugE9prY72xBSBrmXmRlsaNU5RJX_FNOj2PnGwbRyEnLrcU4HdNfEMhBxGo4i1GqMtT7SlPDWumPsx_gaH_mGFyr3tzVNnz5LS3UzcSdA_GC_27KGCI8SdgBGg4dXv3__tAobLPfiDHBzVoahszdmTtRKydF-m71BvHk4OA__G5LtK1qHbZLj72eIkdxcmnvCGsB0zoHpU_itJJIAJIqDqDRL_X5uwkQuodOWbM4trnJMF4RSrM8MfyDSCvpDEMa6mtarCRmYDn-xXZzt9YUueXajnqe1fOWeQ0OX4zHQXbOvc_s9qUovUN15tdXOQu97zfXms-COxhIXGGhWDDty4NaXOnbfOBan80ldPjxmoJdNgfa9ujQaB98CuJTsrTzA8IwkTX6HXEOgS8tr2O7kY3VzYNEQ_OnsF1dsdF0gcmXUH5SuJjSWZPfLWkbNaYZtSi60G7zm_X7l4RPk3GWK45IY1p7cAGmcf0Ph_exFYdLqqp_7zkOG04O5oqNl0b8RUK0HsDMPQ4U-XykKPJ7HVj1hRJHBOWfOMynMYe-4M-08NkkcbboaSMHiZEVXs13_9oXESM6Mhgazsk-c7INsFg5PLM9SFPHCTDEJlt6hEXAPVDRBA8IQBzEBlFl_ELicS3F48SS6iWVMMX65DWPZXbdFSz0HkenzA9nF7X8EstBC1hXHRjzpnHb2G2wIKCcxYEJYtdXP6--5zI31a5iN2lOMtjP8sFpMez5iqBjR7if7FqBtxDtIusXJwRlDBdFvU355vjcrLkcydw_x7gJEOucpOjdHivurp5i3cyiOqWK7SCnlGcGNjqgzOqbKKz-xd-ULvfPWgURj8YvkE7shjz_Okd0c3rWRhAlLGdsSoKk7-vEA11ihElLim7DBI1f60lAK32yO25anyw9R9IAmW3iQFwvr72dTxSv2hDWCk4qWjVXS_g6DgJajXhveX96RqtGtuH5PLKOrbkMFXSxDv_-SDql52BUYmL7tsxr-uxP5zyx8GAZq0dDB-1PNr-0RBS7_KhIkTouDLMo9yJAeGlSmBRGfV_MNmHXEbtLko2IJHAExL6buiqkNE0qgWwFscYwchgOL01NKEC0H1AGfP4n8yyy3qY9Gm06U5EYH_yPN7wDYLPDwBMKxExtD393Sbn0F9JdMnJH-DEPiSHbdR9aLf-2Z8g-mr-Q5-_ILORF7MIEwVealy65PaAsRvBwXtra1G5jUBbn_8smSJhcnEKuvPoe73RDhEfzyg_P0zFdA58CrT0eWiS_0zl2UZUrZmCNw-ZvluGiENmo0onNdNp3rEbYLAbCixMguiqcV11pm8fdwNTqfCk_5FepRV6XlQ9mbXd_ygt-9ZooGcVHGMt_JPMX6U5JaLjZA8G7Cg5xwaPwhgkiJYUxyy9A64yskoGpNdET3MjRI0eXEjAo3Jq_wGf0bRZi3f7MalaqPyzhm74t5fyLhdEuunRpZhoyivivFP9wUWU5zzT-nDxC8uQ-vK62cA6eer9RaMgk1KEUG20OfLFFqf-xTs4xx0cFxEwHNqTUxPWroK0LwArRMJwGv4Rwbl2c-97v-iKKLAwJJltM4zRyf40tKhAnCYF_h0NTTntiDWcDuupi6EeDQGkyaYfz4X3Flipu5V9WqXstv2Gj6wZSvtRyXH7YM1jqtqCKc3rFlvOjGIzoU_gLirz8hXgX8yClTH9ntF4Tf_H7FKF-Ex7gJx6-VuWxW6V9g1Ou8mQygUET7QiGANNAagjinj7G1eL7QcJgUPiVkWzAJDRGQkCUPDQe4xT7mm3rSocyYX0F3w5mQsyMUpp-m4MSlXS1ukFcBTJ3-gzFhKGv-1R6VW0Od_IbBWQ1enUIQ89gObHU_Jq_nNpR8hgIQLxZfUTO2T3qj6yD0-7bRWvjrX9pCeOz4Gx8bO6mOhNkR3VZrO6ZzMtERHE2qrwMjI5sLu-iql8GGKqP2myOF4kvLHs-bECl7sOZBnR4p8AS_nG7PiU9UiELdvKNC8SyJUpzntH8Xr8mRaxXygPFHgqbyto6-PB9Sud3OUspNU5Wz95WnM_GW7FBWgAWkfSOc2lBgz6t63nBU0iB-8mTIyfNKzFzib9U-t47qZv3HgqeqzfZZLodWOhCgPR3kIo3MGoIKVky6oGrP_rDO5CAC2pbYzUAwtRfEUN-P_y4RRi8lxUeApLRTfWUd_WRXvUx3uPtK1ZX-dym2OLMMbO5xc7I1QC1AMTh326R7ibGHmCIUTdq3Z0zJ-AI7BuhwNPVcM1Fpq5N4YTotqflfm_6SbP47sSZXH4MsRBu-ZFPvK0IhQSrlvuHDOw5MJpDbZc4vUhEIPFPyOFTeVrRrthNIahhUR5ys8ZVKv1ahaxzferqTCXDiDDd6a-1QIoH8PDWZTs9KO_B_XQ3ROietkU0ahIAa3Zs1H8XPNEs5NOaE9HWUxTap2jgkmxdpoCXPaNWFHw9YQtAz3WUPUAoYhOS5Ci7-hFZhKlvncPJwEHDCT7Z93-DQJQqOxdXiKDZ8_8lJElSTnFMkpTFEjmnqye4EWH8wyw27h75oF6cHRfSnGFRra4MC1kdR_y_jlYqY7eua4GaRpN8U026Q9OjwyB2G3Xky7kksIgfU_mYIIZPhCBN64p8jtCQycZ8EjBOaHjoEyKHJkCkt_naO3SR6oDRPEa_zVVS1fY1YqpXczGPwR_5EAM-E0w4sjADRdVUOzIxmu2vVadcZF18QDrKB6uh_ORo21pyF32iNWV30-6oD67jRjx_SrHfQmUhlWGg9Ie8NBTjPSHoF_9IPr7ofGockig5DccF4Rn_3lItah98stFVo-8yd6su_nT4sHcXArqmokZ2tlPQcCzUXSdkTLce0_sT05QxoM62qm08Xfv3yf-_IhqEQx91z3B-IYj7743Vw_8mopxcjcmelnOOqvSOzH8CPMK7BBQdgQj_ZMgsG9i9S2PvscU28DWc5uXIp_RxUcD0quBhmnz5Ki-SujOp1Itd0VH4ajy17GctQ4viTgmymDXMDk_2cXT7_n_ZLM6EYbEsyw8uHC314AbjUVCd7uOclwp1rg07_H7M6Pyx-z2Cu1Q3gPGx4HM6maEMrXTLfidRHJEIsr_O_giO8Go7hHRgjazYwkS2VGxHxQ8kUBac9P0ot7wxSW4Xmy4VMlmmjls8TwxiiOhHx4zKJ5Y=","summary":[{"type":"summary_text","text":"**Assessing runtime logging and stall counters**"},{"type":"summary_text","text":"**Counting and timestamping timeout events**"}]},{"id":"rs_05a4d8ea8a10ef0b016a5974ebf2648198bb899f60d890779d","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXT1hxJ6tjuplBiXoiA0gG7KjMsIS17FjSL8Orl0x3P2yBT2g_bCInOiMJCPr0ZtY9zqOW6yL9dWtDjrqyvPZAE9AR47bJVC7YHaUEGCZ0_bS8Jf-x7-3UK3JjltTe0vFcYSfGknGGzv2g-hriwaxGIbyadEhZKYdyKcnqeZeWPahcrxwkzkAMXFtFzM87_Oa1ksj7-194HD2_fwEjS-oB5wipZhztoGg4NjzgcvxTIFSHk49fgUunQiP7FxH7Ak85qjoiy5Mq5-MkX2thCfE4rE77dRRE6wBepAcg_wlEjObV63Goxy26OlNIEH43ceMcKpifKtHSBH0oM9zZPPsRqXAx4z4lA8hlJBUUKR_gsPohSfD1fQoVAfk9R_65IKw-EbrkQFHDfi9QrN4qGOlJXTsId6C0tXRwvwJqocj8me4qi0NemgbAmtqTttSSGwRKgndcm2TRUDpkNPP07ax82sEGWaY_p0mJVHTm7AHkQd2MVuv5uK1rPMmCpKLL0Zs5g-Raxt_iljG6iRa4DWVqX8r5D8cxOVK7V7nyYSQP9zoP8DNg8lSnaCLy_e2BBpIipjqA_nWrZWTtz8ggF4hdpz3pfxQZKlCqFs5WUtExjiEpsvcCE6w_cwLgFCopnDzome-y8rCrareUvQLu26p5xsxlXrbJ99YVB9jXnscDc1aIvu3ojLyTjMR8ifHj4opelNm10fUuZL6-XaLAST1gRpFfP0cBagE2P6riHhBlqc6a30dvDIbx38T2hOd7zNji11q-ufyjMLrUCrnzy8abIF3jKwVfDMhHcU4yBJ9TdkrAh9flpx3Sm8GVtbvsMQsNUGqBH3FQCdpF18_mvXdgDsIChjPsqXhUFmt3ox-bY5w9ehNrpLU7Kofk42Opk_N-loufOUqtu7zZhVBbT_cmp2phLeTsxPW2sFoJECjLYCt88u5DXgHA5Qq4CJshSRhPfs6jVjqinnY06XZ4FWHBzcIkolivwus57ipPRFBZx2R26mNGHCP0oiduac0Qmi6HViZP-NP3cT3-Ww6m0zPxTv7xrF0AtBgKBflX0HChdrgdkNBPRLS6MLDYAPLJcAOFmKI7uGKkYvxtZx4-FiTRQCpesFKDH9Y8jtEZ_eTBMeoUlC686myTeNJGoAvO6mzETZp0S_935Kce-8HsdYkK28wjenWV78yIXHi9tI8auWlVeQJC70FckfJgJlRrj5ePOhjARXtoVZd3oxzOR3MKfV_cxxkP4RETg7vpg22TK_JbSkSdK7o7nHRxCAkjoyZIFCRMWaOL_Vgk_aFC6tMrixAzrBIB4f9Eyt8mZwDdpu1r2u3njSDJRvsgxz8v---CyCP9Ba3zOpF4wvwvIfc54ykmGrcDS0qDztRmaQE6NytUB1RT_Ujv32FXVaKvZoB5871nw-IvtQ9Kgf4X4KICwU-elYBuBfysKeSTd24_xrepKT7MJDz-HL2ahINJHMzqSZYUboADhOGyVhBqDZoh0xbgfcgNXS9kOtYuRG35MMnI4Yfl6AzFD7eeifC32qePUboZDg3qSQT6kJ8WqFzqSYckzdojp0roOtKxZHtGhH9OrgnPbRMBlycPXvg044H6ZonDaW_CJe5cjay2OjIu27PBAdh8qczbC52bTVDZCXk07xmU0tVo7We_pNrU8IE8SVOzDm2ntANLHUVukIw2yiBzhdDy3sFQMGk3V_immdN6HkzXG4SCo6IZhSW-gKqAaztBvXWUJeURZ_G4D7U7LQ2Jyiz5WlX-7ABI9Pa3bIvX2-S1D0WDsjhbpnjrR48NVXn_-LQpL0L9LbAcMtM86i6Y9jYcppbr8GilCFepy9NwnVqSw-al43nvN70ilc41M1fhyUyg-N_LDgCW3GRu886XCi-lnRcIt8jcgy3yyctv7Pq1FklTXmOZjwCxsz2cDnO1bMsmsXOxYUNKto-P4f7ONJz-CODhHPFETMGNrPofyftCsR6hfbTS3Fyv6FPAbEJa42NWcC95LEFiz_oLCg7pSiy8D4G_m41FvLc8qizY9HMMGiWsbEL-Y-prtTlYqqDgQ3v1UDcjaSxx2y2Avwc4Y9HKqp6Gu-wcQNPKUQigLXsUaKOdrsGD-W1Qi0Fi7TUEwO3R4OxpaAAOo7ZWOXxPFBzZT1LcYrmqd4J8FohueWznKhn5B-oZMLpcwwi4dV6ZxgYPRHYqkYPS9v7UeU_owD1WEK1DyYG82dTqBo8i14WWBi3yjYCvyamEbJTuAiIqSjc2h15Yty1gLqBfeIEdm5ojn4yUKCu69l2uxKl3MnTjTu4EPk1RPNXa-Ihez62JkBJD4M4RgThgGukgsHyZKt7Hq-Go4cm-8mvTE6Id3ChbkRKMsOGKkl208jfSoAih0Z87TAMqJbHQFOfnP4lWIj_2pr-O_rbOKbY4HWUmDT9HxMRO4Xs7RaITgBAhGjc721RBN5LqO6TCoJt40ekcfpgCOWj_kXnQlmiGrvFQNCCHaQ49ICmRFbvSyIgGoZY4bZxjhDqTuQ70bFVT-PKHCO62Xl4cdLAT1pq4_wl-KR8hPW6E3bQBV0JloNhPmMmKazAzKwTcAmswfeKWNY11B3lZTzfkM2naTW-eH9TosNsDydBul4NuYL1fLsJ4xgrJswMWZwxGQddlCzr4a0itU6nE6FF6-sw1VfEyK0C875bbIu29HKvgJ3kmu3JRA0UFCMitPdsRvSxwgzo504USg4d_YJ-LpWTssmvm1YvzfqF2PusFoe8mRH6PdFqV3fuh7CkdurpcNpMCy1imPLImgXTymclfFL6hbkbwneFtq79t_kYbWnteHL0rbMgyToV8xoFhdbLw0GSEuwX0OhUA==","summary":[{"type":"summary_text","text":"**Analyzing dispatch failure timing**"},{"type":"summary_text","text":"**Tracing dispatch retry timing discrepancies**"}]},{"id":"rs_05a4d8ea8a10ef0b016a5974f54b1c819885e70cabd32a2938","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXT-h1iWw1n4jwZ8xfjhIwXrGf6p52-HLVmaY2Z4lUd8zq_gsNOt6heLKysK2o_YbjatEG0j6kRmGQ4sE2o4CjRnjzTytdI7dc69p1JDwMELEJcVWNx5hxIlrklfsEhHy4PUC2FCtLLLvgPA68H-Uu_Zwse2661ceqOZDfimH0dTDRFBzEtvC7koeMCP0fmMwtvTO5SgW1lmzpBLmG9k3ljgyOma6wWIiwfhdug_Ad3AqjDmqjBtJfF_vctDuSWo5PyMf13T_kyFihmFXb7iy6_cEs4WTY-nLDdKyDGP9lxdGQwV0xDC7VPDr4mvglCeGzHccSPkniHizZ-y0b_lDX1vWF9-0Spg9vufrQPQ7poaKd9cRvPTU3MNOlkpyuncA2bKQKxVVkFPtBLIZ2WbX0mdYyDT2ZPYUlv55nZNPj4_r8C1V5E00YVG5l7ehpheMjuQ_ZS0lWiD6a-HC2ybXvNXVZcDlxY5TOHdwOMDK_Wg5hT2fb7LKjpOcoyqbHHak4MHctmHw31sQoMoBih3JOUKNWNBMt_UORQuq6jzDcq-9DtK8R3hyONDjuv82J-pfrov3-Mdm2-1NtrYYdxQFO4TG-EDVqmHR-kxJ2xkndOsaMjuDEzvncQ6wbYtK6hmb2HE6y0TFs7euUtBknfe2u7OlQpKqt_qMZ9uMUzzTl5Dh60QbpiH5ZKfsbmlaZqu6KxkTchBNx0B5rpIFLfxASZQXfeoD3xSB4TyI56qMyggUOqMp1s7BOLZyQ4Vd_vTcnUFPpfm-HWWMMdPIV-BaHM-j64ShV7FSIZbfCf2297cx5YRnoGwWKN1YSfzEmfyrkJIMsqojNlt6xmzW7DJg8pzDXsTWaF3XYzdmFoq3UhKrwoPtY6LejW4n_WNSEycu67-O7xEoC20gkHjNqY1pgV38-BX7jLEsnqokjtjnzwkcrJI1J3e6I3HuxhIQZw3zGNljlgpC66scC72R9nTMyQAVVIoj9FrDSfUXJsH0v8_qrob_igOXOm-vmcjaGhB_MrPDspbPCyTUup_3Mx2w46unknMQ49h_EVNb7ODhHhiB9CFD4sWjv7_knL5kTiTNtADR3Wq2c2CbLfRMqQ7T7ysjO7BXkLxCeOn59juizHwcYlI55g4LkWCWnrUKWsZ_rHVzUsdoxaYvn6v5t1nYcrBAecQxCUSsymAQ5oharebUyzObMrnS_Vr2AI3Ad-qCnXCLH2mX3FRVQWV4GB10e9JImVmG66aPgSShdl0R6oOkg5TdWEewWdJZZ2bGDw9K3D2vsJePX6rTxybIck5GLTnNB9Jm7G0GLGGb3LZJrC-pVLMAGLIz3eXomo8iAb1gV8b-qe_XyIqmiKkR4hXlxt26OQi5EfKiTSCb7PhIF9klubVQd3-KSNF6xbA5CbH1ntaxTrpySq9gfzPTouhRYc0v59AF76N0H-vOy7PJXdevZ45NXxAzW-4qSCON6qlZDO4vrmyySogaxK4abRI7OYJfyjA6hNENxKrBEUsJZdNvil6PhxXbt5XAs4zi6fnDjVvsfi29kLL2L80Kw7NFGNapdq1WWgJTUyLIVcqs_Q1evswy1aXglIpai2XIGoQkNZ0CNTg1qRT8Z8yVkKvV1irLFUyXbAaCsGzc8rFCAFqBwd0SsKPSVv2_6WBtQwEGyiWyNWZ1GR7LLHi5Zc8GrfaA22tJZE_4IP3d1Goy0DXi657KJ87dMVr2R0aVGUUKV4zpw-DDjip8VDuX0jLipjdcA0Ozv2j4TeDCQIkTZ-vQfAAxrRbFMG-1pU4kZCk_4YOKzJfepfMkGY7z2bt0vY3YBnRWOUQzahbw2Oo6aNRDu19waGfjp_JTjJOWSqPe1XyY4ru5ABP7ZfTgPX4bIXaYL_oqm0xGgtqScqVKiqn-cNI7ELKYYomh3BdBMWCKFmG5n7Jl_iINyoZsvQjJ3wl7LCe_SfjclIagO7A8rxY00juVv7O6sPBfhffM32u8iIzOB2gbyb3V5MHZ7RjHmA1aV9hAiLDgr6Uf9xWFzRnFKJkz29O6pUvBFVBpduUUxvLeuCC4V_quoPWUHTTqAOzX1yDtBEnjkfyE7pxRhYu0SROYAZ_8rJRqbTkcRhTcFx_Ym085fwP5vsLkgXRPzBRFWzTJ-81ToGmW04Z65urIjWy63bgjDMhWRc1zA9VZaq2mMjqXo7tShhgv6IhNCKLIdjrATO3yI7TKUZpUabMzXFApGvtYJNllPGvpu7pD8gQOBJ8P3h31Hqu0SialFRtqR9MLjK2yen8EJkSEjEdXoZDV0KjffF0Unajqc3riUBAWLh819m7jqOfj08-g5KFwM770ffyz-ET7BUHLFxT0jK5h7a9Xn4DeXhm-Qq-TByJ7V8Xr1KYJ3URavB3hZHXe_5paP2kzc_Buix7hXtjCHcgkZvSbU2x9V9QdHz71sw1e5Ev5htXoJvKC0KH-bIhJbg23wtkN5O-T8ZzkafDJIp3pPbBOFGedkdb2ytHBd5cnI8dUFZCVqmYUYXJPlYNmN4IVV_qrb-igrcQ_cKCsDVBaNUgNdq3WYDPpQSwmdpAgG0ofnl2XKNDb7OvUAy6ww_RSRRNifC4aakZhhyH617LsTqRkxst50ywac0irVp44yjk9_NgXbGwgboq_UVdMeQoZhj87R5D4L4LLXI9Sfj-KwXPhaNO0715CKTw4FMULJSMw2zc3dNOqv1QtbeR55Cvt3NCCkn0aP3e8vhV9uks-wL91hfbpfuBCX1ZXaXZVvlIm9wB19zPjBjiLgg1w7G8x0BSso2FVcsuj2bmCk1Olq2nKthm4aMcc3ZXKmjoiKJH-YZWPo_LENEIrhglxxqzJubjOkXjpFR2tfnCzymLZcwqVB2qoa82Qa19J_FEMXXzipLRXCpOBqYtB80EVvGCy8rmfjKSP0IAmXcSSxPF4ZKzNEgoiO3Cu-F89E0txGH2M56LNsI1S0ycN0pvKjCxChVFAn7bgWZ7Mdxt8PKqAXVNOp1z02czBxgn_4Pz-361MLDsuH6i3bUN5TRCQ5SAWvGGugZazrtZ395LUtepJblvJ5QaEWR4VLs1q1CflAhEZFA1gUsl00wXZNjjnu2a6YFjrklseceqPagPv3tvv4agHA7Qd9alF_ryhLqcAegKf0WbJHx-V9neULJgFD2FDzEYCeBSF5GY2DTNso6RADmDirBoB1HZT2E0S_nbTVEOqeWBeTqWlngNZkqiJPkfVHd-ealf3dbTkIhGVXQ3knX4xCmHvRp0eQKwqWZFwLiB2iYUeY_bk3kUNGQsIoMmmeuLzXPQIu0bf6qh0BW1JI-Toz-cIKUqLjZMQPMvISm65WtdPqJp8GFDgVFfdBcDnKHIJZ8n4qsvZiC93iS6N9Hur9i0YIOUR6-I0_G0DHZThJXRnt7R1wpkOcB-sLxGiOqI5H6E7aubdCk5nb604EkPOGWA_fJI5a_uocTp7wK0yFlTlhMWShpeeDj4W1lSIaXXFHlJYfPKx0Q0L5Qxf5RYvxnV9xt433P1k8VXXX8z_vgcTNLTolEM5Ol_I9Gqu1aT9tby18TcPkCj8IqM5y_aya34_5yXyahaP5ybDbj93OhWI4aOLkNDtQRE5Tx9VvPvXZK5Yn5U1qLS2Hq4GI-yYXds6uXfO6JzfutWs7rlD0NnZClXfVCs3Gblk2XseswyN6M4H8vg1gMYYb-Je1nZ8hvc7kE9wXDsPvsFmN57F_ogoLosMjLUccyxszhLXggVMpH0dv20_veJ-Hc=","summary":[{"type":"summary_text","text":"**Noting lack of CPU/memory telemetry**"},{"type":"summary_text","text":"**Exonerating pump IPC lifecycle during timeouts**"}]},{"id":"rs_05a4d8ea8a10ef0b016a5974fe846c81989246a449a0fb596c","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXUGoyh-utX68zJrCQzrZ4JOprHhsZe_AoKQ3MlQQNOcfCaD5VjzilS0yl7qrvEpA1_PoWVR1aaUQfP7LYrR0whLWHry4O66EDLlbE7U6Sh2Ux7SWjiQMQNDebmwJHGoEPB5-OWODDNrh5LnoXc2hGqh_9jdOvKm6U5e33i1bvhP3F1VZX4sE6u6C7GlcwZWMwrfFQhOYRtDjnTCKwxwhAdc22tNw3x1Gg0L9cnoocwUsnuXugWgteVqDDbMbmZRP-JEI5HpRs0nghS3NHXJAKTJw5H1lw6JqqybZwmEAInDjNTf39ybTuTWvcuK1rrtN6eWvF190AXshbwcGxR21X7W5qiuqcXlTpPQWEkV3xvOb4tPR-quvFHUdzQkm8YO2pnWFTAX_xrh48iFXp-7Y_D8fBDVbo16qPJkBM-8KwCkAZmQzDGK5htVLKs-ubGnXEUknsnBW0hA79f980zki42hiyiY1kosF3NmGGP92wbSNG4tU4z-TrjnMJm9k00GVISXZQfIiqxmdzbULAWYPjejC8RgPQn88urvFX9rmgCnUxz5Oy6PoGRXYfb9Slkz8Hs3DB3AFgG5mChqkNfm63TnL8rYUtuUSLFx9UyJdtFxkhKd508venn_cMiulskAcomvkgD0pawrX6F-hSDsSwYIKklvdAg5xVS1nWmKZlJD1xfQTsuskPa-JA38QtUvUt_O8FHP6T87iHsc5v5kekHdPOBXo0T61T464hhvQ_qrRs1rE84NkvcfQfBtZrDUWJp09N9a2MUeyYSmYn6MXmrykadUeaiU_r6JjIpXU6Mo9vsgChIgQqPWlBjvh5qr8UNkTVkWqPzUqb2MbYTNlQu383aAEm49g9WgfZQlfprFbXKnGYOhAeGIHHPn5SbHuhhFfddYb0PN9p03ZwmAJITqV6zDQ_k_uDe1EVA-KUMQ_DyCnKCV98h2i-_3GMkipgpRKjO112zTyDfLZvaidzbUgLsOvAnaBVIwYTcrueExG-oizoWsE47WSAisBHZ4unczzHd60y9FIFot6ytKq-dEUAVp3jwfWHMjexbk64x8kOIDMZpxvwv4q45OkybynbjRdWzfTB3I0vTH3ohIkJYKc9oKeS4rgjGtEP3wPu5DK8Zo3Jc27zhJvA6lGZjh7uYxSWr7GIJ4-rSdDibglJY08eI2DDfBSnutuCi0Jw01ZzReXeueOx1JL8W0ZH-cNzTGsf1kd_7KUn9A5NQsUC4JwOYFr7TTG3COlw4C16zE7Tgx5OtPfyhE7hOtcERRdmezG_6-FwKz8g3cBO13dB5nO0GNwEdaWlVJ9vcP5de_Njnfkz2YGZrj8CpE_ZZsCmCJaoqzBvcfw672irZicoXX_y7p8hn87I0RpDS0hRHlZ0sreiaUVy_FTOHPfLhVe9UsWnFaamY7XkanIN7-h19SwcEGS3k0DZfveMZ59JP3KBvohhE4kEaKUOcwX9X0KUFS-Csl3tYdiduBjN0mYBo0STAYRCNYiPShqSPX1O-_Yvem0FGiExSgti0YI7VIRdtLKxNEmOsrQMRIcwjITOGf6ZnAM6fMsBC8f7SUylMlRHibnoisEuGEA2lmwRVeP9LogVBr7i9Vn-D3RQdyDrNz_Kw8x0KdK-r49_GjrhUEVum2tKPeqwQS1_NQXLZ5jjJEV_A0GYJCsl2DKgyknl0JXP2nI5UMyle4YmWgX-ewtgvak7uL_948_NiZL3N4-i2H2uV2txG80-QSA7bUQuXDFEpQXFFGg8FYqAjWIcXVfoKaO55YXfFyajMzcmXiI_tFhHsonGOV1gsKUun2Ttb1qFF0x_Llqa5uf2fEqG7s1ERXeZoa6kBlSQdNBr6RGb9NpvcJkqpgZVuhCrWTMeeS0QYABISq83Fr7FLnQj88bUFEzebjxjhhKs1bndJKTMB-xoq17RMQSE9W7fknM6zq5YuKSVWRLkVVEOOsNnnB2I2q99CQHGki1L79dUliRY6U","summary":[{"type":"summary_text","text":"**Analyzing connection heartbeat patterns**"},{"type":"summary_text","text":"**Identifying irrelevant heartbeat section**"}]},{"id":"fc_05a4d8ea8a10ef0b016a597506b5ec819894027c117ab6ce89","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading brain heartbeat lifecycle\",\"path\":\"crates/spt-daemon/src/brainproc.rs\",\"selector\":\"260-325\"}","call_id":"call_uiiIj6GdvsvM9IokPzkBCWsL","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a597506b60c81988e7c597f93132b9e","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading broker timeout accounting\",\"path\":\"crates/spt-daemon/src/broker.rs\",\"selector\":\"1415-1460\"}","call_id":"call_PPTNg6pkg3taavDuczqOin1J","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a597506b6148198bf4294e1cf4d2bc1","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading dispatch worker retries test\",\"path\":\"crates/spt-daemon/tests/redispatch.rs\",\"selector\":\"520-590\"}","call_id":"call_U8PEX6qfbqmGkGGoapyGNYjm","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a597506b61c8198b24eb62c0a05456a","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading connection timeout tests\",\"path\":\"crates/spt-daemon/tests/conn_blackhole_lifecycle.rs\",\"selector\":\"230-320\"}","call_id":"call_2XLMG7cGFMIzFjxJOlRrcttZ","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a597506b62081988a5c4750bc9775fb","type":"function_call","status":"completed","arguments":"{\"i\":\"Requesting probe recommendations\",\"op\":\"send\",\"to\":\"PtyPathRca\",\"message\":\"Live evidence: stream=3907 subscriber attach 1784244082619, 15.008s poison, DISPATCH fail at ~19.749s, retry attach at 20.354s. Other broker conns continue throughout; pump heartbeat current. For live probe, what exact read-only/local-vs-child measurements best distinguish endpoint-local RC from ConPTY vs broker-wide? Reply terse.\",\"replyTo\":null,\"await\":false,\"from\":null,\"timeoutMs\":null,\"peek\":null}","call_id":"call_DTFSHybqX38K8a4I7ebXz7gD","name":"irc"}]},"duration":40907.85649999976,"ttft":4246.718599997461,"contextSnapshot":{"promptTokens":201832,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_uiiIj6GdvsvM9IokPzkBCWsL|fc_05a4d8ea8a10ef0b016a597506b5ec819894027c117ab6ce89","toolName":"read","startedAt":"2026-07-17T00:19:18.787Z","args":{"path":"crates/spt-daemon/src/brainproc.rs"},"intent":"Reading brain heartbeat lifecycle"},"id":"bca32c5d","parentId":"1c8dc6f1","timestamp":"2026-07-17T00:19:18.787Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_PPTNg6pkg3taavDuczqOin1J|fc_05a4d8ea8a10ef0b016a597506b60c81988e7c597f93132b9e","toolName":"read","startedAt":"2026-07-17T00:19:18.787Z","args":{"path":"crates/spt-daemon/src/broker.rs"},"intent":"Reading broker timeout accounting"},"id":"a40fba39","parentId":"bca32c5d","timestamp":"2026-07-17T00:19:18.787Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_U8PEX6qfbqmGkGGoapyGNYjm|fc_05a4d8ea8a10ef0b016a597506b6148198bf4294e1cf4d2bc1","toolName":"read","startedAt":"2026-07-17T00:19:18.788Z","args":{"path":"crates/spt-daemon/tests/redispatch.rs"},"intent":"Reading dispatch worker retries test"},"id":"83cf48ab","parentId":"a40fba39","timestamp":"2026-07-17T00:19:18.788Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_2XLMG7cGFMIzFjxJOlRrcttZ|fc_05a4d8ea8a10ef0b016a597506b61c8198b24eb62c0a05456a","toolName":"read","startedAt":"2026-07-17T00:19:18.788Z","args":{"path":"crates/spt-daemon/tests/conn_blackhole_lifecycle.rs"},"intent":"Reading connection timeout tests"},"id":"17a2e384","parentId":"83cf48ab","timestamp":"2026-07-17T00:19:18.788Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_DTFSHybqX38K8a4I7ebXz7gD|fc_05a4d8ea8a10ef0b016a597506b62081988a5c4750bc9775fb","toolName":"irc","startedAt":"2026-07-17T00:19:18.788Z","intent":"Requesting probe recommendations"},"id":"ac00a341","parentId":"17a2e384","timestamp":"2026-07-17T00:19:18.788Z"}
{"type":"message","id":"c79b0aff","parentId":"ac00a341","timestamp":"2026-07-17T00:19:18.788Z","message":{"role":"toolResult","toolCallId":"call_DTFSHybqX38K8a4I7ebXz7gD|fc_05a4d8ea8a10ef0b016a597506b62081988a5c4750bc9775fb","toolName":"irc","content":[{"type":"text","text":"Delivered to 1 peer(s):\n- PtyPathRca: injected"}],"details":{"op":"send","from":"LiveLogRca","to":"PtyPathRca","receipts":[{"to":"PtyPathRca","outcome":"injected"}]},"isError":false,"timestamp":1784247558788}}
{"type":"message","id":"3ae16b97","parentId":"c79b0aff","timestamp":"2026-07-17T00:19:18.801Z","message":{"role":"toolResult","toolCallId":"call_U8PEX6qfbqmGkGGoapyGNYjm|fc_05a4d8ea8a10ef0b016a597506b6148198bf4294e1cf4d2bc1","toolName":"read","content":[{"type":"text","text":"fn opener_evicted_active_stream_resumes_after_dispatcher_restart() {\n…\n    operator.net_stream_subscribe(s1, 0).expect(\"subscribe\");\n    send_attach_input(&mut operator, s1, b\"MARK-A\\r\", 10).expect(\"input pre\");\n    let mut dec = AttachDecoder::new();\n    let (mut cur, mut view) = (0u64, Vec::new());\n    render_until(&mut operator, s1, &mut dec, &mut cur, &mut view, b\"MARK-A\", Duration::from_secs(20));\n    let s1_a = *peer_stream_ids(&mut probe).first().expect(\"s1 row on A\");\n\n    // Roll the opener out of the (8-chunk) ring: enough spaced input records\n    // that the floor advances past seq 0.\n    for i in 0..40u64 {\n        send_attach_input(&mut operator, s1, format!(\"f{i}\\r\").as_bytes(), 20 + i)\n            .expect(\"flood input\");\n        thread::sleep(Duration::from_millis(10));\n    }\n    let end = Instant::now() + Duration::from_secs(20);\n    loop {\n        let rolled = probe\n            .net_streams()\n            .expect(\"net-streams\")\n            .streams\n            .iter()\n            .any(|s| s.stream_id == s1_a && s.floor_seq > 0);\n        if rolled {\n            break;\n        }\n        assert!(Instant::now() < end, \"the ring never rolled past the opener\");\n        thread::sleep(Duration::from_millis(50));\n    }\n    // The durable fact is still there — this is what gen2 will classify from.\n    let pinned = probe\n        .net_stream_opener(s1_a)\n        .expect(\"opener query answers\");\n    assert!(pinned.is_some(), \"the opener stays pinned across the ring roll\");\n\n    // Restart the dispatcher generation; recovery must classify from the\n    // pinned opener (ring seq 0 is GONE) and resume THIS operator stream.\n    gen1.kill();\n    let gen2 = Generation::spawn(&name_a, dir.path().join(\"gen2.log\"), &[]);\n\n    send_attach_input(&mut operator, s1, b\"MARK-B\\r\", 100).expect(\"input post\");\n    let saw_eof = render_until(&mut operator, s1, &mut dec, &mut cur, &mut view, b\"MARK-B\", Duration::from_secs(30));\n    assert!(!saw_eof, \"the resumed stream must not be torn down\");\n    let gen2_log = gen2.stderr_log();\n    assert!(\n        !gen2_log.contains(&format!(\"DISPATCH:{s1_a}:Unknown\")),\n        \"gen2 classified the rolled-opener stream Unknown — durable classification failed: {gen2_log}\"\n    );\n\n    gen2.kill();\n    let _ = probe.kill_session();\n}\n\n// [int->REQ-DISPATCH-CLAIM-RETRY] D3 — one injected transient worker-start\n// failure (the SPT_DISPATCH_INJECT_TRANSIENT_ONCE test valve, armed on the\n// generation's env): the FIRST worker attempt fails before setup, the claim\n// requeues (bounded backoff), and the retry serves the stream — the operator\n// still gets the viewport, exactly one controller. Pre-fix the one-shot\n// claimed-set burn abandoned the stream permanently on that first failure.\n#[test]\nfn transient_worker_start_failure_recovers_via_claim_retry() {\n    init_home();\n    let dir = tempfile::tempdir().expect(\"tempdir\");\n    let (name_a, name_b) = (unique_name(), unique_name());\n    let _broker_a = net_broker(&name_a, &dir.path().join(\"a\"));\n    let _broker_b = net_broker(&name_b, &dir.path().join(\"b\"));\n\n    let mut probe = connect_retry(&name_a);\n    let sid = probe\n        .spawn_session(echo_spawn_req(\"rd3-ep\"))\n        .expect(\"spawn echo child\");\n    let a_addr = probe.net_status().expect(\"a status\").addr;\n\n    let gen1 = Generation::spawn(\n        &name_a,\n        dir.path().join(\"gen1.log\"),\n…\n    );\n…\n}\n\n[Showing lines 519-593 of 621. Use :594 to continue]"}],"details":{"truncation":{"content":"    operator.net_stream_subscribe(s1, 0).expect(\"subscribe\");\r\n    send_attach_input(&mut operator, s1, b\"MARK-A\\r\", 10).expect(\"input pre\");\r\n    let mut dec = AttachDecoder::new();\r\n    let (mut cur, mut view) = (0u64, Vec::new());\r\n    render_until(&mut operator, s1, &mut dec, &mut cur, &mut view, b\"MARK-A\", Duration::from_secs(20));\r\n    let s1_a = *peer_stream_ids(&mut probe).first().expect(\"s1 row on A\");\r\n\r\n    // Roll the opener out of the (8-chunk) ring: enough spaced input records\r\n    // that the floor advances past seq 0.\r\n    for i in 0..40u64 {\r\n        send_attach_input(&mut operator, s1, format!(\"f{i}\\r\").as_bytes(), 20 + i)\r\n            .expect(\"flood input\");\r\n        thread::sleep(Duration::from_millis(10));\r\n    }\r\n    let end = Instant::now() + Duration::from_secs(20);\r\n    loop {\r\n        let rolled = probe\r\n            .net_streams()\r\n            .expect(\"net-streams\")\r\n            .streams\r\n            .iter()\r\n            .any(|s| s.stream_id == s1_a && s.floor_seq > 0);\r\n        if rolled {\r\n            break;\r\n        }\r\n        assert!(Instant::now() < end, \"the ring never rolled past the opener\");\r\n        thread::sleep(Duration::from_millis(50));\r\n    }\r\n    // The durable fact is still there — this is what gen2 will classify from.\r\n    let pinned = probe\r\n        .net_stream_opener(s1_a)\r\n        .expect(\"opener query answers\");\r\n    assert!(pinned.is_some(), \"the opener stays pinned across the ring roll\");\r\n\r\n    // Restart the dispatcher generation; recovery must classify from the\r\n    // pinned opener (ring seq 0 is GONE) and resume THIS operator stream.\r\n    gen1.kill();\r\n    let gen2 = Generation::spawn(&name_a, dir.path().join(\"gen2.log\"), &[]);\r\n\r\n    send_attach_input(&mut operator, s1, b\"MARK-B\\r\", 100).expect(\"input post\");\r\n    let saw_eof = render_until(&mut operator, s1, &mut dec, &mut cur, &mut view, b\"MARK-B\", Duration::from_secs(30));\r\n    assert!(!saw_eof, \"the resumed stream must not be torn down\");\r\n    let gen2_log = gen2.stderr_log();\r\n    assert!(\r\n        !gen2_log.contains(&format!(\"DISPATCH:{s1_a}:Unknown\")),\r\n        \"gen2 classified the rolled-opener stream Unknown — durable classification failed: {gen2_log}\"\r\n    );\r\n\r\n    gen2.kill();\r\n    let _ = probe.kill_session();\r\n}\r\n\r\n// [int->REQ-DISPATCH-CLAIM-RETRY] D3 — one injected transient worker-start\r\n// failure (the SPT_DISPATCH_INJECT_TRANSIENT_ONCE test valve, armed on the\r\n// generation's env): the FIRST worker attempt fails before setup, the claim\r\n// requeues (bounded backoff), and the retry serves the stream — the operator\r\n// still gets the viewport, exactly one controller. Pre-fix the one-shot\r\n// claimed-set burn abandoned the stream permanently on that first failure.\r\n#[test]\r\nfn transient_worker_start_failure_recovers_via_claim_retry() {\r\n    init_home();\r\n    let dir = tempfile::tempdir().expect(\"tempdir\");\r\n    let (name_a, name_b) = (unique_name(), unique_name());\r\n    let _broker_a = net_broker(&name_a, &dir.path().join(\"a\"));\r\n    let _broker_b = net_broker(&name_b, &dir.path().join(\"b\"));\r\n\r\n    let mut probe = connect_retry(&name_a);\r\n    let sid = probe\r\n        .spawn_session(echo_spawn_req(\"rd3-ep\"))\r\n        .expect(\"spawn echo child\");\r\n    let a_addr = probe.net_status().expect(\"a status\").addr;\r\n\r\n    let gen1 = Generation::spawn(\r\n        &name_a,\r\n        dir.path().join(\"gen1.log\"),\r","truncated":true,"truncatedBy":"lines","totalLines":103,"totalBytes":3389,"outputLines":75,"outputBytes":3389,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"fn opener_evicted_active_stream_resumes_after_dispatcher_restart() {\n…\n    operator.net_stream_subscribe(s1, 0).expect(\"subscribe\");\r\n    send_attach_input(&mut operator, s1, b\"MARK-A\\r\", 10).expect(\"input pre\");\r\n    let mut dec = AttachDecoder::new();\r\n    let (mut cur, mut view) = (0u64, Vec::new());\r\n    render_until(&mut operator, s1, &mut dec, &mut cur, &mut view, b\"MARK-A\", Duration::from_secs(20));\r\n    let s1_a = *peer_stream_ids(&mut probe).first().expect(\"s1 row on A\");\r\n\r\n    // Roll the opener out of the (8-chunk) ring: enough spaced input records\r\n    // that the floor advances past seq 0.\r\n    for i in 0..40u64 {\r\n        send_attach_input(&mut operator, s1, format!(\"f{i}\\r\").as_bytes(), 20 + i)\r\n            .expect(\"flood input\");\r\n        thread::sleep(Duration::from_millis(10));\r\n    }\r\n    let end = Instant::now() + Duration::from_secs(20);\r\n    loop {\r\n        let rolled = probe\r\n            .net_streams()\r\n            .expect(\"net-streams\")\r\n            .streams\r\n            .iter()\r\n            .any(|s| s.stream_id == s1_a && s.floor_seq > 0);\r\n        if rolled {\r\n            break;\r\n        }\r\n        assert!(Instant::now() < end, \"the ring never rolled past the opener\");\r\n        thread::sleep(Duration::from_millis(50));\r\n    }\r\n    // The durable fact is still there — this is what gen2 will classify from.\r\n    let pinned = probe\r\n        .net_stream_opener(s1_a)\r\n        .expect(\"opener query answers\");\r\n    assert!(pinned.is_some(), \"the opener stays pinned across the ring roll\");\r\n\r\n    // Restart the dispatcher generation; recovery must classify from the\r\n    // pinned opener (ring seq 0 is GONE) and resume THIS operator stream.\r\n    gen1.kill();\r\n    let gen2 = Generation::spawn(&name_a, dir.path().join(\"gen2.log\"), &[]);\r\n\r\n    send_attach_input(&mut operator, s1, b\"MARK-B\\r\", 100).expect(\"input post\");\r\n    let saw_eof = render_until(&mut operator, s1, &mut dec, &mut cur, &mut view, b\"MARK-B\", Duration::from_secs(30));\r\n    assert!(!saw_eof, \"the resumed stream must not be torn down\");\r\n    let gen2_log = gen2.stderr_log();\r\n    assert!(\r\n        !gen2_log.contains(&format!(\"DISPATCH:{s1_a}:Unknown\")),\r\n        \"gen2 classified the rolled-opener stream Unknown — durable classification failed: {gen2_log}\"\r\n    );\r\n\r\n    gen2.kill();\r\n    let _ = probe.kill_session();\r\n}\r\n\r\n// [int->REQ-DISPATCH-CLAIM-RETRY] D3 — one injected transient worker-start\r\n// failure (the SPT_DISPATCH_INJECT_TRANSIENT_ONCE test valve, armed on the\r\n// generation's env): the FIRST worker attempt fails before setup, the claim\r\n// requeues (bounded backoff), and the retry serves the stream — the operator\r\n// still gets the viewport, exactly one controller. Pre-fix the one-shot\r\n// claimed-set burn abandoned the stream permanently on that first failure.\r\n#[test]\r\nfn transient_worker_start_failure_recovers_via_claim_retry() {\r\n    init_home();\r\n    let dir = tempfile::tempdir().expect(\"tempdir\");\r\n    let (name_a, name_b) = (unique_name(), unique_name());\r\n    let _broker_a = net_broker(&name_a, &dir.path().join(\"a\"));\r\n    let _broker_b = net_broker(&name_b, &dir.path().join(\"b\"));\r\n\r\n    let mut probe = connect_retry(&name_a);\r\n    let sid = probe\r\n        .spawn_session(echo_spawn_req(\"rd3-ep\"))\r\n        .expect(\"spawn echo child\");\r\n    let a_addr = probe.net_status().expect(\"a status\").addr;\r\n\r\n    let gen1 = Generation::spawn(\r\n        &name_a,\r\n        dir.path().join(\"gen1.log\"),\r\n…\n    );\n…\n}","startLine":496,"lineNumbers":[496,null,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,null,595,null,620]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\tests\\redispatch.rs"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":621,"totalBytes":3389,"outputLines":75,"outputBytes":3389,"shownRange":{"start":519,"end":593},"nextOffset":594}}},"isError":false,"timestamp":1784247558801}}
{"type":"message","id":"50662a5a","parentId":"3ae16b97","timestamp":"2026-07-17T00:19:18.809Z","message":{"role":"toolResult","toolCallId":"call_2XLMG7cGFMIzFjxJOlRrcttZ|fc_05a4d8ea8a10ef0b016a597506b61c8198b24eb62c0a05456a","toolName":"read","content":[{"type":"text","text":"fn query_sessions(name: &str, deadline: Duration) -> Option<SessionsReply> {\n…\n    thread::spawn(move || {\n        let mut c = connect(&name);\n        send(&mut c, KIND_SESSIONS, serde_json::Value::Null);\n        loop {\n            match read_frame(&mut c) {\n                Ok(f) if f.kind == KIND_SESSIONS_REPLY => {\n                    let r: SessionsReply = serde_json::from_value(f.payload).unwrap();\n                    let _ = tx.send(r);\n                    return;\n                }\n                Ok(_) => continue,\n                Err(_) => return,\n            }\n        }\n    });\n    rx.recv_timeout(deadline).ok()\n}\n\n// [int->REQ-CONN-BLACKHOLE-LIFECYCLE-HARNESS]\n#[test]\nfn blackholed_controller_lifecycle_five_invariants() {\n    init_home();\n    // Shrink the brain-write deadline so the wedged writer is \"stalled\" in ~400 ms\n    // instead of 15 s — the structural outcome, fast + deterministic (the knob\n    // grants wall-clock only; it never relaxes an assertion).\n    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\n\n    let name = unique_name();\n    let broker = Broker::bind(&name).expect(\"bind broker\");\n    let serve = Arc::clone(&broker);\n    thread::spawn(move || {\n        let _ = serve.serve();\n    });\n\n    // ── UNRELATED session U (invariant 1): a second, independent flood child on\n    //    its OWN endpoint. Drop its spawner conn (so U has no controller to wedge\n    //    — the PTY keeps producing headless), and attach a SEPARATE DRAINING\n    //    viewer whose frame count must keep advancing ACROSS the whole incident. ──\n    let (u_spawn, sid_u) = spawn_session(&name, flood_spawn_req(\"blackhole-unrelated-ep\"));\n    drop(u_spawn);\n    let u_name = name.clone();\n    let u_frames = Arc::new(AtomicU64::new(0));\n    let u_frames_w = Arc::clone(&u_frames);\n    thread::spawn(move || {\n        let mut v = connect(&u_name);\n        send(\n            &mut v,\n            KIND_SUBSCRIBE,\n            serde_json::to_value(SubscribeReq {\n                session_id: sid_u,\n                from_seq: 0,\n                intent: AttachIntent::Viewer,\n                by: Some(\"unrelated-viewer\".to_string()),\n            })\n            .unwrap(),\n        );\n        while let Ok(f) = read_frame(&mut v) {\n            if f.kind == KIND_OUTPUT {\n                u_frames_w.fetch_add(1, Ordering::Relaxed);\n            }\n        }\n    });\n\n    // ── BLACK-HOLED session B: the real SEED+burst PTY child from conn A, then\n    //    DROP A so the ONLY persistent brain conn is the black-holed controller R. ──\n    let (a, sid_b) = spawn_session(&name, seed_burst_spawn_req(\"blackhole-victim-ep\"));\n    drop(a);\n\n    // ── Remote controller R: subscribes Control from_seq 0, drains until it has\n    //    seen `SEED` (a real controller frame flowed), signals main so main can\n    //    freeze the PRE-burst high-water, then on main's go fires the burst trigger,\n    //    drains a few burst frames (a real seq>0 frame delivered), and STOPS\n    //    reading — handing the Stream back to main UNREAD. Main holds it, never\n    //    draining, so the broker's R-writer parks in `write_frame` exactly as\n    //    against a suspended brain. R's Stream is NEVER dropped until the very end. ──\n    let r_name = name.clone();\n    let (seed_tx, seed_rx) = std::sync::mpsc::channel::<(bool, u64)>();\n    let (go_tx, go_rx) = std::sync::mpsc::channel::<()>();\n    let (hand_tx, hand_rx) = std::sync::mpsc::channel::<(Stream, u64)>();\n    thread::spawn(move || {\n        let mut r = connect(&r_name);\n        send(\n            &mut r,\n            KIND_SUBSCRIBE,\n            serde_json::to_value(SubscribeReq {\n                session_id: sid_b,\n                from_seq: 0,\n                intent: AttachIntent::Control,\n                by: Some(\"operator-one\".to_string()),\n            })\n            .unwrap(),\n        );\n        loop {\n            match read_frame(&mut r) {\n                Ok(f) if f.kind == KIND_SUBSCRIBED => break,\n…\n            }\n        }\n…\n    });\n…\n}\n\n[Showing lines 229-323 of 710. Use :324 to continue]"}],"details":{"truncation":{"content":"    thread::spawn(move || {\r\n        let mut c = connect(&name);\r\n        send(&mut c, KIND_SESSIONS, serde_json::Value::Null);\r\n        loop {\r\n            match read_frame(&mut c) {\r\n                Ok(f) if f.kind == KIND_SESSIONS_REPLY => {\r\n                    let r: SessionsReply = serde_json::from_value(f.payload).unwrap();\r\n                    let _ = tx.send(r);\r\n                    return;\r\n                }\r\n                Ok(_) => continue,\r\n                Err(_) => return,\r\n            }\r\n        }\r\n    });\r\n    rx.recv_timeout(deadline).ok()\r\n}\r\n\r\n// [int->REQ-CONN-BLACKHOLE-LIFECYCLE-HARNESS]\r\n#[test]\r\nfn blackholed_controller_lifecycle_five_invariants() {\r\n    init_home();\r\n    // Shrink the brain-write deadline so the wedged writer is \"stalled\" in ~400 ms\r\n    // instead of 15 s — the structural outcome, fast + deterministic (the knob\r\n    // grants wall-clock only; it never relaxes an assertion).\r\n    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\r\n\r\n    let name = unique_name();\r\n    let broker = Broker::bind(&name).expect(\"bind broker\");\r\n    let serve = Arc::clone(&broker);\r\n    thread::spawn(move || {\r\n        let _ = serve.serve();\r\n    });\r\n\r\n    // ── UNRELATED session U (invariant 1): a second, independent flood child on\r\n    //    its OWN endpoint. Drop its spawner conn (so U has no controller to wedge\r\n    //    — the PTY keeps producing headless), and attach a SEPARATE DRAINING\r\n    //    viewer whose frame count must keep advancing ACROSS the whole incident. ──\r\n    let (u_spawn, sid_u) = spawn_session(&name, flood_spawn_req(\"blackhole-unrelated-ep\"));\r\n    drop(u_spawn);\r\n    let u_name = name.clone();\r\n    let u_frames = Arc::new(AtomicU64::new(0));\r\n    let u_frames_w = Arc::clone(&u_frames);\r\n    thread::spawn(move || {\r\n        let mut v = connect(&u_name);\r\n        send(\r\n            &mut v,\r\n            KIND_SUBSCRIBE,\r\n            serde_json::to_value(SubscribeReq {\r\n                session_id: sid_u,\r\n                from_seq: 0,\r\n                intent: AttachIntent::Viewer,\r\n                by: Some(\"unrelated-viewer\".to_string()),\r\n            })\r\n            .unwrap(),\r\n        );\r\n        while let Ok(f) = read_frame(&mut v) {\r\n            if f.kind == KIND_OUTPUT {\r\n                u_frames_w.fetch_add(1, Ordering::Relaxed);\r\n            }\r\n        }\r\n    });\r\n\r\n    // ── BLACK-HOLED session B: the real SEED+burst PTY child from conn A, then\r\n    //    DROP A so the ONLY persistent brain conn is the black-holed controller R. ──\r\n    let (a, sid_b) = spawn_session(&name, seed_burst_spawn_req(\"blackhole-victim-ep\"));\r\n    drop(a);\r\n\r\n    // ── Remote controller R: subscribes Control from_seq 0, drains until it has\r\n    //    seen `SEED` (a real controller frame flowed), signals main so main can\r\n    //    freeze the PRE-burst high-water, then on main's go fires the burst trigger,\r\n    //    drains a few burst frames (a real seq>0 frame delivered), and STOPS\r\n    //    reading — handing the Stream back to main UNREAD. Main holds it, never\r\n    //    draining, so the broker's R-writer parks in `write_frame` exactly as\r\n    //    against a suspended brain. R's Stream is NEVER dropped until the very end. ──\r\n    let r_name = name.clone();\r\n    let (seed_tx, seed_rx) = std::sync::mpsc::channel::<(bool, u64)>();\r\n    let (go_tx, go_rx) = std::sync::mpsc::channel::<()>();\r\n    let (hand_tx, hand_rx) = std::sync::mpsc::channel::<(Stream, u64)>();\r\n    thread::spawn(move || {\r\n        let mut r = connect(&r_name);\r\n        send(\r\n            &mut r,\r\n            KIND_SUBSCRIBE,\r\n            serde_json::to_value(SubscribeReq {\r\n                session_id: sid_b,\r\n                from_seq: 0,\r\n                intent: AttachIntent::Control,\r\n                by: Some(\"operator-one\".to_string()),\r\n            })\r\n            .unwrap(),\r\n        );\r\n        loop {\r\n            match read_frame(&mut r) {\r\n                Ok(f) if f.kind == KIND_SUBSCRIBED => break,\r","truncated":true,"truncatedBy":"lines","totalLines":482,"totalBytes":4007,"outputLines":95,"outputBytes":4007,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"fn query_sessions(name: &str, deadline: Duration) -> Option<SessionsReply> {\n…\n    thread::spawn(move || {\r\n        let mut c = connect(&name);\r\n        send(&mut c, KIND_SESSIONS, serde_json::Value::Null);\r\n        loop {\r\n            match read_frame(&mut c) {\r\n                Ok(f) if f.kind == KIND_SESSIONS_REPLY => {\r\n                    let r: SessionsReply = serde_json::from_value(f.payload).unwrap();\r\n                    let _ = tx.send(r);\r\n                    return;\r\n                }\r\n                Ok(_) => continue,\r\n                Err(_) => return,\r\n            }\r\n        }\r\n    });\r\n    rx.recv_timeout(deadline).ok()\r\n}\r\n\r\n// [int->REQ-CONN-BLACKHOLE-LIFECYCLE-HARNESS]\r\n#[test]\r\nfn blackholed_controller_lifecycle_five_invariants() {\r\n    init_home();\r\n    // Shrink the brain-write deadline so the wedged writer is \"stalled\" in ~400 ms\r\n    // instead of 15 s — the structural outcome, fast + deterministic (the knob\r\n    // grants wall-clock only; it never relaxes an assertion).\r\n    std::env::set_var(\"SPT_BRAIN_WRITE_DEADLINE_MS\", \"400\");\r\n\r\n    let name = unique_name();\r\n    let broker = Broker::bind(&name).expect(\"bind broker\");\r\n    let serve = Arc::clone(&broker);\r\n    thread::spawn(move || {\r\n        let _ = serve.serve();\r\n    });\r\n\r\n    // ── UNRELATED session U (invariant 1): a second, independent flood child on\r\n    //    its OWN endpoint. Drop its spawner conn (so U has no controller to wedge\r\n    //    — the PTY keeps producing headless), and attach a SEPARATE DRAINING\r\n    //    viewer whose frame count must keep advancing ACROSS the whole incident. ──\r\n    let (u_spawn, sid_u) = spawn_session(&name, flood_spawn_req(\"blackhole-unrelated-ep\"));\r\n    drop(u_spawn);\r\n    let u_name = name.clone();\r\n    let u_frames = Arc::new(AtomicU64::new(0));\r\n    let u_frames_w = Arc::clone(&u_frames);\r\n    thread::spawn(move || {\r\n        let mut v = connect(&u_name);\r\n        send(\r\n            &mut v,\r\n            KIND_SUBSCRIBE,\r\n            serde_json::to_value(SubscribeReq {\r\n                session_id: sid_u,\r\n                from_seq: 0,\r\n                intent: AttachIntent::Viewer,\r\n                by: Some(\"unrelated-viewer\".to_string()),\r\n            })\r\n            .unwrap(),\r\n        );\r\n        while let Ok(f) = read_frame(&mut v) {\r\n            if f.kind == KIND_OUTPUT {\r\n                u_frames_w.fetch_add(1, Ordering::Relaxed);\r\n            }\r\n        }\r\n    });\r\n\r\n    // ── BLACK-HOLED session B: the real SEED+burst PTY child from conn A, then\r\n    //    DROP A so the ONLY persistent brain conn is the black-holed controller R. ──\r\n    let (a, sid_b) = spawn_session(&name, seed_burst_spawn_req(\"blackhole-victim-ep\"));\r\n    drop(a);\r\n\r\n    // ── Remote controller R: subscribes Control from_seq 0, drains until it has\r\n    //    seen `SEED` (a real controller frame flowed), signals main so main can\r\n    //    freeze the PRE-burst high-water, then on main's go fires the burst trigger,\r\n    //    drains a few burst frames (a real seq>0 frame delivered), and STOPS\r\n    //    reading — handing the Stream back to main UNREAD. Main holds it, never\r\n    //    draining, so the broker's R-writer parks in `write_frame` exactly as\r\n    //    against a suspended brain. R's Stream is NEVER dropped until the very end. ──\r\n    let r_name = name.clone();\r\n    let (seed_tx, seed_rx) = std::sync::mpsc::channel::<(bool, u64)>();\r\n    let (go_tx, go_rx) = std::sync::mpsc::channel::<()>();\r\n    let (hand_tx, hand_rx) = std::sync::mpsc::channel::<(Stream, u64)>();\r\n    thread::spawn(move || {\r\n        let mut r = connect(&r_name);\r\n        send(\r\n            &mut r,\r\n            KIND_SUBSCRIBE,\r\n            serde_json::to_value(SubscribeReq {\r\n                session_id: sid_b,\r\n                from_seq: 0,\r\n                intent: AttachIntent::Control,\r\n                by: Some(\"operator-one\".to_string()),\r\n            })\r\n            .unwrap(),\r\n        );\r\n        loop {\r\n            match read_frame(&mut r) {\r\n                Ok(f) if f.kind == KIND_SUBSCRIBED => break,\r\n…\n            }\n        }\n…\n    });\n…\n}","startLine":226,"lineNumbers":[226,null,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,null,329,330,null,390,null,709]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\tests\\conn_blackhole_lifecycle.rs"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":710,"totalBytes":4007,"outputLines":95,"outputBytes":4007,"shownRange":{"start":229,"end":323},"nextOffset":324}}},"isError":false,"timestamp":1784247558809}}
{"type":"message","id":"32c3a183","parentId":"50662a5a","timestamp":"2026-07-17T00:19:18.820Z","message":{"role":"toolResult","toolCallId":"call_uiiIj6GdvsvM9IokPzkBCWsL|fc_05a4d8ea8a10ef0b016a597506b5ec819894027c117ab6ce89","toolName":"read","content":[{"type":"text","text":"pub fn run_brain(generation: u64, reason: StartReason) -> io::Result<()> {\n…\n    loop {\n        thread::sleep(BRAIN_HEARTBEAT);\n        // `net-status` is both the net-capability probe and the broker-liveness\n        // probe: an `Err` is the broker gone (or a future planned\n        // snapshot+self-exit, Q3) — exit for a supervised respawn.\n        let status = match brain.net_status() {\n            Ok(s) => s,\n            Err(e) => {\n                eprintln!(\"BRAIN_BROKER_LOST: {e} — exiting for supervised respawn\");\n                return Err(e);\n            }\n        };\n        if consumer_gate(status.enabled, consumers_started) {\n            let hex = status.node_id_hex.clone().unwrap_or_default();\n            spawn_net_consumers(&hex);\n            consumers_started = true;\n            eprintln!(\n                \"BRAIN_NET_CONSUMERS_UP: net enabled (node {hex}) — dispatcher + peer pump started\"\n            );\n        }\n        // DRIVE the broker's controller-liveness reap every heartbeat (UPDATE-WEDGE\n        // fix, counter-54). A `KIND_SESSIONS` poll is what runs the broker's\n        // `reap_dead_controller` sweep (broker.rs), which stall-evicts a black-holed\n        // LOCAL controller conn a HARD-KILLED prior brain generation left behind (its\n        // hosted PTYs keep writing to a dead pipe → the broker-side writer BLOCKS, never\n        // EOFs). Nothing else polls `KIND_SESSIONS` during an isolated brain-trial\n        // window, so without this the wedge never drains: the promotion DRAINED gate\n        // (`old_gen_drained()` = `!any_local_controller_wedged()`, a PURE READ that never\n        // drives the evict) stays false for the full trial → \"alive but never ready\"\n        // rollback (the 2026-07-09 field freeze), AND the same wedge black-holes recovery\n        // (the late `BRAIN_SUBSCRIBER_STALL_EVICT`). Driven on the FIRST heartbeat and on\n        // BOTH the trial candidate AND the rollback/recovery brain (one loop covers both);\n        // best-effort — a transient sessions error must never fell the heartbeat (the\n        // net_status probe above already owns broker-liveness). Self-applies: it drives\n        // the CURRENT (older) broker's already-shipped reap verb, so a new brain un-strands\n        // its own trial against a live older broker — no coordinated broker restart.\n        // [impl->REQ-UPDATE-TRIAL-DRAIN-DRIVE]\n        let _ = brain.sessions();\n        write_ready(generation);\n    }\n}\n\n/// Whether to spawn the net consumers this heartbeat: only once the broker\n/// reports a net endpoint up (`net_enabled`) AND we have not already started\n/// them. Pure for the unit table — the spawn-exactly-once + net-gating\n/// semantics that keep a single dispatcher/peer-pump set running.\n// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\nfn consumer_gate(net_enabled: bool, already_started: bool) -> bool {\n    net_enabled && !already_started\n}\n\n/// Spawn the net consumers — the inbound dispatcher + the outbound peer pump\n/// (D9-1) — against the broker's socket. **Relocated from the broker process to\n/// the brain child (restoration D2-1):** both are standalone IPC clients\n/// (`Brain::cold_start`, no shared `Arc<Broker>`), so they belong with the\n/// restartable brain. Each mints its own registry + stop flag and connects\n/// independently; when the brain process exits these in-process threads die with\n/// it, and the respawned brain re-spawns them from the current binary. Mirrors\n/// the wiring the broker boot used to do, `node_hex` now sourced from the\n/// `net-status` reply rather than the broker's identity load.\n// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\n// [impl->REQ-DAEMON-9]\nfn spawn_net_consumers(node_hex: &str) {\n    let registry = Arc::new(crate::registryhost::RegistryHost::new(node_hex));\n    let stop = Arc::new(AtomicBool::new(false));\n    let _ = crate::dispatch::spawn_dispatcher(\n        broker_socket_name(),\n        Arc::clone(&registry),\n        Arc::clone(&stop),\n    );\n…\n}\n\n[Showing lines 259-328 of 2116. Use :329 to continue]"}],"details":{"truncation":{"content":"    loop {\r\n        thread::sleep(BRAIN_HEARTBEAT);\r\n        // `net-status` is both the net-capability probe and the broker-liveness\r\n        // probe: an `Err` is the broker gone (or a future planned\r\n        // snapshot+self-exit, Q3) — exit for a supervised respawn.\r\n        let status = match brain.net_status() {\r\n            Ok(s) => s,\r\n            Err(e) => {\r\n                eprintln!(\"BRAIN_BROKER_LOST: {e} — exiting for supervised respawn\");\r\n                return Err(e);\r\n            }\r\n        };\r\n        if consumer_gate(status.enabled, consumers_started) {\r\n            let hex = status.node_id_hex.clone().unwrap_or_default();\r\n            spawn_net_consumers(&hex);\r\n            consumers_started = true;\r\n            eprintln!(\r\n                \"BRAIN_NET_CONSUMERS_UP: net enabled (node {hex}) — dispatcher + peer pump started\"\r\n            );\r\n        }\r\n        // DRIVE the broker's controller-liveness reap every heartbeat (UPDATE-WEDGE\r\n        // fix, counter-54). A `KIND_SESSIONS` poll is what runs the broker's\r\n        // `reap_dead_controller` sweep (broker.rs), which stall-evicts a black-holed\r\n        // LOCAL controller conn a HARD-KILLED prior brain generation left behind (its\r\n        // hosted PTYs keep writing to a dead pipe → the broker-side writer BLOCKS, never\r\n        // EOFs). Nothing else polls `KIND_SESSIONS` during an isolated brain-trial\r\n        // window, so without this the wedge never drains: the promotion DRAINED gate\r\n        // (`old_gen_drained()` = `!any_local_controller_wedged()`, a PURE READ that never\r\n        // drives the evict) stays false for the full trial → \"alive but never ready\"\r\n        // rollback (the 2026-07-09 field freeze), AND the same wedge black-holes recovery\r\n        // (the late `BRAIN_SUBSCRIBER_STALL_EVICT`). Driven on the FIRST heartbeat and on\r\n        // BOTH the trial candidate AND the rollback/recovery brain (one loop covers both);\r\n        // best-effort — a transient sessions error must never fell the heartbeat (the\r\n        // net_status probe above already owns broker-liveness). Self-applies: it drives\r\n        // the CURRENT (older) broker's already-shipped reap verb, so a new brain un-strands\r\n        // its own trial against a live older broker — no coordinated broker restart.\r\n        // [impl->REQ-UPDATE-TRIAL-DRAIN-DRIVE]\r\n        let _ = brain.sessions();\r\n        write_ready(generation);\r\n    }\r\n}\r\n\r\n/// Whether to spawn the net consumers this heartbeat: only once the broker\r\n/// reports a net endpoint up (`net_enabled`) AND we have not already started\r\n/// them. Pure for the unit table — the spawn-exactly-once + net-gating\r\n/// semantics that keep a single dispatcher/peer-pump set running.\r\n// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\r\nfn consumer_gate(net_enabled: bool, already_started: bool) -> bool {\r\n    net_enabled && !already_started\r\n}\r\n\r\n/// Spawn the net consumers — the inbound dispatcher + the outbound peer pump\r\n/// (D9-1) — against the broker's socket. **Relocated from the broker process to\r\n/// the brain child (restoration D2-1):** both are standalone IPC clients\r\n/// (`Brain::cold_start`, no shared `Arc<Broker>`), so they belong with the\r\n/// restartable brain. Each mints its own registry + stop flag and connects\r\n/// independently; when the brain process exits these in-process threads die with\r\n/// it, and the respawned brain re-spawns them from the current binary. Mirrors\r\n/// the wiring the broker boot used to do, `node_hex` now sourced from the\r\n/// `net-status` reply rather than the broker's identity load.\r\n// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\r\n// [impl->REQ-DAEMON-9]\r\nfn spawn_net_consumers(node_hex: &str) {\r\n    let registry = Arc::new(crate::registryhost::RegistryHost::new(node_hex));\r\n    let stop = Arc::new(AtomicBool::new(false));\r\n    let _ = crate::dispatch::spawn_dispatcher(\r\n        broker_socket_name(),\r\n        Arc::clone(&registry),\r\n        Arc::clone(&stop),\r\n    );\r","truncated":true,"truncatedBy":"lines","totalLines":1858,"totalBytes":3992,"outputLines":70,"outputBytes":3992,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"pub fn run_brain(generation: u64, reason: StartReason) -> io::Result<()> {\n…\n    loop {\r\n        thread::sleep(BRAIN_HEARTBEAT);\r\n        // `net-status` is both the net-capability probe and the broker-liveness\r\n        // probe: an `Err` is the broker gone (or a future planned\r\n        // snapshot+self-exit, Q3) — exit for a supervised respawn.\r\n        let status = match brain.net_status() {\r\n            Ok(s) => s,\r\n            Err(e) => {\r\n                eprintln!(\"BRAIN_BROKER_LOST: {e} — exiting for supervised respawn\");\r\n                return Err(e);\r\n            }\r\n        };\r\n        if consumer_gate(status.enabled, consumers_started) {\r\n            let hex = status.node_id_hex.clone().unwrap_or_default();\r\n            spawn_net_consumers(&hex);\r\n            consumers_started = true;\r\n            eprintln!(\r\n                \"BRAIN_NET_CONSUMERS_UP: net enabled (node {hex}) — dispatcher + peer pump started\"\r\n            );\r\n        }\r\n        // DRIVE the broker's controller-liveness reap every heartbeat (UPDATE-WEDGE\r\n        // fix, counter-54). A `KIND_SESSIONS` poll is what runs the broker's\r\n        // `reap_dead_controller` sweep (broker.rs), which stall-evicts a black-holed\r\n        // LOCAL controller conn a HARD-KILLED prior brain generation left behind (its\r\n        // hosted PTYs keep writing to a dead pipe → the broker-side writer BLOCKS, never\r\n        // EOFs). Nothing else polls `KIND_SESSIONS` during an isolated brain-trial\r\n        // window, so without this the wedge never drains: the promotion DRAINED gate\r\n        // (`old_gen_drained()` = `!any_local_controller_wedged()`, a PURE READ that never\r\n        // drives the evict) stays false for the full trial → \"alive but never ready\"\r\n        // rollback (the 2026-07-09 field freeze), AND the same wedge black-holes recovery\r\n        // (the late `BRAIN_SUBSCRIBER_STALL_EVICT`). Driven on the FIRST heartbeat and on\r\n        // BOTH the trial candidate AND the rollback/recovery brain (one loop covers both);\r\n        // best-effort — a transient sessions error must never fell the heartbeat (the\r\n        // net_status probe above already owns broker-liveness). Self-applies: it drives\r\n        // the CURRENT (older) broker's already-shipped reap verb, so a new brain un-strands\r\n        // its own trial against a live older broker — no coordinated broker restart.\r\n        // [impl->REQ-UPDATE-TRIAL-DRAIN-DRIVE]\r\n        let _ = brain.sessions();\r\n        write_ready(generation);\r\n    }\r\n}\r\n\r\n/// Whether to spawn the net consumers this heartbeat: only once the broker\r\n/// reports a net endpoint up (`net_enabled`) AND we have not already started\r\n/// them. Pure for the unit table — the spawn-exactly-once + net-gating\r\n/// semantics that keep a single dispatcher/peer-pump set running.\r\n// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\r\nfn consumer_gate(net_enabled: bool, already_started: bool) -> bool {\r\n    net_enabled && !already_started\r\n}\r\n\r\n/// Spawn the net consumers — the inbound dispatcher + the outbound peer pump\r\n/// (D9-1) — against the broker's socket. **Relocated from the broker process to\r\n/// the brain child (restoration D2-1):** both are standalone IPC clients\r\n/// (`Brain::cold_start`, no shared `Arc<Broker>`), so they belong with the\r\n/// restartable brain. Each mints its own registry + stop flag and connects\r\n/// independently; when the brain process exits these in-process threads die with\r\n/// it, and the respawned brain re-spawns them from the current binary. Mirrors\r\n/// the wiring the broker boot used to do, `node_hex` now sourced from the\r\n/// `net-status` reply rather than the broker's identity load.\r\n// [impl->REQ-HAZARD-BROKER-PROCESS-ISOLATION]\r\n// [impl->REQ-DAEMON-9]\r\nfn spawn_net_consumers(node_hex: &str) {\r\n    let registry = Arc::new(crate::registryhost::RegistryHost::new(node_hex));\r\n    let stop = Arc::new(AtomicBool::new(false));\r\n    let _ = crate::dispatch::spawn_dispatcher(\r\n        broker_socket_name(),\r\n        Arc::clone(&registry),\r\n        Arc::clone(&stop),\r\n    );\r\n…\n}","startLine":159,"lineNumbers":[159,null,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,null,333]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\brainproc.rs"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":2116,"totalBytes":3992,"outputLines":70,"outputBytes":3992,"shownRange":{"start":259,"end":328},"nextOffset":329}}},"isError":false,"timestamp":1784247558820}}
{"type":"message","id":"c1ccf8e3","parentId":"32c3a183","timestamp":"2026-07-17T00:19:18.858Z","message":{"role":"toolResult","toolCallId":"call_PPTNg6pkg3taavDuczqOin1J|fc_05a4d8ea8a10ef0b016a597506b60c81988e7c597f93132b9e","toolName":"read","content":[{"type":"text","text":"fn viewer_writer(\n…\n) {\n…\n    while let Ok(frame) = rx.recv() {\n        if !matches!(send.write(&frame), Ok(ConnWrite::Done)) {\n            return;\n        }\n    }\n    note.reason = \"channel-closed\";\n    // `tx` dropped. If this was an EVICTION for overflow (append set the flag\n    // before dropping the sink), emit a KIND_VIEWER_EVICTED marker — DISTINCT from\n    // a session-exit EOF — so the serving brain skips to live (re-subscribes from\n    // the ring floor) instead of dying silently. A NORMAL teardown (session end /\n    // conn drop) leaves the flag false → no marker, exit quietly. This write is in\n    // the dedicated writer thread, OFF the log lock / off the drain (the W1/b4\n    // isolation is preserved). REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT.\n    // [impl->REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT]\n    if evicted.load(Ordering::Acquire) {\n        let marker = evicted_envelope(session_id);\n        let _ = send.write(&marker);\n    }\n}\n\n/// Round-4 observability bridge: a controller writer whose bounded conn write\n/// was DEADLINE-retired (`TimedOut` — the conn watchdog aborted a wedged\n/// write, or a gate-wait behind one exhausted the bound) IS the\n/// brain-subscriber stall-evict fact the W2 tally counts. Pre-round-4 that\n/// wedge aged until a logical sampler (`stall_evict_controller`) observed it;\n/// the physical bound now fires FIRST, so the tally is recorded here — same\n/// event class, same `daemon status` surface. An ORGANIC write failure (peer\n/// death, any non-TimedOut error) stays uncounted, exactly as before.\n// [impl->REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\n// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\nfn note_controller_write_retired(sid: u64, conn: u64, e: &io::Error) {\n    if e.kind() != io::ErrorKind::TimedOut {\n        return;\n    }\n    // conn id + stamps (F-039 leg b). [impl->REQ-CONN-POISON-ATTRIBUTION]\n    eprintln!(\n        \"BRAIN_SUBSCRIBER_STALL_EVICT:{sid} conn={conn} {} — controller conn write \\\n         exceeded its bound; physical conn poisoned + retired (writer released, EOF \\\n         cleanup follows) [REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\",\n        crate::conn::log_stamp()\n    );\n    record_stall_evict();\n}\n\n/// A message to the CONTROLLER writer thread (W1). `Output` carries a sequenced\n/// chunk and advances the authoritative `delivered_through` on a successful\n/// write; `Control` is an out-of-band notice (Displaced, …) that is written but\n/// does NOT move the resume cursor.\nenum CtrlMsg {\n    Output(u64, Envelope),\n    Control(Envelope),\n}\n\n[Showing lines 1414-1463 of 6063. Use :1464 to continue]"}],"details":{"truncation":{"content":"        if !matches!(send.write(&frame), Ok(ConnWrite::Done)) {\r\n            return;\r\n        }\r\n    }\r\n    note.reason = \"channel-closed\";\r\n    // `tx` dropped. If this was an EVICTION for overflow (append set the flag\r\n    // before dropping the sink), emit a KIND_VIEWER_EVICTED marker — DISTINCT from\r\n    // a session-exit EOF — so the serving brain skips to live (re-subscribes from\r\n    // the ring floor) instead of dying silently. A NORMAL teardown (session end /\r\n    // conn drop) leaves the flag false → no marker, exit quietly. This write is in\r\n    // the dedicated writer thread, OFF the log lock / off the drain (the W1/b4\r\n    // isolation is preserved). REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT.\r\n    // [impl->REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT]\r\n    if evicted.load(Ordering::Acquire) {\r\n        let marker = evicted_envelope(session_id);\r\n        let _ = send.write(&marker);\r\n    }\r\n}\r\n\r\n/// Round-4 observability bridge: a controller writer whose bounded conn write\r\n/// was DEADLINE-retired (`TimedOut` — the conn watchdog aborted a wedged\r\n/// write, or a gate-wait behind one exhausted the bound) IS the\r\n/// brain-subscriber stall-evict fact the W2 tally counts. Pre-round-4 that\r\n/// wedge aged until a logical sampler (`stall_evict_controller`) observed it;\r\n/// the physical bound now fires FIRST, so the tally is recorded here — same\r\n/// event class, same `daemon status` surface. An ORGANIC write failure (peer\r\n/// death, any non-TimedOut error) stays uncounted, exactly as before.\r\n// [impl->REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\r\n// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\r\nfn note_controller_write_retired(sid: u64, conn: u64, e: &io::Error) {\r\n    if e.kind() != io::ErrorKind::TimedOut {\r\n        return;\r\n    }\r\n    // conn id + stamps (F-039 leg b). [impl->REQ-CONN-POISON-ATTRIBUTION]\r\n    eprintln!(\r\n        \"BRAIN_SUBSCRIBER_STALL_EVICT:{sid} conn={conn} {} — controller conn write \\\r\n         exceeded its bound; physical conn poisoned + retired (writer released, EOF \\\r\n         cleanup follows) [REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\",\r\n        crate::conn::log_stamp()\r\n    );\r\n    record_stall_evict();\r\n}\r\n\r\n/// A message to the CONTROLLER writer thread (W1). `Output` carries a sequenced\r\n/// chunk and advances the authoritative `delivered_through` on a successful\r\n/// write; `Control` is an out-of-band notice (Displaced, …) that is written but\r\n/// does NOT move the resume cursor.\r\nenum CtrlMsg {\r\n    Output(u64, Envelope),\r\n    Control(Envelope),\r","truncated":true,"truncatedBy":"lines","totalLines":4650,"totalBytes":2535,"outputLines":50,"outputBytes":2535,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"fn viewer_writer(\n…\n) {\n…\n    while let Ok(frame) = rx.recv() {\n        if !matches!(send.write(&frame), Ok(ConnWrite::Done)) {\r\n            return;\r\n        }\r\n    }\r\n    note.reason = \"channel-closed\";\r\n    // `tx` dropped. If this was an EVICTION for overflow (append set the flag\r\n    // before dropping the sink), emit a KIND_VIEWER_EVICTED marker — DISTINCT from\r\n    // a session-exit EOF — so the serving brain skips to live (re-subscribes from\r\n    // the ring floor) instead of dying silently. A NORMAL teardown (session end /\r\n    // conn drop) leaves the flag false → no marker, exit quietly. This write is in\r\n    // the dedicated writer thread, OFF the log lock / off the drain (the W1/b4\r\n    // isolation is preserved). REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT.\r\n    // [impl->REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT]\r\n    if evicted.load(Ordering::Acquire) {\r\n        let marker = evicted_envelope(session_id);\r\n        let _ = send.write(&marker);\r\n    }\r\n}\r\n\r\n/// Round-4 observability bridge: a controller writer whose bounded conn write\r\n/// was DEADLINE-retired (`TimedOut` — the conn watchdog aborted a wedged\r\n/// write, or a gate-wait behind one exhausted the bound) IS the\r\n/// brain-subscriber stall-evict fact the W2 tally counts. Pre-round-4 that\r\n/// wedge aged until a logical sampler (`stall_evict_controller`) observed it;\r\n/// the physical bound now fires FIRST, so the tally is recorded here — same\r\n/// event class, same `daemon status` surface. An ORGANIC write failure (peer\r\n/// death, any non-TimedOut error) stays uncounted, exactly as before.\r\n// [impl->REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\r\n// [impl->REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\r\nfn note_controller_write_retired(sid: u64, conn: u64, e: &io::Error) {\r\n    if e.kind() != io::ErrorKind::TimedOut {\r\n        return;\r\n    }\r\n    // conn id + stamps (F-039 leg b). [impl->REQ-CONN-POISON-ATTRIBUTION]\r\n    eprintln!(\r\n        \"BRAIN_SUBSCRIBER_STALL_EVICT:{sid} conn={conn} {} — controller conn write \\\r\n         exceeded its bound; physical conn poisoned + retired (writer released, EOF \\\r\n         cleanup follows) [REQ-HAZARD-BROKER-VIEWER-BRAIN-DECOUPLE]\",\r\n        crate::conn::log_stamp()\r\n    );\r\n    record_stall_evict();\r\n}\r\n\r\n/// A message to the CONTROLLER writer thread (W1). `Output` carries a sequenced\r\n/// chunk and advances the authoritative `delivered_through` on a successful\r\n/// write; `Control` is an out-of-band notice (Displaced, …) that is written but\r\n/// does NOT move the resume cursor.\r\nenum CtrlMsg {\r\n    Output(u64, Envelope),\r\n    Control(Envelope),\r\n}","startLine":1376,"lineNumbers":[1376,null,1382,null,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\broker.rs"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":6063,"totalBytes":2535,"outputLines":50,"outputBytes":2535,"shownRange":{"start":1414,"end":1463},"nextOffset":1464}}},"isError":false,"timestamp":1784247558858}}
{"type":"message","id":"007e184c","parentId":"c1ccf8e3","timestamp":"2026-07-17T00:19:18.885Z","message":{"role":"user","content":"Your current interruptible wait was interrupted because an IRC message arrived from your parent agent `Main`.\n\nParent IRC message:\n\nField trace: current v0.34 cold generation has 33 CONN_WRITE_POISONED stream-subscriber incidents. Every write poisons at ~15000ms; corresponding DISPATCH failure lands 15.1–62s after write start (recent 17.6,25.4,29.1,30.1,31.1,36.6,59.4,61.6s). Median poison interarrival 95.5s, min 29.7s. 4,361 stream-sub-attach records and 584 PUMP_PEER_FAIL 10s events. Recent webbie session controller attach at wall 1784245849362; stream 4834 write started +37.354s, poisoned +52.366s. Please incorporate/falsify causal tie to PTY RC stall and identify why DISPATCH completion remains delayed after poison.","attribution":"agent","timestamp":1784247520232,"steering":true}}
{"type":"message","id":"1f9a1311","parentId":"007e184c","timestamp":"2026-07-17T00:19:33.268Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Tracing delayed dispatch after poison**\n\n**Investigating delayed drops in connection cleanup**"},{"type":"toolCall","id":"call_dgJURwnmxa04PlA6lv7YKwga|fc_05a4d8ea8a10ef0b016a5975152e88819881c066232b8ec8d7","name":"read","arguments":{"i":"Reading Windows conn cancellation","path":"crates/spt-daemon/src/conn.rs","selector":"70-140,200-400,550-700"}},{"type":"toolCall","id":"call_RYB6xZEzJBvwwPsSO2c4gCYd|fc_05a4d8ea8a10ef0b016a5975152eb0819887295f6513c77b7f","name":"grep","arguments":{"i":"Finding dispatch family read bounds","pattern":"fn serve_(attach|sync|update|notif|wan|registry)|read_event_until|read_event\\(|Duration::from_secs\\((10|15|20|30|60)\\)|recv_timeout","path":"crates/spt-daemon/src/attach.rs;crates/spt-daemon/src/sync.rs;crates/spt-daemon/src/update.rs;crates/spt-daemon/src/notif.rs;crates/spt-daemon/src/relay.rs;crates/spt-daemon/src/dispatch.rs;crates/spt-daemon/src/brain.rs;crates/spt-daemon/src/nethost.rs","selector":null,"case":true,"gitignore":true,"skip":null}},{"type":"toolCall","id":"call_dtyVGNxXq9qvk1HQg58RpEY4|fc_05a4d8ea8a10ef0b016a5975152eb88198a529ee804b0e061f","name":"read","arguments":{"i":"Reading attach serve loop","path":"crates/spt-daemon/src/attach.rs","selector":"1-260"}},{"type":"toolCall","id":"call_DuBp5EA6o6rHz7jtQzGn6eqe|fc_05a4d8ea8a10ef0b016a5975152ec08198984eba1a3e6198b3","name":"read","arguments":{"i":"Reading dispatch family remainder","path":"crates/spt-daemon/src/dispatch.rs","selector":"550-760"}},{"type":"toolCall","id":"call_FgSI1UHPllNuilXEinSgIt2T|fc_05a4d8ea8a10ef0b016a5975152ec48198a79a9495209279d5","name":"irc","arguments":{"i":"Sharing current telemetry interpretation","op":"send","to":"Main","message":"Incorporating. Preliminary: exact stream=3907: attach/write 1784244082619; poison 15008ms later; DISPATCH failure +4741ms; retry attach total 20354ms. Other unrelated broker conns continue during 15s blocked write, so timeout is per physical stream-subscriber, not broker-wide. Investigating post-poison delay (suspect client read half/serve loop/drop cleanup or family-specific wait).","replyTo":null,"await":false,"from":null,"timeoutMs":null,"peek":null}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":6610,"output":660,"cacheRead":201216,"cacheWrite":0,"totalTokens":208486,"reasoningTokens":212,"cost":{"input":0.03305,"output":0.0198,"cacheRead":0.10060799999999999,"cacheWrite":0,"total":0.15345799999999998}},"stopReason":"toolUse","timestamp":1784247558898,"responseId":"resp_05a4d8ea8a10ef0b016a5975075e488198abbe2fdcc2b54387","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a59750915b08198acfbc74c2fe9c3e2","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXUV2Upp13OGjgBMd4IOpB1t5XIaG7WTwu8y4-70MSCZf1OPBkCON1gC_OxGuZcbJbe6GfAC_zmmdpHrMKZKZ_Dqt5xQQ4V2V2-RUbUm0mklT1YiDel0SRmmiPRucfFZjqLUfgL51XzIcBNQcA6G2ozSxBlMjEukNJpU1EhsXpuhirZh0tgomL1n9G1LgceOUzVNdWM6iZfIvjgWEnwD7rLPb0JNKrWFe-uYUVzNa9mAOeR2APAW4oMQD4rkK-_UnG0udkh9-dttnu_v-kY8ENM7gLiI8I2bh9FVSNdgPCfCK4qy_sRoamGTJ7AJOMr0zUrw2iqleXL4GZ4QQ6Ua_Zg2qmkpndXMBTmGs7GIoCpAHUHs93Qa9JWFtgSLH5avQqkoNaVDUwuqV3rbAl2594glxysNatuILWsiDxrQENbBBfIiJ_W64uA9R0fPp-lahHoX9rTXliQG607miYJrZ0uRg6l9Pc4IrTPU4q6zM0G1wHeWtLZ9NDRsnZv6AyfcZKE91py7lIOC9cOfqnlvgeYg9NHXgSIKfMAB8ja5dAXcGfBASEwil6ivb-7GjpCw-Y4ejkAnc-fFc625CxdvixhPtTPK5aPV6TnnOaV47vh1gPTUTZNqd_0j-v8H90QBPL-_kuWj-n6jXQCjbSzCLujw0pgKuBIP_HmS3DGnAI_OVO21d-Hypa62XMjZpJAS4UdYZsv5-Rf4H3qqva-Sd-FFQikcnk4Z1IWMaBhAknCfg_oDNi1L2DVhRRy6HtxI4oyeAFjjAa2gijgGGmwDvv8vaxyGGpNI4HCymUzubc5yVdYgkssQK0H4NXN1ra8EEkni3eZza-AQTrF_D5wXazGaYqm6-nVj5fxG1i9VoTsLocMurlqUUN50br_XW0JBZZRyI_4328SnzgG6TxUKQVnpxOL4j-c4LC3Z7PSEYZM9yliaWa5ldNLPtMpgwO0AWR-54aoOwfEf6aJo3vIMJj1gwNe4Yp9XdEyUSo9bbzoAoKl587QIFZFEUBDQk-p4HxFS9yI6UVcIDbTGCvuS45s8KFTCWe3CioUOuPOmnT1CtlfHJ0GNcFGn_7SKna1ckvovuYHmvOuIOKAzaRfAfi3yrOamSwgl9t-kNzP05m-PBf6Pf93KgH8ASvl6dVvxOuwcCqI3kksuZIFGPZSxDfiNWvigFK07En7lhi2Uyckju0h---feGU1CklkBoLhqAsrT-J1OTlMHxWdnElgMj-M5PQdRwygpgwYPQpDOaqqcbTf4UBPQbyfXyDatwTy7-AUMDi9elzaruv-7ycDuUQ3snrh36ykxPP561c3SNbUKbPtqRhj2NnQIgbmwOfTD8P8EYSTWbcDeX79CKN_3n_SydXjEGs63w2K7ppce6sxbSHIIMw_S7HQdLHVsywtWVzaH8xKkH4pH7PfUKERjXTgVs5LDWLD08EU8WJ3gZdT8BMe0OcLDGuEvFkWbKfMmJYSq0mOBat3fjFJlIIuy0999eZdeO9UnEMWA3gtzaLQ36VM0yPXrMxCRsFojU056ib0ee1HZP1ew8eUE0lmtlTBkaDvd7FGdvbWiWTDVy0sudkCckTAHh-EqBRCaoxaMsewvFy-qtq8qtYnjsRvHt1hAK3JayZr_sFIyyQT9eiE_lrkKs3EkZ965FoDO8QUrtxZNbKR7YN4rN-EGJp1Lii1O-DaF4EhOWaTTkOxFjXjzNnny4JLaTJqVSZsmkrwahze3RmRpuOt-GzxCnFP_lL1L5EcNzaRI2SOPfT9-2fqp8fhZOE4JsnZ4jwYOPD2gyEHUwD0bBGo6ELc95WGG8xYJqBR366Nw7lsXZTOGwQkUqWs61pEGvbUc7wzOtoVQchRmt4D7oUfHKLRARdbJZVvUwkms4NLPtqrLrYYwqTcaOombxfrvn-YePzb-P5o1UtimUb8S_gEvYAqExv-cB4psfbhFpjalOuoY0lcoY2YRcqOwob4ynPy0vt8t55ZPU9oOBZ28Pc_sypNC_FvSCx0NpvA7eC4onWoG2dm9robygR7w0GCtgwu6PoV7oeKr8tpauygklZ07r-gOAVGHTovr4b1LXVdYx7k4GyPC9kvUWlx_n1PhnQ3BVshxrADaXlVpMCT558k6ICmqnITaDaY0mqoZ9oVn0zkG9b2IODan0uC1I5wist6wViyOxcMjs-0kajJDb9T-ery-mlK2gupeRqWFe4Jf1egI8mkvqRcu3Fv2lv0ggLbbcAZf1w_1_WAYC7xgf8cO96ueFavzg1a_TE4dGfICjYCWcDStTLnZoZZgOCeCPrnfO7pPWaOzTyByRPJvtQ_40OsdxdGAFJmhkx0ue2QN7wkUYFUael0i7UQtOx6RuVpm9vrOR1yCkZ82","summary":[{"type":"summary_text","text":"**Tracing delayed dispatch after poison**"},{"type":"summary_text","text":"**Investigating delayed drops in connection cleanup**"}]},{"id":"fc_05a4d8ea8a10ef0b016a5975152e88819881c066232b8ec8d7","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading Windows conn cancellation\",\"path\":\"crates/spt-daemon/src/conn.rs\",\"selector\":\"70-140,200-400,550-700\"}","call_id":"call_dgJURwnmxa04PlA6lv7YKwga","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a5975152eb0819887295f6513c77b7f","type":"function_call","status":"completed","arguments":"{\"i\":\"Finding dispatch family read bounds\",\"pattern\":\"fn serve_(attach|sync|update|notif|wan|registry)|read_event_until|read_event\\\\(|Duration::from_secs\\\\((10|15|20|30|60)\\\\)|recv_timeout\",\"path\":\"crates/spt-daemon/src/attach.rs;crates/spt-daemon/src/sync.rs;crates/spt-daemon/src/update.rs;crates/spt-daemon/src/notif.rs;crates/spt-daemon/src/relay.rs;crates/spt-daemon/src/dispatch.rs;crates/spt-daemon/src/brain.rs;crates/spt-daemon/src/nethost.rs\",\"selector\":null,\"case\":true,\"gitignore\":true,\"skip\":null}","call_id":"call_RYB6xZEzJBvwwPsSO2c4gCYd","name":"grep"},{"id":"fc_05a4d8ea8a10ef0b016a5975152eb88198a529ee804b0e061f","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading attach serve loop\",\"path\":\"crates/spt-daemon/src/attach.rs\",\"selector\":\"1-260\"}","call_id":"call_dtyVGNxXq9qvk1HQg58RpEY4","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a5975152ec08198984eba1a3e6198b3","type":"function_call","status":"completed","arguments":"{\"i\":\"Reading dispatch family remainder\",\"path\":\"crates/spt-daemon/src/dispatch.rs\",\"selector\":\"550-760\"}","call_id":"call_DuBp5EA6o6rHz7jtQzGn6eqe","name":"read"},{"id":"fc_05a4d8ea8a10ef0b016a5975152ec48198a79a9495209279d5","type":"function_call","status":"completed","arguments":"{\"i\":\"Sharing current telemetry interpretation\",\"op\":\"send\",\"to\":\"Main\",\"message\":\"Incorporating. Preliminary: exact stream=3907: attach/write 1784244082619; poison 15008ms later; DISPATCH failure +4741ms; retry attach total 20354ms. Other unrelated broker conns continue during 15s blocked write, so timeout is per physical stream-subscriber, not broker-wide. Investigating post-poison delay (suspect client read half/serve loop/drop cleanup or family-specific wait).\",\"replyTo\":null,\"await\":false,\"from\":null,\"timeoutMs\":null,\"peek\":null}","call_id":"call_FgSI1UHPllNuilXEinSgIt2T","name":"irc"}]},"duration":14369.17499999702,"ttft":2181.6781999990344,"contextSnapshot":{"promptTokens":207826,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_dgJURwnmxa04PlA6lv7YKwga|fc_05a4d8ea8a10ef0b016a5975152e88819881c066232b8ec8d7","toolName":"read","startedAt":"2026-07-17T00:19:33.269Z","args":{"path":"crates/spt-daemon/src/conn.rs"},"intent":"Reading Windows conn cancellation"},"id":"32fdd6fa","parentId":"1f9a1311","timestamp":"2026-07-17T00:19:33.269Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_RYB6xZEzJBvwwPsSO2c4gCYd|fc_05a4d8ea8a10ef0b016a5975152eb0819887295f6513c77b7f","toolName":"grep","startedAt":"2026-07-17T00:19:33.269Z","args":{"path":"crates/spt-daemon/src/attach.rs;crates/spt-daemon/src/sync.rs;crates/spt-daemon/src/update.rs;crates/spt-daemon/src/notif.rs;crates/spt-daemon/src/relay.rs;crates/spt-daemon/src/dispatch.rs;crates/spt…"},"intent":"Finding dispatch family read bounds"},"id":"9e15d621","parentId":"32fdd6fa","timestamp":"2026-07-17T00:19:33.269Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_dtyVGNxXq9qvk1HQg58RpEY4|fc_05a4d8ea8a10ef0b016a5975152eb88198a529ee804b0e061f","toolName":"read","startedAt":"2026-07-17T00:19:33.269Z","args":{"path":"crates/spt-daemon/src/attach.rs"},"intent":"Reading attach serve loop"},"id":"9e36502b","parentId":"9e15d621","timestamp":"2026-07-17T00:19:33.269Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_DuBp5EA6o6rHz7jtQzGn6eqe|fc_05a4d8ea8a10ef0b016a5975152ec08198984eba1a3e6198b3","toolName":"read","startedAt":"2026-07-17T00:19:33.269Z","args":{"path":"crates/spt-daemon/src/dispatch.rs"},"intent":"Reading dispatch family remainder"},"id":"b2cf2a73","parentId":"9e36502b","timestamp":"2026-07-17T00:19:33.269Z"}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_FgSI1UHPllNuilXEinSgIt2T|fc_05a4d8ea8a10ef0b016a5975152ec48198a79a9495209279d5","toolName":"irc","startedAt":"2026-07-17T00:19:33.269Z","intent":"Sharing current telemetry interpretation"},"id":"3c04b514","parentId":"b2cf2a73","timestamp":"2026-07-17T00:19:33.269Z"}
{"type":"message","id":"a4bc06df","parentId":"3c04b514","timestamp":"2026-07-17T00:19:33.270Z","message":{"role":"toolResult","toolCallId":"call_FgSI1UHPllNuilXEinSgIt2T|fc_05a4d8ea8a10ef0b016a5975152ec48198a79a9495209279d5","toolName":"irc","content":[{"type":"text","text":"Delivered to 1 peer(s):\n- Main: injected"}],"details":{"op":"send","from":"LiveLogRca","to":"Main","receipts":[{"to":"Main","outcome":"injected"}]},"isError":false,"timestamp":1784247573269}}
{"type":"message","id":"3df231cf","parentId":"a4bc06df","timestamp":"2026-07-17T00:19:33.282Z","message":{"role":"toolResult","toolCallId":"call_dgJURwnmxa04PlA6lv7YKwga|fc_05a4d8ea8a10ef0b016a5975152e88819881c066232b8ec8d7","toolName":"read","content":[{"type":"text","text":"use crate::codec::write_frame;\nuse crate::frame::Envelope;\n\n/// Stable per-physical-conn identity mint — a monotonic u64 stamped at\n/// [`BrokerConn::new`]. Before this the only conn identity was `Arc::ptr_eq`,\n/// which does not survive a log line: per-line CONN_WRITE_POISONED churn was\n/// UNDECIDABLE between fresh-carrier churn and stderr interleave (the F-039\n/// RCA's terminal fork). Every lifecycle record carries `conn=<id>`.\n// [impl->REQ-CONN-POISON-ATTRIBUTION]\nstatic CONN_ID_SEQ: AtomicU64 = AtomicU64::new(0);\n\n/// The shared monotonic anchor for `mono_ms` stamps. Set explicitly at daemon\n/// startup ([`init_log_anchor`], both broker and brain entries) so every\n/// record in one process shares one base; lazily initialized on first stamp\n/// otherwise (tests, in-process brokers) — correlation needs a COMMON base,\n/// not an absolute one.\nstatic MONO_ANCHOR: OnceLock<Instant> = OnceLock::new();\n\n/// Anchor the monotonic half of [`log_stamp`] at process start — called first\n/// thing by both daemon entries, next to `scrub_identity_env`.\n// [impl->REQ-CONN-POISON-ATTRIBUTION]\npub(crate) fn init_log_anchor() {\n    let _ = MONO_ANCHOR.set(Instant::now());\n}\n\n/// Wall-clock + monotonic stamp for daemon-stderr correlation records\n/// (`wall_ms` = Unix epoch millis; `mono_ms` = millis since [`init_log_anchor`]).\n/// stderr has no per-line timestamps and broker+brain share one file — without\n/// BOTH clocks, interleaved records cannot be ordered (monotonic) or matched\n/// to field incident times (wall).\n// [impl->REQ-CONN-POISON-ATTRIBUTION]\npub(crate) fn log_stamp() -> String {\n    let wall_ms = SystemTime::now()\n        .duration_since(UNIX_EPOCH)\n        .map(|d| d.as_millis())\n        .unwrap_or(0);\n    let mono_ms = MONO_ANCHOR.get_or_init(Instant::now).elapsed().as_millis();\n    format!(\"wall_ms={wall_ms} mono_ms={mono_ms}\")\n}\n\n/// Attribution-label cap: facts accrete per role attach (a long-lived brain\n/// conn can be controller + viewer + presence subscriber over its life), and\n/// the label must stay BOUNDED — one truncation marker, then no further growth.\nconst LABEL_CAP: usize = 240;\n\n/// One bounded write's outcome (beyond `Err` = poisoned/timed-out/failed).\n#[derive(Debug, PartialEq, Eq)]\npub(crate) enum ConnWrite {\n    /// The frame was fully written.\n    Done,\n    /// The pre-write gate closure declined (e.g. a superseded controller\n    /// writer's epoch check) — nothing was written; the conn stays healthy.\n    Superseded,\n}\n\n/// The serialized write gate. `half: Some` = free; `None` = a write is in\n/// flight (checked out) or the conn has retired (then `poisoned` is set).\nstruct Gate {\n    half: Option<SendHalf>,\n}\n\n/// Watchdog bookkeeping: the currently in-flight op and its ABSOLUTE deadline.\nstruct Dog {\n    /// `Some((op_id, deadline))` while a write is in flight.\n    inflight: Option<(u64, Instant)>,\n    /// Raised by [`BrokerConn::drop`]; the watchdog exits.\n    shutdown: bool,\n}\n\n/// The state shared with the watchdog thread (no `Arc<BrokerConn>` cycle —\n/// the watchdog must not keep the conn alive).\n…\n\n#[cfg(unix)]\nfn raw_of(half: &SendHalf) -> i32 {\n    use std::os::fd::{AsFd, AsRawFd};\n    match half {\n        SendHalf::UdSocket(h) => h.as_fd().as_raw_fd(),\n    }\n}\n\n#[cfg(windows)]\nmod win {\n    // kernel32 is in the MSVC default link set — raw externs, no new dep\n    // (the deelevate.rs / daemon.rs posture).\n    extern \"system\" {\n        pub fn CancelIoEx(handle: isize, overlapped: *mut core::ffi::c_void) -> i32;\n        pub fn DisconnectNamedPipe(handle: isize) -> i32;\n    }\n}\n\nimpl Inner {\n    /// The attribution snapshot every lifecycle record carries: stable conn id,\n    /// accreted role/endpoint/session facts, wall + monotonic stamps.\n    // [impl->REQ-CONN-POISON-ATTRIBUTION]\n    fn attribution(&self) -> String {\n        let label = recover(&self.label);\n        let facts: &str = if label.is_empty() { \"role=unattributed\" } else { &label };\n        format!(\"conn={} {} {}\", self.id, facts, log_stamp())\n    }\n\n    /// Render the once-per-conn retirement record — the F-039 token split\n    /// (leg a): `CONN_WRITE_POISONED` is RESERVED for the deadline class\n    /// (`timed_out` latched — the wedge observable blackhole-controller.ps1\n    /// watches); an ORGANIC write failure (peer death / broken pipe on an\n    /// already-dead counterpart, the offline-peer dial churn) emits the\n    /// distinct `CONN_WRITE_RETIRED` token carrying the error kind and the\n    /// SAME attribution fields — quieter class, never thinner (the retired\n    /// class is what discriminates fresh-carrier churn from interleave\n    /// artifact in the field). Behavior is identical either way: poison,\n    /// abort, retire, never reuse.\n    // [impl->REQ-CONN-POISON-DIAL-SCOPE]\n    fn render_retirement(&self, timed_out: bool, cause: Option<&io::Error>) -> String {\n        if timed_out {\n            format!(\n                \"CONN_WRITE_POISONED: {} — physical broker conn retired: a write \\\n                 exceeded its {}ms bound; in-flight I/O aborted, conn never reused \\\n                 [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\",\n                self.attribution(),\n                self.bound.as_millis()\n            )\n        } else {\n            let cause = match cause {\n                Some(e) => format!(\"{:?}: {e}\", e.kind()),\n                None => \"write failed\".to_string(),\n            };\n            format!(\n                \"CONN_WRITE_RETIRED: {} — organic write failure ({cause}); physical \\\n                 broker conn poisoned + retired, never reused (same retire behavior \\\n                 as POISONED — only the failure class differs) \\\n                 [REQ-CONN-POISON-DIAL-SCOPE]\",\n                self.attribution()\n            )\n        }\n    }\n\n    /// One BOUNDED per-conn lifecycle record (leg d, doyle-confirmed\n    /// UNCONDITIONAL): `write-start` (first write only), `transport-close`\n    /// (drop), `writer-exit` / `*-attach` / `*-replaced` (emitted by the\n    /// broker's sink machinery through [`BrokerConn::lifecycle_event`]). The\n    /// timeout/cancel leg is the retirement record itself.\n    // [impl->REQ-CONN-POISON-ATTRIBUTION]\n    fn lifecycle(&self, event: &str, extra: &str) {\n        let sep = if extra.is_empty() { \"\" } else { \" \" };\n        eprintln!(\n            \"CONN_LIFECYCLE: {} event={event}{sep}{extra} [REQ-CONN-POISON-ATTRIBUTION]\",\n            self.attribution()\n        );\n    }\n\n    /// Abort the connection's in-flight I/O OUT OF BAND (both directions —\n    /// the halves share one OS object) and latch the poison. Idempotent and\n    /// safe to repeat: `CancelIoEx` on a handle with nothing pending is a\n    /// no-op, and re-cancel closes the race where a write was issued a beat\n    /// AFTER a cancel (cancellation only reaches ALREADY-issued ops).\n    /// `cause` (the organic caller's write error) rides the retirement record\n    /// when the retirement is NOT deadline-driven.\n    fn poison_and_cancel(&self, cause: Option<&io::Error>) {\n        if !self.poisoned.swap(true, Ordering::AcqRel) {\n            // First poison of this conn: loud, once. The token is class-split\n            // (F-039 leg a): deadline → CONN_WRITE_POISONED (the wedge\n            // observable), organic fast-fail → CONN_WRITE_RETIRED.\n            eprintln!(\n                \"{}\",\n                self.render_retirement(self.timed_out.load(Ordering::Acquire), cause)\n            );\n        }\n        #[cfg(windows)]\n        // SAFETY: scalar kernel32 call on a handle whose owning half is kept\n        // alive until Drop (gate / writer stack / graveyard — see `raw`).\n        unsafe {\n            let _ = win::CancelIoEx(self.raw, core::ptr::null_mut());\n        }\n        #[cfg(unix)]\n        // SAFETY: scalar shutdown(2) on an fd alive until Drop. SHUT_RDWR\n        // fails the blocked write (EPIPE), EOFs the parked read, and fails\n        // every future op — on Unix this one call IS the whole teardown.\n        unsafe {\n            let _ = libc::shutdown(self.raw, libc::SHUT_RDWR);\n        }\n        // Wake gate-waiters so they observe the poison instead of sleeping\n        // out their full deadline, and the watchdog so it re-evaluates.\n        self.gate_cv.notify_all();\n        self.dog_cv.notify_all();\n    }\n\n    /// Sever the physical connection (exactly once), AFTER the canceled op\n    /// reported completion: on Windows `DisconnectNamedPipe` forces the\n    /// client off (its next access fails), makes a re-issued server-side\n    /// read fail (so `handle_conn` reaches EOF cleanup even if it slipped a\n    /// new read in after the cancel), and defuses the drop-limbo flush; the\n    /// trailing re-cancel covers exactly that slipped-in read. On Unix the\n    /// `shutdown` in [`poison_and_cancel`] already did all of this.\n    // On Unix the cfg(windows) teardown strips out and the idempotence\n    // guard's early `return` becomes the function tail — needless_return\n    // there, load-bearing here. Restructuring (e.g. `if !swapped { … }`)\n    // would leave Unix an empty if-body (`clippy::needless_if`) instead.\n    #[cfg_attr(unix, allow(clippy::needless_return))]\n    fn sever(&self) {\n        if self.severed.swap(true, Ordering::AcqRel) {\n            return;\n        }\n        #[cfg(windows)]\n        // SAFETY: as in poison_and_cancel — handle outlives the watchdog.\n        unsafe {\n            let _ = win::DisconnectNamedPipe(self.raw);\n            let _ = win::CancelIoEx(self.raw, core::ptr::null_mut());\n        }\n    }\n\n    /// The watchdog body: park until a write is in flight, then sleep to its\n    /// absolute deadline. If the op is still in flight at the deadline,\n    /// poison + cancel, re-canceling periodically until the op reports\n    /// completion (the writer clears `inflight` the instant `write_frame`\n    /// returns — that return IS the buffer-release handshake), then sever.\n    fn watchdog(&self) {\n        let mut d = recover(&self.dog);\n        loop {\n            // Park until armed (or shutdown).\n            let (op, deadline) = loop {\n                if d.shutdown {\n                    return;\n                }\n                if let Some(armed) = d.inflight {\n                    break armed;\n                }\n                d = self\n                    .dog_cv\n                    .wait(d)\n                    .unwrap_or_else(|p| p.into_inner());\n            };\n            // Sleep toward the deadline while THIS op stays in flight.\n            let fired = loop {\n                if d.shutdown {\n                    return;\n                }\n                match d.inflight {\n                    Some((cur, _)) if cur == op => {}\n                    // Completed (or a newer op armed) before the deadline.\n                    _ => break false,\n                }\n                let now = Instant::now();\n                if now >= deadline {\n                    break true;\n                }\n                let (g, _) = self\n                    .dog_cv\n                    .wait_timeout(d, deadline - now)\n                    .unwrap_or_else(|p| p.into_inner());\n                d = g;\n            };\n            if !fired {\n                continue;\n            }\n            // Deadline: abort out of band, then wait for the canceled op to\n            // report completion before severing (re-cancel each slice — a\n            // cancel that raced the WriteFileEx issuance reaches nothing, so\n            // one shot is not enough). Latch timed_out FIRST so the aborted\n            // writer observes its failure as a DEADLINE retirement (wedge),\n            // not an organic conn death.\n            drop(d);\n            self.timed_out.store(true, Ordering::Release);\n            self.poison_and_cancel(None);\n            d = recover(&self.dog);\n            while matches!(d.inflight, Some((cur, _)) if cur == op) && !d.shutdown {\n                let (g, _) = self\n                    .dog_cv\n                    .wait_timeout(d, Duration::from_millis(100))\n                    .unwrap_or_else(|p| p.into_inner());\n                d = g;\n                drop(d);\n                self.poison_and_cancel(None);\n                d = recover(&self.dog);\n            }\n…\n        }\n    }\n}\n…\nimpl BrokerConn {\n…\n    pub(crate) fn write_gated(\n…\n    ) -> io::Result<ConnWrite> {\n…\n        // ── Check out the half + arm the watchdog, then write OUT of locks. ──\n        let mut half = g.half.take().expect(\"gate half present at checkout\");\n        let op = inner.op_seq.fetch_add(1, Ordering::Relaxed) + 1;\n        {\n            let mut d = recover(&inner.dog);\n            d.inflight = Some((op, deadline));\n            inner.dog_cv.notify_all();\n        }\n        drop(g);\n\n        let res = write_frame(&mut half, env);\n\n        // Completion handshake: `write_frame` has returned, so the OS op —\n        // canceled or not — reported completion and the frame buffer is\n        // released. Clear the arm BEFORE deciding health, so the watchdog\n        // never severs while the op is formally in flight.\n        {\n            let mut d = recover(&inner.dog);\n            d.inflight = None;\n            inner.dog_cv.notify_all();\n        }\n\n        let mut g = recover(&inner.gate);\n        if res.is_ok() && !inner.poisoned.load(Ordering::Acquire) {\n            g.half = Some(half);\n            drop(g);\n            inner.gate_cv.notify_all();\n            return Ok(ConnWrite::Done);\n        }\n\n        // ── Retire: poison the whole conn, abort the read side so\n        // `handle_conn` reaches EOF cleanup, sever, and park the half in the\n        // graveyard (its handle must outlive any late raw abort; never\n        // re-gated, never reused — a timed-out length-prefixed frame may be\n        // partially written). ──\n        drop(g);\n        inner.poison_and_cancel(res.as_ref().err());\n        inner.sever();\n        *recover(&inner.graveyard) = Some(half);\n        inner.gate_cv.notify_all();\n        // A DEADLINE retirement (the watchdog aborted OUR op, or the conn was\n        // already deadline-poisoned) surfaces as TimedOut — the caller can\n        // count the wedge (W2 stall-evict tally). An organic I/O failure\n        // (peer death) keeps its own error.\n        if inner.timed_out.load(Ordering::Acquire) {\n            return Err(timeout_err());\n        }\n        Err(match res {\n            Err(e) => e,\n            Ok(()) => poisoned_err(),\n        })\n    }\n}\n\n/// TEST-ONLY determinism lever: holds the serialized write gate (the half is\n/// checked out) so every writer parks AT THE GATE until the pin drops — the\n/// round-4 analog of pinning the old `Mutex<SendHalf>` across a registration\n/// window (the P1c epoch-gate keystone unit relies on it).\n#[cfg(test)]\npub(crate) struct TestGatePin {\n    inner: Arc<Inner>,\n    half: Option<SendHalf>,\n}\n\n#[cfg(test)]\nimpl Drop for TestGatePin {\n    fn drop(&mut self) {\n        let mut g = recover(&self.inner.gate);\n        g.half = self.half.take();\n        drop(g);\n        self.inner.gate_cv.notify_all();\n    }\n}\n\n#[cfg(test)]\nimpl BrokerConn {\n    /// Check the half out of the gate without arming the watchdog — writers\n    /// queue behind the gate (bounded by their own deadlines) until the\n    /// returned pin drops. Test-only; never a production path.\n    pub(crate) fn pin_gate_for_test(&self) -> TestGatePin {\n        let mut g = recover(&self.inner.gate);\n        let half = g.half.take().expect(\"pin: gate half present\");\n        TestGatePin {\n            inner: Arc::clone(&self.inner),\n            half: Some(half),\n        }\n    }\n}\n\nimpl Drop for BrokerConn {\n    fn drop(&mut self) {\n        // Once-per-conn `transport-close` lifecycle record (leg d): the handle\n        // is about to close — the terminal record of this conn id's life, with\n        // how it ended (organic EOF vs poisoned vs deadline-poisoned).\n        self.inner.lifecycle(\n            \"transport-close\",\n            &format!(\n                \"poisoned={} timed_out={}\",\n                self.inner.poisoned.load(Ordering::Acquire),\n                self.inner.timed_out.load(Ordering::Acquire)\n            ),\n        );\n        {\n            let mut d = recover(&self.inner.dog);\n            d.shutdown = true;\n            self.inner.dog_cv.notify_all();\n        }\n        if let Some(dog) = self.dog.take() {\n            let _ = dog.join();\n        }\n        // Halves (gate or graveyard) drop AFTER the watchdog is gone — no raw\n        // handle use can race the CloseHandle/limbo path.\n    }\n}\n\nfn poisoned_err() -> io::Error {\n    io::Error::new(\n        io::ErrorKind::BrokenPipe,\n        \"broker conn poisoned (bounded write retired the physical connection)\",\n    )\n}\n\nfn timeout_err() -> io::Error {\n    io::Error::new(\n        io::ErrorKind::TimedOut,\n        \"broker conn write exceeded its bound (conn poisoned + aborted)\",\n    )\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n    use crate::transport::{DaemonTransport, LocalSocketTransport};\n    use interprocess::local_socket::traits::Stream as _;\n    use interprocess::local_socket::Stream;\n    use std::sync::atomic::AtomicU32;\n\n    /// A real (loopback local-socket) conn pair — the send half wrapped in the\n    /// primitive, the client end returned so a test can hold it alive or drop\n    /// it to force an ORGANIC write failure.\n    fn make_conn() -> (BrokerConn, Stream) {\n        static SEQ: AtomicU32 = AtomicU32::new(0);\n        let name = format!(\n            \"spt-daemon-connattr-{}-{}.sock\",\n            std::process::id(),\n            SEQ.fetch_add(1, Ordering::Relaxed)\n        );\n        let listener = LocalSocketTransport::bind(&name).expect(\"bind\");\n        let client = LocalSocketTransport::connect(&name).expect(\"connect\");\n        let server = listener.accept().expect(\"accept\");\n        let (_recv, send) = server.split();\n…\n    }\n…\n}"}],"details":{"displayContent":{"text":"use crate::codec::write_frame;\nuse crate::frame::Envelope;\n\n/// Stable per-physical-conn identity mint — a monotonic u64 stamped at\n/// [`BrokerConn::new`]. Before this the only conn identity was `Arc::ptr_eq`,\n/// which does not survive a log line: per-line CONN_WRITE_POISONED churn was\n/// UNDECIDABLE between fresh-carrier churn and stderr interleave (the F-039\n/// RCA's terminal fork). Every lifecycle record carries `conn=<id>`.\n// [impl->REQ-CONN-POISON-ATTRIBUTION]\nstatic CONN_ID_SEQ: AtomicU64 = AtomicU64::new(0);\n\n/// The shared monotonic anchor for `mono_ms` stamps. Set explicitly at daemon\n/// startup ([`init_log_anchor`], both broker and brain entries) so every\n/// record in one process shares one base; lazily initialized on first stamp\n/// otherwise (tests, in-process brokers) — correlation needs a COMMON base,\n/// not an absolute one.\nstatic MONO_ANCHOR: OnceLock<Instant> = OnceLock::new();\n\n/// Anchor the monotonic half of [`log_stamp`] at process start — called first\n/// thing by both daemon entries, next to `scrub_identity_env`.\n// [impl->REQ-CONN-POISON-ATTRIBUTION]\npub(crate) fn init_log_anchor() {\n    let _ = MONO_ANCHOR.set(Instant::now());\n}\n\n/// Wall-clock + monotonic stamp for daemon-stderr correlation records\n/// (`wall_ms` = Unix epoch millis; `mono_ms` = millis since [`init_log_anchor`]).\n/// stderr has no per-line timestamps and broker+brain share one file — without\n/// BOTH clocks, interleaved records cannot be ordered (monotonic) or matched\n/// to field incident times (wall).\n// [impl->REQ-CONN-POISON-ATTRIBUTION]\npub(crate) fn log_stamp() -> String {\n    let wall_ms = SystemTime::now()\n        .duration_since(UNIX_EPOCH)\n        .map(|d| d.as_millis())\n        .unwrap_or(0);\n    let mono_ms = MONO_ANCHOR.get_or_init(Instant::now).elapsed().as_millis();\n    format!(\"wall_ms={wall_ms} mono_ms={mono_ms}\")\n}\n\n/// Attribution-label cap: facts accrete per role attach (a long-lived brain\n/// conn can be controller + viewer + presence subscriber over its life), and\n/// the label must stay BOUNDED — one truncation marker, then no further growth.\nconst LABEL_CAP: usize = 240;\n\n/// One bounded write's outcome (beyond `Err` = poisoned/timed-out/failed).\n#[derive(Debug, PartialEq, Eq)]\npub(crate) enum ConnWrite {\n    /// The frame was fully written.\n    Done,\n    /// The pre-write gate closure declined (e.g. a superseded controller\n    /// writer's epoch check) — nothing was written; the conn stays healthy.\n    Superseded,\n}\n\n/// The serialized write gate. `half: Some` = free; `None` = a write is in\n/// flight (checked out) or the conn has retired (then `poisoned` is set).\nstruct Gate {\n    half: Option<SendHalf>,\n}\n\n/// Watchdog bookkeeping: the currently in-flight op and its ABSOLUTE deadline.\nstruct Dog {\n    /// `Some((op_id, deadline))` while a write is in flight.\n    inflight: Option<(u64, Instant)>,\n    /// Raised by [`BrokerConn::drop`]; the watchdog exits.\n    shutdown: bool,\n}\n\n/// The state shared with the watchdog thread (no `Arc<BrokerConn>` cycle —\n/// the watchdog must not keep the conn alive).\n…\n\n#[cfg(unix)]\nfn raw_of(half: &SendHalf) -> i32 {\n    use std::os::fd::{AsFd, AsRawFd};\n    match half {\n        SendHalf::UdSocket(h) => h.as_fd().as_raw_fd(),\n    }\n}\n\n#[cfg(windows)]\nmod win {\n    // kernel32 is in the MSVC default link set — raw externs, no new dep\n    // (the deelevate.rs / daemon.rs posture).\n    extern \"system\" {\n        pub fn CancelIoEx(handle: isize, overlapped: *mut core::ffi::c_void) -> i32;\n        pub fn DisconnectNamedPipe(handle: isize) -> i32;\n    }\n}\n\nimpl Inner {\n    /// The attribution snapshot every lifecycle record carries: stable conn id,\n    /// accreted role/endpoint/session facts, wall + monotonic stamps.\n    // [impl->REQ-CONN-POISON-ATTRIBUTION]\n    fn attribution(&self) -> String {\n        let label = recover(&self.label);\n        let facts: &str = if label.is_empty() { \"role=unattributed\" } else { &label };\n        format!(\"conn={} {} {}\", self.id, facts, log_stamp())\n    }\n\n    /// Render the once-per-conn retirement record — the F-039 token split\n    /// (leg a): `CONN_WRITE_POISONED` is RESERVED for the deadline class\n    /// (`timed_out` latched — the wedge observable blackhole-controller.ps1\n    /// watches); an ORGANIC write failure (peer death / broken pipe on an\n    /// already-dead counterpart, the offline-peer dial churn) emits the\n    /// distinct `CONN_WRITE_RETIRED` token carrying the error kind and the\n    /// SAME attribution fields — quieter class, never thinner (the retired\n    /// class is what discriminates fresh-carrier churn from interleave\n    /// artifact in the field). Behavior is identical either way: poison,\n    /// abort, retire, never reuse.\n    // [impl->REQ-CONN-POISON-DIAL-SCOPE]\n    fn render_retirement(&self, timed_out: bool, cause: Option<&io::Error>) -> String {\n        if timed_out {\n            format!(\n                \"CONN_WRITE_POISONED: {} — physical broker conn retired: a write \\\n                 exceeded its {}ms bound; in-flight I/O aborted, conn never reused \\\n                 [REQ-HAZARD-SHAREDSEND-NO-BLOCKING-WRITE-UNDER-LOCK]\",\n                self.attribution(),\n                self.bound.as_millis()\n            )\n        } else {\n            let cause = match cause {\n                Some(e) => format!(\"{:?}: {e}\", e.kind()),\n                None => \"write failed\".to_string(),\n            };\n            format!(\n                \"CONN_WRITE_RETIRED: {} — organic write failure ({cause}); physical \\\n                 broker conn poisoned + retired, never reused (same retire behavior \\\n                 as POISONED — only the failure class differs) \\\n                 [REQ-CONN-POISON-DIAL-SCOPE]\",\n                self.attribution()\n            )\n        }\n    }\n\n    /// One BOUNDED per-conn lifecycle record (leg d, doyle-confirmed\n    /// UNCONDITIONAL): `write-start` (first write only), `transport-close`\n    /// (drop), `writer-exit` / `*-attach` / `*-replaced` (emitted by the\n    /// broker's sink machinery through [`BrokerConn::lifecycle_event`]). The\n    /// timeout/cancel leg is the retirement record itself.\n    // [impl->REQ-CONN-POISON-ATTRIBUTION]\n    fn lifecycle(&self, event: &str, extra: &str) {\n        let sep = if extra.is_empty() { \"\" } else { \" \" };\n        eprintln!(\n            \"CONN_LIFECYCLE: {} event={event}{sep}{extra} [REQ-CONN-POISON-ATTRIBUTION]\",\n            self.attribution()\n        );\n    }\n\n    /// Abort the connection's in-flight I/O OUT OF BAND (both directions —\n    /// the halves share one OS object) and latch the poison. Idempotent and\n    /// safe to repeat: `CancelIoEx` on a handle with nothing pending is a\n    /// no-op, and re-cancel closes the race where a write was issued a beat\n    /// AFTER a cancel (cancellation only reaches ALREADY-issued ops).\n    /// `cause` (the organic caller's write error) rides the retirement record\n    /// when the retirement is NOT deadline-driven.\n    fn poison_and_cancel(&self, cause: Option<&io::Error>) {\n        if !self.poisoned.swap(true, Ordering::AcqRel) {\n            // First poison of this conn: loud, once. The token is class-split\n            // (F-039 leg a): deadline → CONN_WRITE_POISONED (the wedge\n            // observable), organic fast-fail → CONN_WRITE_RETIRED.\n            eprintln!(\n                \"{}\",\n                self.render_retirement(self.timed_out.load(Ordering::Acquire), cause)\n            );\n        }\n        #[cfg(windows)]\n        // SAFETY: scalar kernel32 call on a handle whose owning half is kept\n        // alive until Drop (gate / writer stack / graveyard — see `raw`).\n        unsafe {\n            let _ = win::CancelIoEx(self.raw, core::ptr::null_mut());\n        }\n        #[cfg(unix)]\n        // SAFETY: scalar shutdown(2) on an fd alive until Drop. SHUT_RDWR\n        // fails the blocked write (EPIPE), EOFs the parked read, and fails\n        // every future op — on Unix this one call IS the whole teardown.\n        unsafe {\n            let _ = libc::shutdown(self.raw, libc::SHUT_RDWR);\n        }\n        // Wake gate-waiters so they observe the poison instead of sleeping\n        // out their full deadline, and the watchdog so it re-evaluates.\n        self.gate_cv.notify_all();\n        self.dog_cv.notify_all();\n    }\n\n    /// Sever the physical connection (exactly once), AFTER the canceled op\n    /// reported completion: on Windows `DisconnectNamedPipe` forces the\n    /// client off (its next access fails), makes a re-issued server-side\n    /// read fail (so `handle_conn` reaches EOF cleanup even if it slipped a\n    /// new read in after the cancel), and defuses the drop-limbo flush; the\n    /// trailing re-cancel covers exactly that slipped-in read. On Unix the\n    /// `shutdown` in [`poison_and_cancel`] already did all of this.\n    // On Unix the cfg(windows) teardown strips out and the idempotence\n    // guard's early `return` becomes the function tail — needless_return\n    // there, load-bearing here. Restructuring (e.g. `if !swapped { … }`)\n    // would leave Unix an empty if-body (`clippy::needless_if`) instead.\n    #[cfg_attr(unix, allow(clippy::needless_return))]\n    fn sever(&self) {\n        if self.severed.swap(true, Ordering::AcqRel) {\n            return;\n        }\n        #[cfg(windows)]\n        // SAFETY: as in poison_and_cancel — handle outlives the watchdog.\n        unsafe {\n            let _ = win::DisconnectNamedPipe(self.raw);\n            let _ = win::CancelIoEx(self.raw, core::ptr::null_mut());\n        }\n    }\n\n    /// The watchdog body: park until a write is in flight, then sleep to its\n    /// absolute deadline. If the op is still in flight at the deadline,\n    /// poison + cancel, re-canceling periodically until the op reports\n    /// completion (the writer clears `inflight` the instant `write_frame`\n    /// returns — that return IS the buffer-release handshake), then sever.\n    fn watchdog(&self) {\n        let mut d = recover(&self.dog);\n        loop {\n            // Park until armed (or shutdown).\n            let (op, deadline) = loop {\n                if d.shutdown {\n                    return;\n                }\n                if let Some(armed) = d.inflight {\n                    break armed;\n                }\n                d = self\n                    .dog_cv\n                    .wait(d)\n                    .unwrap_or_else(|p| p.into_inner());\n            };\n            // Sleep toward the deadline while THIS op stays in flight.\n            let fired = loop {\n                if d.shutdown {\n                    return;\n                }\n                match d.inflight {\n                    Some((cur, _)) if cur == op => {}\n                    // Completed (or a newer op armed) before the deadline.\n                    _ => break false,\n                }\n                let now = Instant::now();\n                if now >= deadline {\n                    break true;\n                }\n                let (g, _) = self\n                    .dog_cv\n                    .wait_timeout(d, deadline - now)\n                    .unwrap_or_else(|p| p.into_inner());\n                d = g;\n            };\n            if !fired {\n                continue;\n            }\n            // Deadline: abort out of band, then wait for the canceled op to\n            // report completion before severing (re-cancel each slice — a\n            // cancel that raced the WriteFileEx issuance reaches nothing, so\n            // one shot is not enough). Latch timed_out FIRST so the aborted\n            // writer observes its failure as a DEADLINE retirement (wedge),\n            // not an organic conn death.\n            drop(d);\n            self.timed_out.store(true, Ordering::Release);\n            self.poison_and_cancel(None);\n            d = recover(&self.dog);\n            while matches!(d.inflight, Some((cur, _)) if cur == op) && !d.shutdown {\n                let (g, _) = self\n                    .dog_cv\n                    .wait_timeout(d, Duration::from_millis(100))\n                    .unwrap_or_else(|p| p.into_inner());\n                d = g;\n                drop(d);\n                self.poison_and_cancel(None);\n                d = recover(&self.dog);\n            }\n…\n        }\n    }\n}\n…\nimpl BrokerConn {\n…\n    pub(crate) fn write_gated(\n…\n    ) -> io::Result<ConnWrite> {\n…\n        // ── Check out the half + arm the watchdog, then write OUT of locks. ──\n        let mut half = g.half.take().expect(\"gate half present at checkout\");\n        let op = inner.op_seq.fetch_add(1, Ordering::Relaxed) + 1;\n        {\n            let mut d = recover(&inner.dog);\n            d.inflight = Some((op, deadline));\n            inner.dog_cv.notify_all();\n        }\n        drop(g);\n\n        let res = write_frame(&mut half, env);\n\n        // Completion handshake: `write_frame` has returned, so the OS op —\n        // canceled or not — reported completion and the frame buffer is\n        // released. Clear the arm BEFORE deciding health, so the watchdog\n        // never severs while the op is formally in flight.\n        {\n            let mut d = recover(&inner.dog);\n            d.inflight = None;\n            inner.dog_cv.notify_all();\n        }\n\n        let mut g = recover(&inner.gate);\n        if res.is_ok() && !inner.poisoned.load(Ordering::Acquire) {\n            g.half = Some(half);\n            drop(g);\n            inner.gate_cv.notify_all();\n            return Ok(ConnWrite::Done);\n        }\n\n        // ── Retire: poison the whole conn, abort the read side so\n        // `handle_conn` reaches EOF cleanup, sever, and park the half in the\n        // graveyard (its handle must outlive any late raw abort; never\n        // re-gated, never reused — a timed-out length-prefixed frame may be\n        // partially written). ──\n        drop(g);\n        inner.poison_and_cancel(res.as_ref().err());\n        inner.sever();\n        *recover(&inner.graveyard) = Some(half);\n        inner.gate_cv.notify_all();\n        // A DEADLINE retirement (the watchdog aborted OUR op, or the conn was\n        // already deadline-poisoned) surfaces as TimedOut — the caller can\n        // count the wedge (W2 stall-evict tally). An organic I/O failure\n        // (peer death) keeps its own error.\n        if inner.timed_out.load(Ordering::Acquire) {\n            return Err(timeout_err());\n        }\n        Err(match res {\n            Err(e) => e,\n            Ok(()) => poisoned_err(),\n        })\n    }\n}\n\n/// TEST-ONLY determinism lever: holds the serialized write gate (the half is\n/// checked out) so every writer parks AT THE GATE until the pin drops — the\n/// round-4 analog of pinning the old `Mutex<SendHalf>` across a registration\n/// window (the P1c epoch-gate keystone unit relies on it).\n#[cfg(test)]\npub(crate) struct TestGatePin {\n    inner: Arc<Inner>,\n    half: Option<SendHalf>,\n}\n\n#[cfg(test)]\nimpl Drop for TestGatePin {\n    fn drop(&mut self) {\n        let mut g = recover(&self.inner.gate);\n        g.half = self.half.take();\n        drop(g);\n        self.inner.gate_cv.notify_all();\n    }\n}\n\n#[cfg(test)]\nimpl BrokerConn {\n    /// Check the half out of the gate without arming the watchdog — writers\n    /// queue behind the gate (bounded by their own deadlines) until the\n    /// returned pin drops. Test-only; never a production path.\n    pub(crate) fn pin_gate_for_test(&self) -> TestGatePin {\n        let mut g = recover(&self.inner.gate);\n        let half = g.half.take().expect(\"pin: gate half present\");\n        TestGatePin {\n            inner: Arc::clone(&self.inner),\n            half: Some(half),\n        }\n    }\n}\n\nimpl Drop for BrokerConn {\n    fn drop(&mut self) {\n        // Once-per-conn `transport-close` lifecycle record (leg d): the handle\n        // is about to close — the terminal record of this conn id's life, with\n        // how it ended (organic EOF vs poisoned vs deadline-poisoned).\n        self.inner.lifecycle(\n            \"transport-close\",\n            &format!(\n                \"poisoned={} timed_out={}\",\n                self.inner.poisoned.load(Ordering::Acquire),\n                self.inner.timed_out.load(Ordering::Acquire)\n            ),\n        );\n        {\n            let mut d = recover(&self.inner.dog);\n            d.shutdown = true;\n            self.inner.dog_cv.notify_all();\n        }\n        if let Some(dog) = self.dog.take() {\n            let _ = dog.join();\n        }\n        // Halves (gate or graveyard) drop AFTER the watchdog is gone — no raw\n        // handle use can race the CloseHandle/limbo path.\n    }\n}\n\nfn poisoned_err() -> io::Error {\n    io::Error::new(\n        io::ErrorKind::BrokenPipe,\n        \"broker conn poisoned (bounded write retired the physical connection)\",\n    )\n}\n\nfn timeout_err() -> io::Error {\n    io::Error::new(\n        io::ErrorKind::TimedOut,\n        \"broker conn write exceeded its bound (conn poisoned + aborted)\",\n    )\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n    use crate::transport::{DaemonTransport, LocalSocketTransport};\n    use interprocess::local_socket::traits::Stream as _;\n    use interprocess::local_socket::Stream;\n    use std::sync::atomic::AtomicU32;\n\n    /// A real (loopback local-socket) conn pair — the send half wrapped in the\n    /// primitive, the client end returned so a test can hold it alive or drop\n    /// it to force an ORGANIC write failure.\n    fn make_conn() -> (BrokerConn, Stream) {\n        static SEQ: AtomicU32 = AtomicU32::new(0);\n        let name = format!(\n            \"spt-daemon-connattr-{}-{}.sock\",\n            std::process::id(),\n            SEQ.fetch_add(1, Ordering::Relaxed)\n        );\n        let listener = LocalSocketTransport::bind(&name).expect(\"bind\");\n        let client = LocalSocketTransport::connect(&name).expect(\"connect\");\n        let server = listener.accept().expect(\"accept\");\n        let (_recv, send) = server.split();\n…\n    }\n…\n}","startLine":70,"lineNumbers":[70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,null,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,null,408,409,410,null,422,null,502,null,506,null,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,null,705,null,814]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\conn.rs"}}},"isError":false,"timestamp":1784247573282}}
{"type":"message","id":"c3c47b63","parentId":"3df231cf","timestamp":"2026-07-17T00:19:33.290Z","message":{"role":"toolResult","toolCallId":"call_DuBp5EA6o6rHz7jtQzGn6eqe|fc_05a4d8ea8a10ef0b016a5975152ec08198984eba1a3e6198b3","toolName":"read","content":[{"type":"text","text":"fn worker(\n…\n) -> DispatchOutcome {\n…\n    match family {\n…\n        StreamFamily::Attach => {\n…\n            let (endpoint, remote_session) = match line\n…\n                .filter(|e| !e.is_empty())\n            {\n                Some(ep) => match crate::attach::resolve_local_session(&mut brain, ep) {\n                    Some(sid) => (Some(ep.to_string()), Some(sid)),\n                    None => (None, None),\n                },\n                None => {\n                    let session_id = line.get(\"session_id\").and_then(|v| v.as_u64());\n                    let endpoint = session_id.and_then(|sid| {\n                        brain.sessions().ok().and_then(|reply| {\n                            reply\n                                .sessions\n                                .iter()\n                                .find(|s| s.session_id == sid && !s.endpoint.is_empty())\n                                .map(|s| s.endpoint.clone())\n                        })\n                    });\n                    (endpoint, None)\n                }\n            };\n            match endpoint {\n                // Seed the serve loop with the DURABLE opener Request\n                // (ADR-0038 B): after a ring roll the wire replay no longer\n                // carries the Request record, so the serve would idle forever\n                // waiting for one. The pinned opener IS that record — hand it\n                // over so reconstruction resumes the same operator stream.\n                // Subscribe from the ring FLOOR: a rolled ring's chunk 0 is\n                // gone, and a below-floor cursor trips the brain's gap check.\n                // [impl->REQ-STREAM-OPENER-DURABLE]\n                Some(endpoint) => match serve_attach(\n                    &mut brain,\n                    broker_name,\n                    stream_id,\n                    &endpoint,\n                    origin,\n                    floor_seq,\n                    remote_session,\n                    serde_json::from_value(line.clone()).ok(),\n                ) {\n                    Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\n                    Err(e) => DispatchOutcome::Failed(e.to_string()),\n                },\n                None => {\n                    // Refuse politely: finish our send side, claim stays.\n                    let _ = brain.net_stream_send(stream_id, &[], None, true);\n                    DispatchOutcome::Served(\"attach refused: unlabeled/unknown session\".into())\n                }\n            }\n        }\n        StreamFamily::Xfer => {\n            // The wire names whose whitelist gates (the rule set); the origin\n            // it is checked against stays handshake-proven. Blank refuses.\n            let endpoint = line\n                .get(\"endpoint\")\n                .and_then(|v| v.as_str())\n                .filter(|e| !e.is_empty())\n                .map(str::to_string);\n            match endpoint {\n                Some(endpoint) => {\n                    let root = spt_store::xfer::transfers_dir();\n                    let progress = paths.scratch.join(\"xfer-progress\");\n                    match serve_xfer(\n                        &mut brain, stream_id, &endpoint, origin, 0, &root, &progress,\n                    ) {\n                        Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\n                        Err(e) => DispatchOutcome::Failed(e.to_string()),\n                    }\n                }\n                None => {\n                    let _ = brain.net_stream_send(stream_id, &[], None, true);\n                    DispatchOutcome::Served(\"xfer refused: no endpoint named\".into())\n                }\n            }\n        }\n        StreamFamily::Rest => {\n            // The wire names whose whitelist gates (the xfer posture); the\n            // origin stays handshake-proven. The serve applies the event\n            // through the LOCAL transition host — echo gate, wake effects,\n            // and shell cascade run on this node, where the instance lives.\n            // [impl->REQ-INST-6]\n            let knob = crate::config::DaemonConfig::load().auto_suspend_after_ms;\n            match crate::resthost::serve_rest(&mut brain, stream_id, origin, knob) {\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\n            }\n        }\n        StreamFamily::ShellLink => {\n            // The wire names the owner whose whitelist gates AND whose shell\n            // tree resolves (owner exclusivity = resolution scope); the\n            // action runs against the LOCAL owlery — perch, manifest, spool,\n            // and binary all live here, the shell's node.\n            // [impl->REQ-SHELL-2]\n            match crate::linkhost::serve_shell_link(&mut brain, stream_id, origin, &paths.owlery) {\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\n            }\n        }\n        StreamFamily::ServeProbe => {\n            // No gate (serveprobe module docs): the answer is public\n            // serve-state for a named subnet, read fresh from this node's\n            // own stores — the QUIC handshake is the only subject.\n            // [impl->REQ-SUBNET-5]\n            match crate::serveprobe::serve_subnet_probe(&mut brain, stream_id) {\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\n            }\n        }\n        StreamFamily::Unknown => DispatchOutcome::Unknown,\n    }\n}\n\n/// Registry feed arm: decode `RegistryUpdate` lines, merge each batch into\n/// the daemon's [`RegistryHost`] under the fail-closed gate (member subnet ∧\n/// origin trusted in that subnet), until the peer finishes.\n///\n/// An admitted batch may carry **attention flips** (REQ-INST-3): a peer\n/// instance of an id observed transitioning to `Active` — its node's daemon\n/// just gave it a driver, so a *locally hosted* instance of the same id\n/// rests warm (CONTEXT: driving `ling@laptop` makes `ling@desktop`\n/// dormant). The rest edge's transition echo is gate-armed\n/// ([`crate::resting::arm_transition_echo`]) — the endpoint's own pulse\n/// loop runs the bounded summarizer call, never this worker (the KH 7.4\n/// non-blocking posture: N flips in one feed are N gate files, not N LLM\n/// calls serialized here).\n// [impl->REQ-INST-7]\nfn serve_registry_feed(\n    brain: &mut Brain,\n    stream_id: u64,\n    origin: &str,\n    registry: &RegistryHost,\n) -> DispatchOutcome {\n    let policy = RegistryGatePolicy::load();\n    if let Err(e) = brain.net_stream_subscribe(stream_id, 0) {\n        return DispatchOutcome::Failed(e.to_string());\n    }\n    let mut decoder = RegistryDecoder::new();\n    let mut merged = 0usize;\n    loop {\n        match brain.read_event() {\n            Ok(BrokerEvent::NetStreamData {\n                stream_id: sid,\n                bytes,\n                ..\n            }) if sid == stream_id => {\n                let records = decoder.push(&bytes);\n                if records.is_empty() {\n                    continue;\n                }\n                // Split the feed into instance rows and node-level labels\n                // (REQ-SUBNET-3) — each goes through its own gated apply path.\n                let mut updates: Vec<RegistryUpdate> = Vec::new();\n                let mut labels: Vec<NodeLabelUpdate> = Vec::new();\n                for rec in records {\n                    match rec {\n                        RegistryFeedRecord::Instance(u) => updates.push(u),\n                        RegistryFeedRecord::NodeLabel(n) => labels.push(n),\n                    }\n                }\n                if !labels.is_empty() {\n                    merged += registry.apply_node_labels(origin, &labels, &policy).len();\n                }\n                if updates.is_empty() {\n                    continue;\n                }\n                let (verdicts, flips) = registry.apply_feed_flips(origin, &updates, &policy);\n                merged += verdicts.len();\n                // Attention shift (D9-2): only ids this node actually hosts\n                // (a perch with a record); everything else is a no-op here.\n                // [impl->REQ-INST-3]\n                for id in flips {\n                    let local = perch::resolve_perch_path(&id, spt_store::perch::ParentHint::Infer);\n                    if local.join(\"info.json\").exists() {\n                        if let Err(e) = crate::resting::daemon_rest_event(\n                            &id,\n                            crate::resting::RestEvent::AttentionShift,\n                            None,\n                        ) {\n                            eprintln!(\"REST_SHIFT_FAIL:{id}:{e}\");\n                        }\n                    }\n                }\n            }\n            Ok(BrokerEvent::NetStreamEof { stream_id: sid, .. }) if sid == stream_id => {\n                return DispatchOutcome::Served(format!(\"registry feed: {merged} record(s)\"));\n            }\n            Ok(BrokerEvent::Error { message }) => return DispatchOutcome::Failed(message),\n            Ok(_) => {}\n            Err(e) => return DispatchOutcome::Failed(e.to_string()),\n        }\n    }\n}\n\n/// Notif feed arm: decode rows as they arrive, apply each batch under the\n/// fail-closed gate, until the peer finishes. The policy re-loads per feed\n/// (not per record) — the same freshness the other arms get per request.\n///\n/// A **freshly inserted** undismissed row additionally gets a first-fire here\n/// (REQ-PRES-1, the convergent cross-node redirect's receiving half): the\n/// producing node skipped its local surface because the MRA winner lives\n/// here — this node's own presence resolution surfaces it. A row this node's\n/// MRA also calls remote stays unmarked and rides on (someone else's\n/// feed-apply surfaces it); replays merge `Unchanged` and never re-fire.\n// [impl->REQ-NOTIF-1]\n// [impl->REQ-PRES-1]\nfn serve_notif_feed(brain: &mut Brain, stream_id: u64, origin: &str) -> DispatchOutcome {\n    let store = match NotifStore::open() {\n        Ok(s) => s,\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\n    };\n    let policy = NotifPolicy::load();\n    // This serving node's identity for the presence resolution: the broker's\n    // handshake identity (the same hex peers see in our registry rows).\n    let self_hex = brain\n        .net_status()\n        .ok()\n        .and_then(|s| s.node_id_hex)\n        .unwrap_or_default();\n…\n}\n\n[Showing lines 549-763 of 1034. Use :764 to continue]"}],"details":{"truncation":{"content":"                .filter(|e| !e.is_empty())\r\n            {\r\n                Some(ep) => match crate::attach::resolve_local_session(&mut brain, ep) {\r\n                    Some(sid) => (Some(ep.to_string()), Some(sid)),\r\n                    None => (None, None),\r\n                },\r\n                None => {\r\n                    let session_id = line.get(\"session_id\").and_then(|v| v.as_u64());\r\n                    let endpoint = session_id.and_then(|sid| {\r\n                        brain.sessions().ok().and_then(|reply| {\r\n                            reply\r\n                                .sessions\r\n                                .iter()\r\n                                .find(|s| s.session_id == sid && !s.endpoint.is_empty())\r\n                                .map(|s| s.endpoint.clone())\r\n                        })\r\n                    });\r\n                    (endpoint, None)\r\n                }\r\n            };\r\n            match endpoint {\r\n                // Seed the serve loop with the DURABLE opener Request\r\n                // (ADR-0038 B): after a ring roll the wire replay no longer\r\n                // carries the Request record, so the serve would idle forever\r\n                // waiting for one. The pinned opener IS that record — hand it\r\n                // over so reconstruction resumes the same operator stream.\r\n                // Subscribe from the ring FLOOR: a rolled ring's chunk 0 is\r\n                // gone, and a below-floor cursor trips the brain's gap check.\r\n                // [impl->REQ-STREAM-OPENER-DURABLE]\r\n                Some(endpoint) => match serve_attach(\r\n                    &mut brain,\r\n                    broker_name,\r\n                    stream_id,\r\n                    &endpoint,\r\n                    origin,\r\n                    floor_seq,\r\n                    remote_session,\r\n                    serde_json::from_value(line.clone()).ok(),\r\n                ) {\r\n                    Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                    Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n                },\r\n                None => {\r\n                    // Refuse politely: finish our send side, claim stays.\r\n                    let _ = brain.net_stream_send(stream_id, &[], None, true);\r\n                    DispatchOutcome::Served(\"attach refused: unlabeled/unknown session\".into())\r\n                }\r\n            }\r\n        }\r\n        StreamFamily::Xfer => {\r\n            // The wire names whose whitelist gates (the rule set); the origin\r\n            // it is checked against stays handshake-proven. Blank refuses.\r\n            let endpoint = line\r\n                .get(\"endpoint\")\r\n                .and_then(|v| v.as_str())\r\n                .filter(|e| !e.is_empty())\r\n                .map(str::to_string);\r\n            match endpoint {\r\n                Some(endpoint) => {\r\n                    let root = spt_store::xfer::transfers_dir();\r\n                    let progress = paths.scratch.join(\"xfer-progress\");\r\n                    match serve_xfer(\r\n                        &mut brain, stream_id, &endpoint, origin, 0, &root, &progress,\r\n                    ) {\r\n                        Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                        Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n                    }\r\n                }\r\n                None => {\r\n                    let _ = brain.net_stream_send(stream_id, &[], None, true);\r\n                    DispatchOutcome::Served(\"xfer refused: no endpoint named\".into())\r\n                }\r\n            }\r\n        }\r\n        StreamFamily::Rest => {\r\n            // The wire names whose whitelist gates (the xfer posture); the\r\n            // origin stays handshake-proven. The serve applies the event\r\n            // through the LOCAL transition host — echo gate, wake effects,\r\n            // and shell cascade run on this node, where the instance lives.\r\n            // [impl->REQ-INST-6]\r\n            let knob = crate::config::DaemonConfig::load().auto_suspend_after_ms;\r\n            match crate::resthost::serve_rest(&mut brain, stream_id, origin, knob) {\r\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n            }\r\n        }\r\n        StreamFamily::ShellLink => {\r\n            // The wire names the owner whose whitelist gates AND whose shell\r\n            // tree resolves (owner exclusivity = resolution scope); the\r\n            // action runs against the LOCAL owlery — perch, manifest, spool,\r\n            // and binary all live here, the shell's node.\r\n            // [impl->REQ-SHELL-2]\r\n            match crate::linkhost::serve_shell_link(&mut brain, stream_id, origin, &paths.owlery) {\r\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n            }\r\n        }\r\n        StreamFamily::ServeProbe => {\r\n            // No gate (serveprobe module docs): the answer is public\r\n            // serve-state for a named subnet, read fresh from this node's\r\n            // own stores — the QUIC handshake is the only subject.\r\n            // [impl->REQ-SUBNET-5]\r\n            match crate::serveprobe::serve_subnet_probe(&mut brain, stream_id) {\r\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n            }\r\n        }\r\n        StreamFamily::Unknown => DispatchOutcome::Unknown,\r\n    }\r\n}\r\n\r\n/// Registry feed arm: decode `RegistryUpdate` lines, merge each batch into\r\n/// the daemon's [`RegistryHost`] under the fail-closed gate (member subnet ∧\r\n/// origin trusted in that subnet), until the peer finishes.\r\n///\r\n/// An admitted batch may carry **attention flips** (REQ-INST-3): a peer\r\n/// instance of an id observed transitioning to `Active` — its node's daemon\r\n/// just gave it a driver, so a *locally hosted* instance of the same id\r\n/// rests warm (CONTEXT: driving `ling@laptop` makes `ling@desktop`\r\n/// dormant). The rest edge's transition echo is gate-armed\r\n/// ([`crate::resting::arm_transition_echo`]) — the endpoint's own pulse\r\n/// loop runs the bounded summarizer call, never this worker (the KH 7.4\r\n/// non-blocking posture: N flips in one feed are N gate files, not N LLM\r\n/// calls serialized here).\r\n// [impl->REQ-INST-7]\r\nfn serve_registry_feed(\r\n    brain: &mut Brain,\r\n    stream_id: u64,\r\n    origin: &str,\r\n    registry: &RegistryHost,\r\n) -> DispatchOutcome {\r\n    let policy = RegistryGatePolicy::load();\r\n    if let Err(e) = brain.net_stream_subscribe(stream_id, 0) {\r\n        return DispatchOutcome::Failed(e.to_string());\r\n    }\r\n    let mut decoder = RegistryDecoder::new();\r\n    let mut merged = 0usize;\r\n    loop {\r\n        match brain.read_event() {\r\n            Ok(BrokerEvent::NetStreamData {\r\n                stream_id: sid,\r\n                bytes,\r\n                ..\r\n            }) if sid == stream_id => {\r\n                let records = decoder.push(&bytes);\r\n                if records.is_empty() {\r\n                    continue;\r\n                }\r\n                // Split the feed into instance rows and node-level labels\r\n                // (REQ-SUBNET-3) — each goes through its own gated apply path.\r\n                let mut updates: Vec<RegistryUpdate> = Vec::new();\r\n                let mut labels: Vec<NodeLabelUpdate> = Vec::new();\r\n                for rec in records {\r\n                    match rec {\r\n                        RegistryFeedRecord::Instance(u) => updates.push(u),\r\n                        RegistryFeedRecord::NodeLabel(n) => labels.push(n),\r\n                    }\r\n                }\r\n                if !labels.is_empty() {\r\n                    merged += registry.apply_node_labels(origin, &labels, &policy).len();\r\n                }\r\n                if updates.is_empty() {\r\n                    continue;\r\n                }\r\n                let (verdicts, flips) = registry.apply_feed_flips(origin, &updates, &policy);\r\n                merged += verdicts.len();\r\n                // Attention shift (D9-2): only ids this node actually hosts\r\n                // (a perch with a record); everything else is a no-op here.\r\n                // [impl->REQ-INST-3]\r\n                for id in flips {\r\n                    let local = perch::resolve_perch_path(&id, spt_store::perch::ParentHint::Infer);\r\n                    if local.join(\"info.json\").exists() {\r\n                        if let Err(e) = crate::resting::daemon_rest_event(\r\n                            &id,\r\n                            crate::resting::RestEvent::AttentionShift,\r\n                            None,\r\n                        ) {\r\n                            eprintln!(\"REST_SHIFT_FAIL:{id}:{e}\");\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            Ok(BrokerEvent::NetStreamEof { stream_id: sid, .. }) if sid == stream_id => {\r\n                return DispatchOutcome::Served(format!(\"registry feed: {merged} record(s)\"));\r\n            }\r\n            Ok(BrokerEvent::Error { message }) => return DispatchOutcome::Failed(message),\r\n            Ok(_) => {}\r\n            Err(e) => return DispatchOutcome::Failed(e.to_string()),\r\n        }\r\n    }\r\n}\r\n\r\n/// Notif feed arm: decode rows as they arrive, apply each batch under the\r\n/// fail-closed gate, until the peer finishes. The policy re-loads per feed\r\n/// (not per record) — the same freshness the other arms get per request.\r\n///\r\n/// A **freshly inserted** undismissed row additionally gets a first-fire here\r\n/// (REQ-PRES-1, the convergent cross-node redirect's receiving half): the\r\n/// producing node skipped its local surface because the MRA winner lives\r\n/// here — this node's own presence resolution surfaces it. A row this node's\r\n/// MRA also calls remote stays unmarked and rides on (someone else's\r\n/// feed-apply surfaces it); replays merge `Unchanged` and never re-fire.\r\n// [impl->REQ-NOTIF-1]\r\n// [impl->REQ-PRES-1]\r\nfn serve_notif_feed(brain: &mut Brain, stream_id: u64, origin: &str) -> DispatchOutcome {\r\n    let store = match NotifStore::open() {\r\n        Ok(s) => s,\r\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\r\n    };\r\n    let policy = NotifPolicy::load();\r\n    // This serving node's identity for the presence resolution: the broker's\r\n    // handshake identity (the same hex peers see in our registry rows).\r\n    let self_hex = brain\r\n        .net_status()\r\n        .ok()\r","truncated":true,"truncatedBy":"lines","totalLines":486,"totalBytes":10529,"outputLines":215,"outputBytes":10529,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"fn worker(\n…\n) -> DispatchOutcome {\n…\n    match family {\n…\n        StreamFamily::Attach => {\n…\n            let (endpoint, remote_session) = match line\n…\n                .filter(|e| !e.is_empty())\r\n            {\r\n                Some(ep) => match crate::attach::resolve_local_session(&mut brain, ep) {\r\n                    Some(sid) => (Some(ep.to_string()), Some(sid)),\r\n                    None => (None, None),\r\n                },\r\n                None => {\r\n                    let session_id = line.get(\"session_id\").and_then(|v| v.as_u64());\r\n                    let endpoint = session_id.and_then(|sid| {\r\n                        brain.sessions().ok().and_then(|reply| {\r\n                            reply\r\n                                .sessions\r\n                                .iter()\r\n                                .find(|s| s.session_id == sid && !s.endpoint.is_empty())\r\n                                .map(|s| s.endpoint.clone())\r\n                        })\r\n                    });\r\n                    (endpoint, None)\r\n                }\r\n            };\r\n            match endpoint {\r\n                // Seed the serve loop with the DURABLE opener Request\r\n                // (ADR-0038 B): after a ring roll the wire replay no longer\r\n                // carries the Request record, so the serve would idle forever\r\n                // waiting for one. The pinned opener IS that record — hand it\r\n                // over so reconstruction resumes the same operator stream.\r\n                // Subscribe from the ring FLOOR: a rolled ring's chunk 0 is\r\n                // gone, and a below-floor cursor trips the brain's gap check.\r\n                // [impl->REQ-STREAM-OPENER-DURABLE]\r\n                Some(endpoint) => match serve_attach(\r\n                    &mut brain,\r\n                    broker_name,\r\n                    stream_id,\r\n                    &endpoint,\r\n                    origin,\r\n                    floor_seq,\r\n                    remote_session,\r\n                    serde_json::from_value(line.clone()).ok(),\r\n                ) {\r\n                    Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                    Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n                },\r\n                None => {\r\n                    // Refuse politely: finish our send side, claim stays.\r\n                    let _ = brain.net_stream_send(stream_id, &[], None, true);\r\n                    DispatchOutcome::Served(\"attach refused: unlabeled/unknown session\".into())\r\n                }\r\n            }\r\n        }\r\n        StreamFamily::Xfer => {\r\n            // The wire names whose whitelist gates (the rule set); the origin\r\n            // it is checked against stays handshake-proven. Blank refuses.\r\n            let endpoint = line\r\n                .get(\"endpoint\")\r\n                .and_then(|v| v.as_str())\r\n                .filter(|e| !e.is_empty())\r\n                .map(str::to_string);\r\n            match endpoint {\r\n                Some(endpoint) => {\r\n                    let root = spt_store::xfer::transfers_dir();\r\n                    let progress = paths.scratch.join(\"xfer-progress\");\r\n                    match serve_xfer(\r\n                        &mut brain, stream_id, &endpoint, origin, 0, &root, &progress,\r\n                    ) {\r\n                        Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                        Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n                    }\r\n                }\r\n                None => {\r\n                    let _ = brain.net_stream_send(stream_id, &[], None, true);\r\n                    DispatchOutcome::Served(\"xfer refused: no endpoint named\".into())\r\n                }\r\n            }\r\n        }\r\n        StreamFamily::Rest => {\r\n            // The wire names whose whitelist gates (the xfer posture); the\r\n            // origin stays handshake-proven. The serve applies the event\r\n            // through the LOCAL transition host — echo gate, wake effects,\r\n            // and shell cascade run on this node, where the instance lives.\r\n            // [impl->REQ-INST-6]\r\n            let knob = crate::config::DaemonConfig::load().auto_suspend_after_ms;\r\n            match crate::resthost::serve_rest(&mut brain, stream_id, origin, knob) {\r\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n            }\r\n        }\r\n        StreamFamily::ShellLink => {\r\n            // The wire names the owner whose whitelist gates AND whose shell\r\n            // tree resolves (owner exclusivity = resolution scope); the\r\n            // action runs against the LOCAL owlery — perch, manifest, spool,\r\n            // and binary all live here, the shell's node.\r\n            // [impl->REQ-SHELL-2]\r\n            match crate::linkhost::serve_shell_link(&mut brain, stream_id, origin, &paths.owlery) {\r\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n            }\r\n        }\r\n        StreamFamily::ServeProbe => {\r\n            // No gate (serveprobe module docs): the answer is public\r\n            // serve-state for a named subnet, read fresh from this node's\r\n            // own stores — the QUIC handshake is the only subject.\r\n            // [impl->REQ-SUBNET-5]\r\n            match crate::serveprobe::serve_subnet_probe(&mut brain, stream_id) {\r\n                Ok(out) => DispatchOutcome::Served(format!(\"{out:?}\")),\r\n                Err(e) => DispatchOutcome::Failed(e.to_string()),\r\n            }\r\n        }\r\n        StreamFamily::Unknown => DispatchOutcome::Unknown,\r\n    }\r\n}\r\n\r\n/// Registry feed arm: decode `RegistryUpdate` lines, merge each batch into\r\n/// the daemon's [`RegistryHost`] under the fail-closed gate (member subnet ∧\r\n/// origin trusted in that subnet), until the peer finishes.\r\n///\r\n/// An admitted batch may carry **attention flips** (REQ-INST-3): a peer\r\n/// instance of an id observed transitioning to `Active` — its node's daemon\r\n/// just gave it a driver, so a *locally hosted* instance of the same id\r\n/// rests warm (CONTEXT: driving `ling@laptop` makes `ling@desktop`\r\n/// dormant). The rest edge's transition echo is gate-armed\r\n/// ([`crate::resting::arm_transition_echo`]) — the endpoint's own pulse\r\n/// loop runs the bounded summarizer call, never this worker (the KH 7.4\r\n/// non-blocking posture: N flips in one feed are N gate files, not N LLM\r\n/// calls serialized here).\r\n// [impl->REQ-INST-7]\r\nfn serve_registry_feed(\r\n    brain: &mut Brain,\r\n    stream_id: u64,\r\n    origin: &str,\r\n    registry: &RegistryHost,\r\n) -> DispatchOutcome {\r\n    let policy = RegistryGatePolicy::load();\r\n    if let Err(e) = brain.net_stream_subscribe(stream_id, 0) {\r\n        return DispatchOutcome::Failed(e.to_string());\r\n    }\r\n    let mut decoder = RegistryDecoder::new();\r\n    let mut merged = 0usize;\r\n    loop {\r\n        match brain.read_event() {\r\n            Ok(BrokerEvent::NetStreamData {\r\n                stream_id: sid,\r\n                bytes,\r\n                ..\r\n            }) if sid == stream_id => {\r\n                let records = decoder.push(&bytes);\r\n                if records.is_empty() {\r\n                    continue;\r\n                }\r\n                // Split the feed into instance rows and node-level labels\r\n                // (REQ-SUBNET-3) — each goes through its own gated apply path.\r\n                let mut updates: Vec<RegistryUpdate> = Vec::new();\r\n                let mut labels: Vec<NodeLabelUpdate> = Vec::new();\r\n                for rec in records {\r\n                    match rec {\r\n                        RegistryFeedRecord::Instance(u) => updates.push(u),\r\n                        RegistryFeedRecord::NodeLabel(n) => labels.push(n),\r\n                    }\r\n                }\r\n                if !labels.is_empty() {\r\n                    merged += registry.apply_node_labels(origin, &labels, &policy).len();\r\n                }\r\n                if updates.is_empty() {\r\n                    continue;\r\n                }\r\n                let (verdicts, flips) = registry.apply_feed_flips(origin, &updates, &policy);\r\n                merged += verdicts.len();\r\n                // Attention shift (D9-2): only ids this node actually hosts\r\n                // (a perch with a record); everything else is a no-op here.\r\n                // [impl->REQ-INST-3]\r\n                for id in flips {\r\n                    let local = perch::resolve_perch_path(&id, spt_store::perch::ParentHint::Infer);\r\n                    if local.join(\"info.json\").exists() {\r\n                        if let Err(e) = crate::resting::daemon_rest_event(\r\n                            &id,\r\n                            crate::resting::RestEvent::AttentionShift,\r\n                            None,\r\n                        ) {\r\n                            eprintln!(\"REST_SHIFT_FAIL:{id}:{e}\");\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            Ok(BrokerEvent::NetStreamEof { stream_id: sid, .. }) if sid == stream_id => {\r\n                return DispatchOutcome::Served(format!(\"registry feed: {merged} record(s)\"));\r\n            }\r\n            Ok(BrokerEvent::Error { message }) => return DispatchOutcome::Failed(message),\r\n            Ok(_) => {}\r\n            Err(e) => return DispatchOutcome::Failed(e.to_string()),\r\n        }\r\n    }\r\n}\r\n\r\n/// Notif feed arm: decode rows as they arrive, apply each batch under the\r\n/// fail-closed gate, until the peer finishes. The policy re-loads per feed\r\n/// (not per record) — the same freshness the other arms get per request.\r\n///\r\n/// A **freshly inserted** undismissed row additionally gets a first-fire here\r\n/// (REQ-PRES-1, the convergent cross-node redirect's receiving half): the\r\n/// producing node skipped its local surface because the MRA winner lives\r\n/// here — this node's own presence resolution surfaces it. A row this node's\r\n/// MRA also calls remote stays unmarked and rides on (someone else's\r\n/// feed-apply surfaces it); replays merge `Unchanged` and never re-fire.\r\n// [impl->REQ-NOTIF-1]\r\n// [impl->REQ-PRES-1]\r\nfn serve_notif_feed(brain: &mut Brain, stream_id: u64, origin: &str) -> DispatchOutcome {\r\n    let store = match NotifStore::open() {\r\n        Ok(s) => s,\r\n        Err(e) => return DispatchOutcome::Failed(e.to_string()),\r\n    };\r\n    let policy = NotifPolicy::load();\r\n    // This serving node's identity for the presence resolution: the broker's\r\n    // handshake identity (the same hex peers see in our registry rows).\r\n    let self_hex = brain\r\n        .net_status()\r\n        .ok()\r\n        .and_then(|s| s.node_id_hex)\n        .unwrap_or_default();\n…\n}","startLine":458,"lineNumbers":[458,null,466,null,496,null,527,null,546,null,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,null,798]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\dispatch.rs"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":1034,"totalBytes":10529,"outputLines":215,"outputBytes":10529,"shownRange":{"start":549,"end":763},"nextOffset":764}}},"isError":false,"timestamp":1784247573290}}
{"type":"message","id":"0a69f8fa","parentId":"c3c47b63","timestamp":"2026-07-17T00:19:33.299Z","message":{"role":"toolResult","toolCallId":"call_dtyVGNxXq9qvk1HQg58RpEY4|fc_05a4d8ea8a10ef0b016a5975152eb88198a529ee804b0e061f","toolName":"read","content":[{"type":"text","text":"//! Remote terminal attach (M4-D5b, REQ-INST-8) — serve a byte-stream viewport\n//! onto a local session for an operator on another node.\n//!\n//! The operator's daemon opened a bidi QUIC stream to this node (D4) and sent\n//! [`AttachRecord::Request`]; this module is the target-side pump between that\n//! stream and the local broker-hosted session:\n//!\n//! - session `Output` chunks → [`AttachRecord::Output`] lines onto the wire\n//!   (fire-and-forget sends; `Output.seq` carries the dedup authority);\n//! - inbound [`AttachRecord::Input`] → [`Brain::send_effect`] with the\n//!   operator-minted `op_id` — exactly-once at the PTY write through the B5\n//!   journal (a replayed input record cannot double-type);\n//! - session `Exit` → [`AttachRecord::Exit`] + stream finish.\n//!\n//! ## Exactly-once lives at the EDGES, not the wire sends\n//!\n//! Stream sends here are deliberately **unjournaled** (`op_id: None`): a\n//! journaled [`Brain::net_stream_send`] blocks reading events until its ack\n//! and *discards* everything interleaved — inside a full-duplex pump loop that\n//! eats the operator's `Input` records (both sides starve; found the hard way\n//! in `tests/attach.rs`). Idempotency holds without it because each direction\n//! dedups at its **effect**: the PTY write is journaled by the operator-minted\n//! `Input.op_id`, and the operator's viewport dedups `Output` records by their\n//! session-log `seq` (the render cursor). A post-restart re-serve may\n//! re-transmit output records on the wire — duplicates are dropped at the\n//! render cursor, the same discipline the local `OutputLog` replay uses\n//! (REQ-HAZARD-RESTART-IDEMPOTENT at the boundary that matters).\n//!\n//! **Compute + files stay here**; the operator is a viewport (CONTEXT\n//! §Remote-control vs local operation). The access gate runs before anything\n//! is served: the [`AttachRecord::Request`] is *unsolicited wire inbound*, so\n//! [`access_check`] sees the **handshake-proven** origin from the broker's\n//! stream table — never payload bytes (KNOWN-HAZARDS 7.5). Remote-drive of\n//! your own running instance is ungated by default (ADR-0009 default-open);\n//! the D5d whitelist drops in at this same call.\n//!\n//! Restart survival composes from D4/B5 with **no new machinery**: the broker\n//! owns the QUIC stream, the session, its `OutputLog`, and the effect journal.\n//! A restarted target brain re-attaches the session from its output cursor,\n//! resubscribes the stream from its net cursor, and re-drives journaled sends;\n//! a restarted operator brain resubscribes and dedups rendered chunks by\n//! `Output.seq`.\n\nuse std::io;\nuse std::time::{Duration, Instant};\n\nuse spt_net::net::attach::{AttachDecoder, AttachIntent, AttachRecord};\nuse spt_net::net::ndjson;\n\nuse crate::access::{access_check, AccessDecision, InboundClass};\nuse crate::brain::{now_ms, Brain, BrokerEvent};\nuse crate::effect::{Minter, MintedOp};\nuse crate::msg::{decode_bytes, encode_bytes};\n\n/// Feed the resting-state machine at the attach edges (D9-2, REQ-INST-3): a\n/// served viewport is a **driver** — attaching wakes the endpoint, the\n/// viewport ending detaches it (active → dormant; the transition echo is\n/// gate-armed for the endpoint's own pulse loop). Best-effort exactly like\n/// [`mark_driven_by`]: a session served without a perch has no resting\n/// record to move.\n// [impl->REQ-INST-3]\nfn feed_rest(endpoint: &str, event: crate::resting::RestEvent) {\n    let _ = crate::resting::daemon_rest_event(endpoint, event, None);\n}\n\n/// Why a serve loop returned.\n#[derive(Debug, Clone, PartialEq, Eq)]\npub enum AttachServeOutcome {\n    /// The access gate refused the requesting origin, OR a `Control` attach hit\n    /// an endpoint a DIFFERENT operator already controls (busy-refuse,\n    /// REQ-RCVIEW-1) — nothing was served. The operator's `rc` renders the\n    /// busy guidance client-side from the endpoint's `driven_by`.\n    Refused,\n    /// The session's child exited; the `Exit` record was sent and the stream\n    /// finished.\n    Exited(Option<i32>),\n    /// The operator closed its send side (detached); the viewport ended with\n    /// the session still running.\n    Detached,\n    /// This controller was DISPLACED by a different operator's `--take`/`kick`\n    /// (REQ-KICK-1): the loud `Displaced` notice was sent and the stream\n    /// finished. The endpoint stays driven (by the taker) — no dormant edge.\n    Displaced,\n}\n\n/// The role a serve loop resolved to, once the broker's [`SubscribeOutcome`]\n/// arrives — gates wake (controller-only) and PTY input.\n#[derive(Debug, Clone, Copy, PartialEq, Eq)]\nenum ServeRole {\n    /// The interactive controller (input + resize; wakes the endpoint).\n    Controller,\n    /// A read-only viewer (output only; wake-neutral).\n    Viewer,\n}\n\n/// Minimum spacing between skip-to-live re-subscribes after a viewer eviction\n/// (REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT). HARD constraint: an evicted viewer that is\n/// hopelessly behind under a sustained flood will be re-evicted immediately after\n/// each re-subscribe; without spacing that is an evict→resubscribe CPU spin. With\n/// it, the operator sees an intermittent LIVE burst each interval (forward\n/// progress), never a busy-loop. ~200ms = several bursts/sec, imperceptible lag.\nconst RESUBSCRIBE_INTERVAL: Duration = Duration::from_millis(200);\n\n/// The CONTROLLER fell behind the live ring further than the ring holds — the\n/// dropped frames are GONE (`tail - delivered_through > cap_chunks`), so an\n/// exactly-once re-fetch is IMPOSSIBLE. Distinguishes the irrecoverable edge from\n/// an ordinary fatal so the serve loop can surface it (a marked truncation),\n/// rather than silent-skipping (a B2 lie) or spinning. Full graceful handling is\n/// DEFERRED to `REQ-HAZARD-CONTROLLER-IRRECOVERABLE-BEHIND`.\n// [impl->REQ-HAZARD-CONTROLLER-GAP-RESUME]\n#[derive(Debug)]\npub struct ControllerIrrecoverablyBehind {\n    /// The frozen `delivered_through` floor the ring has already rolled past.\n    pub floor: u64,\n}\n\nimpl std::fmt::Display for ControllerIrrecoverablyBehind {\n    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\n        write!(\n            f,\n            \"controller fell irrecoverably behind the live ring at seq {} (dropped frames rolled out of the ring)\",\n            self.floor\n        )\n    }\n}\n\nimpl std::error::Error for ControllerIrrecoverablyBehind {}\n\n/// Is `e` the brain's strict reject-gap fatal (`output gap: got seq N want M`)?\n/// That is the only error the controller gap-resume recovers from; every other\n/// error propagates unchanged.\nfn is_output_gap(e: &io::Error) -> bool {\n    e.kind() == io::ErrorKind::InvalidData && e.to_string().contains(\"output gap\")\n}\n\n/// Read one [`BrokerEvent`] for an attached CONTROLLER, RESUMING-FROM-FLOOR on a\n/// b4 drop-don't-block output-gap instead of fataling.\n///\n/// b4 made the controller a non-blocking `try_send` that DROPS frames when its\n/// bounded channel is full (a controller that falls behind its own echo under a\n/// hard flood). The next frame this reader sees is then a FORWARD gap that the\n/// strict reject-gap (`read_event`, legacy single-session path) FATALS. A\n/// controller CANNOT snap-above like a viewer (B2: it is authoritative — it\n/// advances `delivered_through`; skipping rolled frames would be a not-exactly-once\n/// resume). So instead it RE-FETCHES: re-subscribe from\n/// [`Brain::controller_resume_floor`] (`= delivered_through`, frozen at the drop by\n/// `contiguous_advance`) and the broker replays the dropped frames from the ring.\n///\n/// Exactly-once holds IFF the ring still retains the floor (`tail - delivered_through\n/// <= cap_chunks`). If it does not — the controller fell behind further than the\n/// ring holds — the re-subscribe's first frame is STILL a forward gap (floor\n/// unchanged across two resumes). That is [`ControllerIrrecoverablyBehind`]: the\n/// caller surfaces it (marked truncation), never silent-skips (B2 lie) and never\n/// spins. The helper swallows the `Subscribed` ack its own re-subscribe produces so\n/// the repeated-gap detection is not masked. Non-`Output` events (NetStreamData /\n/// Size / Exit / …) pass through unchanged.\n// [impl->REQ-HAZARD-CONTROLLER-GAP-RESUME]\npub fn read_controller_event_resuming(\n    brain: &mut Brain,\n    session_id: u64,\n    by: Option<&str>,\n) -> io::Result<BrokerEvent> {\n    let mut last_resume_floor: Option<u64> = None;\n    let mut swallow_resume_ack = false;\n    loop {\n        match brain.read_event() {\n            // Our own re-subscribe's Subscribed reply: swallow it (role is already\n            // resolved) so it cannot mask a repeated gap as forward progress.\n            Ok(BrokerEvent::Subscribed { .. }) if swallow_resume_ack => {\n                swallow_resume_ack = false;\n                continue;\n            }\n            Ok(ev) => return Ok(ev),\n            Err(e) if is_output_gap(&e) => {\n                let floor = brain.controller_resume_floor();\n                if last_resume_floor == Some(floor) {\n                    // No progress across two resumes → the ring rolled past the\n                    // floor → the dropped frames are gone.\n                    return Err(io::Error::other(ControllerIrrecoverablyBehind { floor }));\n                }\n                last_resume_floor = Some(floor);\n                // RE-FETCH from the frozen delivered_through (same operator `by` →\n                // a silent re-take, no Displaced); the broker replays the dropped\n                // frames from the ring.\n                brain.attach_as(session_id, floor, AttachIntent::Control, by)?;\n                swallow_resume_ack = true;\n            }\n            Err(e) => return Err(e),\n        }\n    }\n}\n\n/// Resolve an endpoint label to THIS node's local broker session id (the spawn's\n/// endpoint label in `brain.sessions()`). The server-side half of the cross-node\n/// attach (#4, REQ-RC-CROSS-NODE-ATTACH): the owning node is authoritative for\n/// its own session table, so a remote operator — which cannot know our local\n/// session id — names the endpoint and we map it here, never trusting a wire\n/// `session_id` it could not have. `None` ⇒ no live session under that endpoint\n/// (a stale registry row routed us an attach for something gone → the caller\n/// refuses cleanly, D6).\n// [impl->REQ-RC-CROSS-NODE-ATTACH]\npub(crate) fn resolve_local_session(brain: &mut Brain, endpoint: &str) -> Option<u64> {\n    brain.sessions().ok().and_then(|reply| {\n        reply\n            .sessions\n            .into_iter()\n            .find(|s| s.endpoint == endpoint)\n            .map(|s| s.session_id)\n    })\n}\n\n/// One attach `Request` — the SINGLE handling path for both a wire-arriving\n/// record and the dispatcher's durable-opener seed (ADR-0038 B; one\n/// implementation so the two entries cannot drift):\n///\n/// - Unsolicited-inbound gate (ADR-0009) under the transport-proven origin;\n///   viewing gated IDENTICALLY to driving in v1 (REQ-RCVIEW-1, Gap A). A\n///   denial finishes our send side and ends the serve (`Some(Refused)`).\n/// - Cross-node leg (#4, REQ-RC-CROSS-NODE-ATTACH): the dispatcher-resolved\n///   session id wins (the owning node is authoritative for its own table);\n///   the LOCAL path uses the wire `session_id` unchanged.\n/// - Role-aware subscribe (REQ-RCVIEW-1): the broker resolves controller /\n///   viewer / busy / take by intent + origin and replies a `Subscribed`;\n///   driven_by / viewer_count are BROKER-owned (single writer). A VIEWER\n///   attach ARMS snap-above at the floor (REQ-HAZARD-VIEWER-RING-ROLL-SNAP);\n///   the CONTROLLER keeps strict reject-gap (exactly-once resume, B2).\n// [impl->REQ-RC-CROSS-NODE-ATTACH]\n// [impl->REQ-HAZARD-VIEWER-RING-ROLL-SNAP]\n#[allow(clippy::too_many_arguments)]\nfn handle_attach_request(\n    brain: &mut Brain,\n    wire: &mut Brain,\n    stream_id: u64,\n    endpoint: &str,\n    origin_node: &str,\n    remote_session: Option<u64>,\n    session_id: u64,\n    from_seq: u64,\n    req_intent: AttachIntent,\n    intent: &mut AttachIntent,\n    attached_session: &mut Option<u64>,\n    attached: &mut bool,\n) -> io::Result<Option<AttachServeOutcome>> {\n    if access_check(endpoint, origin_node, InboundClass::Unsolicited) == AccessDecision::Deny {\n        wire.net_stream_send(stream_id, &[], None, true)?;\n        return Ok(Some(AttachServeOutcome::Refused));\n    }\n    let sid = remote_session.unwrap_or(session_id);\n    *intent = req_intent;\n    *attached_session = Some(sid);\n    if req_intent == AttachIntent::Viewer {\n        brain.attach_as_viewer_snap(sid, from_seq, Some(origin_node))?;\n    } else {\n        brain.attach_as(sid, from_seq, req_intent, Some(origin_node))?;\n    }\n    *attached = true;\n    Ok(None)\n}\n\n/// Serve one attach stream against this brain's broker, blocking until the\n/// session exits, the operator detaches, or the gate refuses.\n///\n/// `origin_node` MUST be the handshake-proven remote id from the broker's\n\n[Showing lines 1-263 of 692. Use :264 to continue]"}],"details":{"truncation":{"content":"//! Remote terminal attach (M4-D5b, REQ-INST-8) — serve a byte-stream viewport\r\n//! onto a local session for an operator on another node.\r\n//!\r\n//! The operator's daemon opened a bidi QUIC stream to this node (D4) and sent\r\n//! [`AttachRecord::Request`]; this module is the target-side pump between that\r\n//! stream and the local broker-hosted session:\r\n//!\r\n//! - session `Output` chunks → [`AttachRecord::Output`] lines onto the wire\r\n//!   (fire-and-forget sends; `Output.seq` carries the dedup authority);\r\n//! - inbound [`AttachRecord::Input`] → [`Brain::send_effect`] with the\r\n//!   operator-minted `op_id` — exactly-once at the PTY write through the B5\r\n//!   journal (a replayed input record cannot double-type);\r\n//! - session `Exit` → [`AttachRecord::Exit`] + stream finish.\r\n//!\r\n//! ## Exactly-once lives at the EDGES, not the wire sends\r\n//!\r\n//! Stream sends here are deliberately **unjournaled** (`op_id: None`): a\r\n//! journaled [`Brain::net_stream_send`] blocks reading events until its ack\r\n//! and *discards* everything interleaved — inside a full-duplex pump loop that\r\n//! eats the operator's `Input` records (both sides starve; found the hard way\r\n//! in `tests/attach.rs`). Idempotency holds without it because each direction\r\n//! dedups at its **effect**: the PTY write is journaled by the operator-minted\r\n//! `Input.op_id`, and the operator's viewport dedups `Output` records by their\r\n//! session-log `seq` (the render cursor). A post-restart re-serve may\r\n//! re-transmit output records on the wire — duplicates are dropped at the\r\n//! render cursor, the same discipline the local `OutputLog` replay uses\r\n//! (REQ-HAZARD-RESTART-IDEMPOTENT at the boundary that matters).\r\n//!\r\n//! **Compute + files stay here**; the operator is a viewport (CONTEXT\r\n//! §Remote-control vs local operation). The access gate runs before anything\r\n//! is served: the [`AttachRecord::Request`] is *unsolicited wire inbound*, so\r\n//! [`access_check`] sees the **handshake-proven** origin from the broker's\r\n//! stream table — never payload bytes (KNOWN-HAZARDS 7.5). Remote-drive of\r\n//! your own running instance is ungated by default (ADR-0009 default-open);\r\n//! the D5d whitelist drops in at this same call.\r\n//!\r\n//! Restart survival composes from D4/B5 with **no new machinery**: the broker\r\n//! owns the QUIC stream, the session, its `OutputLog`, and the effect journal.\r\n//! A restarted target brain re-attaches the session from its output cursor,\r\n//! resubscribes the stream from its net cursor, and re-drives journaled sends;\r\n//! a restarted operator brain resubscribes and dedups rendered chunks by\r\n//! `Output.seq`.\r\n\r\nuse std::io;\r\nuse std::time::{Duration, Instant};\r\n\r\nuse spt_net::net::attach::{AttachDecoder, AttachIntent, AttachRecord};\r\nuse spt_net::net::ndjson;\r\n\r\nuse crate::access::{access_check, AccessDecision, InboundClass};\r\nuse crate::brain::{now_ms, Brain, BrokerEvent};\r\nuse crate::effect::{Minter, MintedOp};\r\nuse crate::msg::{decode_bytes, encode_bytes};\r\n\r\n/// Feed the resting-state machine at the attach edges (D9-2, REQ-INST-3): a\r\n/// served viewport is a **driver** — attaching wakes the endpoint, the\r\n/// viewport ending detaches it (active → dormant; the transition echo is\r\n/// gate-armed for the endpoint's own pulse loop). Best-effort exactly like\r\n/// [`mark_driven_by`]: a session served without a perch has no resting\r\n/// record to move.\r\n// [impl->REQ-INST-3]\r\nfn feed_rest(endpoint: &str, event: crate::resting::RestEvent) {\r\n    let _ = crate::resting::daemon_rest_event(endpoint, event, None);\r\n}\r\n\r\n/// Why a serve loop returned.\r\n#[derive(Debug, Clone, PartialEq, Eq)]\r\npub enum AttachServeOutcome {\r\n    /// The access gate refused the requesting origin, OR a `Control` attach hit\r\n    /// an endpoint a DIFFERENT operator already controls (busy-refuse,\r\n    /// REQ-RCVIEW-1) — nothing was served. The operator's `rc` renders the\r\n    /// busy guidance client-side from the endpoint's `driven_by`.\r\n    Refused,\r\n    /// The session's child exited; the `Exit` record was sent and the stream\r\n    /// finished.\r\n    Exited(Option<i32>),\r\n    /// The operator closed its send side (detached); the viewport ended with\r\n    /// the session still running.\r\n    Detached,\r\n    /// This controller was DISPLACED by a different operator's `--take`/`kick`\r\n    /// (REQ-KICK-1): the loud `Displaced` notice was sent and the stream\r\n    /// finished. The endpoint stays driven (by the taker) — no dormant edge.\r\n    Displaced,\r\n}\r\n\r\n/// The role a serve loop resolved to, once the broker's [`SubscribeOutcome`]\r\n/// arrives — gates wake (controller-only) and PTY input.\r\n#[derive(Debug, Clone, Copy, PartialEq, Eq)]\r\nenum ServeRole {\r\n    /// The interactive controller (input + resize; wakes the endpoint).\r\n    Controller,\r\n    /// A read-only viewer (output only; wake-neutral).\r\n    Viewer,\r\n}\r\n\r\n/// Minimum spacing between skip-to-live re-subscribes after a viewer eviction\r\n/// (REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT). HARD constraint: an evicted viewer that is\r\n/// hopelessly behind under a sustained flood will be re-evicted immediately after\r\n/// each re-subscribe; without spacing that is an evict→resubscribe CPU spin. With\r\n/// it, the operator sees an intermittent LIVE burst each interval (forward\r\n/// progress), never a busy-loop. ~200ms = several bursts/sec, imperceptible lag.\r\nconst RESUBSCRIBE_INTERVAL: Duration = Duration::from_millis(200);\r\n\r\n/// The CONTROLLER fell behind the live ring further than the ring holds — the\r\n/// dropped frames are GONE (`tail - delivered_through > cap_chunks`), so an\r\n/// exactly-once re-fetch is IMPOSSIBLE. Distinguishes the irrecoverable edge from\r\n/// an ordinary fatal so the serve loop can surface it (a marked truncation),\r\n/// rather than silent-skipping (a B2 lie) or spinning. Full graceful handling is\r\n/// DEFERRED to `REQ-HAZARD-CONTROLLER-IRRECOVERABLE-BEHIND`.\r\n// [impl->REQ-HAZARD-CONTROLLER-GAP-RESUME]\r\n#[derive(Debug)]\r\npub struct ControllerIrrecoverablyBehind {\r\n    /// The frozen `delivered_through` floor the ring has already rolled past.\r\n    pub floor: u64,\r\n}\r\n\r\nimpl std::fmt::Display for ControllerIrrecoverablyBehind {\r\n    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\r\n        write!(\r\n            f,\r\n            \"controller fell irrecoverably behind the live ring at seq {} (dropped frames rolled out of the ring)\",\r\n            self.floor\r\n        )\r\n    }\r\n}\r\n\r\nimpl std::error::Error for ControllerIrrecoverablyBehind {}\r\n\r\n/// Is `e` the brain's strict reject-gap fatal (`output gap: got seq N want M`)?\r\n/// That is the only error the controller gap-resume recovers from; every other\r\n/// error propagates unchanged.\r\nfn is_output_gap(e: &io::Error) -> bool {\r\n    e.kind() == io::ErrorKind::InvalidData && e.to_string().contains(\"output gap\")\r\n}\r\n\r\n/// Read one [`BrokerEvent`] for an attached CONTROLLER, RESUMING-FROM-FLOOR on a\r\n/// b4 drop-don't-block output-gap instead of fataling.\r\n///\r\n/// b4 made the controller a non-blocking `try_send` that DROPS frames when its\r\n/// bounded channel is full (a controller that falls behind its own echo under a\r\n/// hard flood). The next frame this reader sees is then a FORWARD gap that the\r\n/// strict reject-gap (`read_event`, legacy single-session path) FATALS. A\r\n/// controller CANNOT snap-above like a viewer (B2: it is authoritative — it\r\n/// advances `delivered_through`; skipping rolled frames would be a not-exactly-once\r\n/// resume). So instead it RE-FETCHES: re-subscribe from\r\n/// [`Brain::controller_resume_floor`] (`= delivered_through`, frozen at the drop by\r\n/// `contiguous_advance`) and the broker replays the dropped frames from the ring.\r\n///\r\n/// Exactly-once holds IFF the ring still retains the floor (`tail - delivered_through\r\n/// <= cap_chunks`). If it does not — the controller fell behind further than the\r\n/// ring holds — the re-subscribe's first frame is STILL a forward gap (floor\r\n/// unchanged across two resumes). That is [`ControllerIrrecoverablyBehind`]: the\r\n/// caller surfaces it (marked truncation), never silent-skips (B2 lie) and never\r\n/// spins. The helper swallows the `Subscribed` ack its own re-subscribe produces so\r\n/// the repeated-gap detection is not masked. Non-`Output` events (NetStreamData /\r\n/// Size / Exit / …) pass through unchanged.\r\n// [impl->REQ-HAZARD-CONTROLLER-GAP-RESUME]\r\npub fn read_controller_event_resuming(\r\n    brain: &mut Brain,\r\n    session_id: u64,\r\n    by: Option<&str>,\r\n) -> io::Result<BrokerEvent> {\r\n    let mut last_resume_floor: Option<u64> = None;\r\n    let mut swallow_resume_ack = false;\r\n    loop {\r\n        match brain.read_event() {\r\n            // Our own re-subscribe's Subscribed reply: swallow it (role is already\r\n            // resolved) so it cannot mask a repeated gap as forward progress.\r\n            Ok(BrokerEvent::Subscribed { .. }) if swallow_resume_ack => {\r\n                swallow_resume_ack = false;\r\n                continue;\r\n            }\r\n            Ok(ev) => return Ok(ev),\r\n            Err(e) if is_output_gap(&e) => {\r\n                let floor = brain.controller_resume_floor();\r\n                if last_resume_floor == Some(floor) {\r\n                    // No progress across two resumes → the ring rolled past the\r\n                    // floor → the dropped frames are gone.\r\n                    return Err(io::Error::other(ControllerIrrecoverablyBehind { floor }));\r\n                }\r\n                last_resume_floor = Some(floor);\r\n                // RE-FETCH from the frozen delivered_through (same operator `by` →\r\n                // a silent re-take, no Displaced); the broker replays the dropped\r\n                // frames from the ring.\r\n                brain.attach_as(session_id, floor, AttachIntent::Control, by)?;\r\n                swallow_resume_ack = true;\r\n            }\r\n            Err(e) => return Err(e),\r\n        }\r\n    }\r\n}\r\n\r\n/// Resolve an endpoint label to THIS node's local broker session id (the spawn's\r\n/// endpoint label in `brain.sessions()`). The server-side half of the cross-node\r\n/// attach (#4, REQ-RC-CROSS-NODE-ATTACH): the owning node is authoritative for\r\n/// its own session table, so a remote operator — which cannot know our local\r\n/// session id — names the endpoint and we map it here, never trusting a wire\r\n/// `session_id` it could not have. `None` ⇒ no live session under that endpoint\r\n/// (a stale registry row routed us an attach for something gone → the caller\r\n/// refuses cleanly, D6).\r\n// [impl->REQ-RC-CROSS-NODE-ATTACH]\r\npub(crate) fn resolve_local_session(brain: &mut Brain, endpoint: &str) -> Option<u64> {\r\n    brain.sessions().ok().and_then(|reply| {\r\n        reply\r\n            .sessions\r\n            .into_iter()\r\n            .find(|s| s.endpoint == endpoint)\r\n            .map(|s| s.session_id)\r\n    })\r\n}\r\n\r\n/// One attach `Request` — the SINGLE handling path for both a wire-arriving\r\n/// record and the dispatcher's durable-opener seed (ADR-0038 B; one\r\n/// implementation so the two entries cannot drift):\r\n///\r\n/// - Unsolicited-inbound gate (ADR-0009) under the transport-proven origin;\r\n///   viewing gated IDENTICALLY to driving in v1 (REQ-RCVIEW-1, Gap A). A\r\n///   denial finishes our send side and ends the serve (`Some(Refused)`).\r\n/// - Cross-node leg (#4, REQ-RC-CROSS-NODE-ATTACH): the dispatcher-resolved\r\n///   session id wins (the owning node is authoritative for its own table);\r\n///   the LOCAL path uses the wire `session_id` unchanged.\r\n/// - Role-aware subscribe (REQ-RCVIEW-1): the broker resolves controller /\r\n///   viewer / busy / take by intent + origin and replies a `Subscribed`;\r\n///   driven_by / viewer_count are BROKER-owned (single writer). A VIEWER\r\n///   attach ARMS snap-above at the floor (REQ-HAZARD-VIEWER-RING-ROLL-SNAP);\r\n///   the CONTROLLER keeps strict reject-gap (exactly-once resume, B2).\r\n// [impl->REQ-RC-CROSS-NODE-ATTACH]\r\n// [impl->REQ-HAZARD-VIEWER-RING-ROLL-SNAP]\r\n#[allow(clippy::too_many_arguments)]\r\nfn handle_attach_request(\r\n    brain: &mut Brain,\r\n    wire: &mut Brain,\r\n    stream_id: u64,\r\n    endpoint: &str,\r\n    origin_node: &str,\r\n    remote_session: Option<u64>,\r\n    session_id: u64,\r\n    from_seq: u64,\r\n    req_intent: AttachIntent,\r\n    intent: &mut AttachIntent,\r\n    attached_session: &mut Option<u64>,\r\n    attached: &mut bool,\r\n) -> io::Result<Option<AttachServeOutcome>> {\r\n    if access_check(endpoint, origin_node, InboundClass::Unsolicited) == AccessDecision::Deny {\r\n        wire.net_stream_send(stream_id, &[], None, true)?;\r\n        return Ok(Some(AttachServeOutcome::Refused));\r\n    }\r\n    let sid = remote_session.unwrap_or(session_id);\r\n    *intent = req_intent;\r\n    *attached_session = Some(sid);\r\n    if req_intent == AttachIntent::Viewer {\r\n        brain.attach_as_viewer_snap(sid, from_seq, Some(origin_node))?;\r\n    } else {\r\n        brain.attach_as(sid, from_seq, req_intent, Some(origin_node))?;\r\n    }\r\n    *attached = true;\r\n    Ok(None)\r\n}\r\n\r\n/// Serve one attach stream against this brain's broker, blocking until the\r\n/// session exits, the operator detaches, or the gate refuses.\r\n///\r\n/// `origin_node` MUST be the handshake-proven remote id from the broker's\r","truncated":true,"truncatedBy":"lines","totalLines":692,"totalBytes":13218,"outputLines":263,"outputBytes":13218,"lastLinePartial":false,"firstLineExceedsLimit":false},"displayContent":{"text":"//! Remote terminal attach (M4-D5b, REQ-INST-8) — serve a byte-stream viewport\r\n//! onto a local session for an operator on another node.\r\n//!\r\n//! The operator's daemon opened a bidi QUIC stream to this node (D4) and sent\r\n//! [`AttachRecord::Request`]; this module is the target-side pump between that\r\n//! stream and the local broker-hosted session:\r\n//!\r\n//! - session `Output` chunks → [`AttachRecord::Output`] lines onto the wire\r\n//!   (fire-and-forget sends; `Output.seq` carries the dedup authority);\r\n//! - inbound [`AttachRecord::Input`] → [`Brain::send_effect`] with the\r\n//!   operator-minted `op_id` — exactly-once at the PTY write through the B5\r\n//!   journal (a replayed input record cannot double-type);\r\n//! - session `Exit` → [`AttachRecord::Exit`] + stream finish.\r\n//!\r\n//! ## Exactly-once lives at the EDGES, not the wire sends\r\n//!\r\n//! Stream sends here are deliberately **unjournaled** (`op_id: None`): a\r\n//! journaled [`Brain::net_stream_send`] blocks reading events until its ack\r\n//! and *discards* everything interleaved — inside a full-duplex pump loop that\r\n//! eats the operator's `Input` records (both sides starve; found the hard way\r\n//! in `tests/attach.rs`). Idempotency holds without it because each direction\r\n//! dedups at its **effect**: the PTY write is journaled by the operator-minted\r\n//! `Input.op_id`, and the operator's viewport dedups `Output` records by their\r\n//! session-log `seq` (the render cursor). A post-restart re-serve may\r\n//! re-transmit output records on the wire — duplicates are dropped at the\r\n//! render cursor, the same discipline the local `OutputLog` replay uses\r\n//! (REQ-HAZARD-RESTART-IDEMPOTENT at the boundary that matters).\r\n//!\r\n//! **Compute + files stay here**; the operator is a viewport (CONTEXT\r\n//! §Remote-control vs local operation). The access gate runs before anything\r\n//! is served: the [`AttachRecord::Request`] is *unsolicited wire inbound*, so\r\n//! [`access_check`] sees the **handshake-proven** origin from the broker's\r\n//! stream table — never payload bytes (KNOWN-HAZARDS 7.5). Remote-drive of\r\n//! your own running instance is ungated by default (ADR-0009 default-open);\r\n//! the D5d whitelist drops in at this same call.\r\n//!\r\n//! Restart survival composes from D4/B5 with **no new machinery**: the broker\r\n//! owns the QUIC stream, the session, its `OutputLog`, and the effect journal.\r\n//! A restarted target brain re-attaches the session from its output cursor,\r\n//! resubscribes the stream from its net cursor, and re-drives journaled sends;\r\n//! a restarted operator brain resubscribes and dedups rendered chunks by\r\n//! `Output.seq`.\r\n\r\nuse std::io;\r\nuse std::time::{Duration, Instant};\r\n\r\nuse spt_net::net::attach::{AttachDecoder, AttachIntent, AttachRecord};\r\nuse spt_net::net::ndjson;\r\n\r\nuse crate::access::{access_check, AccessDecision, InboundClass};\r\nuse crate::brain::{now_ms, Brain, BrokerEvent};\r\nuse crate::effect::{Minter, MintedOp};\r\nuse crate::msg::{decode_bytes, encode_bytes};\r\n\r\n/// Feed the resting-state machine at the attach edges (D9-2, REQ-INST-3): a\r\n/// served viewport is a **driver** — attaching wakes the endpoint, the\r\n/// viewport ending detaches it (active → dormant; the transition echo is\r\n/// gate-armed for the endpoint's own pulse loop). Best-effort exactly like\r\n/// [`mark_driven_by`]: a session served without a perch has no resting\r\n/// record to move.\r\n// [impl->REQ-INST-3]\r\nfn feed_rest(endpoint: &str, event: crate::resting::RestEvent) {\r\n    let _ = crate::resting::daemon_rest_event(endpoint, event, None);\r\n}\r\n\r\n/// Why a serve loop returned.\r\n#[derive(Debug, Clone, PartialEq, Eq)]\r\npub enum AttachServeOutcome {\r\n    /// The access gate refused the requesting origin, OR a `Control` attach hit\r\n    /// an endpoint a DIFFERENT operator already controls (busy-refuse,\r\n    /// REQ-RCVIEW-1) — nothing was served. The operator's `rc` renders the\r\n    /// busy guidance client-side from the endpoint's `driven_by`.\r\n    Refused,\r\n    /// The session's child exited; the `Exit` record was sent and the stream\r\n    /// finished.\r\n    Exited(Option<i32>),\r\n    /// The operator closed its send side (detached); the viewport ended with\r\n    /// the session still running.\r\n    Detached,\r\n    /// This controller was DISPLACED by a different operator's `--take`/`kick`\r\n    /// (REQ-KICK-1): the loud `Displaced` notice was sent and the stream\r\n    /// finished. The endpoint stays driven (by the taker) — no dormant edge.\r\n    Displaced,\r\n}\r\n\r\n/// The role a serve loop resolved to, once the broker's [`SubscribeOutcome`]\r\n/// arrives — gates wake (controller-only) and PTY input.\r\n#[derive(Debug, Clone, Copy, PartialEq, Eq)]\r\nenum ServeRole {\r\n    /// The interactive controller (input + resize; wakes the endpoint).\r\n    Controller,\r\n    /// A read-only viewer (output only; wake-neutral).\r\n    Viewer,\r\n}\r\n\r\n/// Minimum spacing between skip-to-live re-subscribes after a viewer eviction\r\n/// (REQ-VIEWER-SKIP-TO-LIVE-ON-EVICT). HARD constraint: an evicted viewer that is\r\n/// hopelessly behind under a sustained flood will be re-evicted immediately after\r\n/// each re-subscribe; without spacing that is an evict→resubscribe CPU spin. With\r\n/// it, the operator sees an intermittent LIVE burst each interval (forward\r\n/// progress), never a busy-loop. ~200ms = several bursts/sec, imperceptible lag.\r\nconst RESUBSCRIBE_INTERVAL: Duration = Duration::from_millis(200);\r\n\r\n/// The CONTROLLER fell behind the live ring further than the ring holds — the\r\n/// dropped frames are GONE (`tail - delivered_through > cap_chunks`), so an\r\n/// exactly-once re-fetch is IMPOSSIBLE. Distinguishes the irrecoverable edge from\r\n/// an ordinary fatal so the serve loop can surface it (a marked truncation),\r\n/// rather than silent-skipping (a B2 lie) or spinning. Full graceful handling is\r\n/// DEFERRED to `REQ-HAZARD-CONTROLLER-IRRECOVERABLE-BEHIND`.\r\n// [impl->REQ-HAZARD-CONTROLLER-GAP-RESUME]\r\n#[derive(Debug)]\r\npub struct ControllerIrrecoverablyBehind {\r\n    /// The frozen `delivered_through` floor the ring has already rolled past.\r\n    pub floor: u64,\r\n}\r\n\r\nimpl std::fmt::Display for ControllerIrrecoverablyBehind {\r\n    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\r\n        write!(\r\n            f,\r\n            \"controller fell irrecoverably behind the live ring at seq {} (dropped frames rolled out of the ring)\",\r\n            self.floor\r\n        )\r\n    }\r\n}\r\n\r\nimpl std::error::Error for ControllerIrrecoverablyBehind {}\r\n\r\n/// Is `e` the brain's strict reject-gap fatal (`output gap: got seq N want M`)?\r\n/// That is the only error the controller gap-resume recovers from; every other\r\n/// error propagates unchanged.\r\nfn is_output_gap(e: &io::Error) -> bool {\r\n    e.kind() == io::ErrorKind::InvalidData && e.to_string().contains(\"output gap\")\r\n}\r\n\r\n/// Read one [`BrokerEvent`] for an attached CONTROLLER, RESUMING-FROM-FLOOR on a\r\n/// b4 drop-don't-block output-gap instead of fataling.\r\n///\r\n/// b4 made the controller a non-blocking `try_send` that DROPS frames when its\r\n/// bounded channel is full (a controller that falls behind its own echo under a\r\n/// hard flood). The next frame this reader sees is then a FORWARD gap that the\r\n/// strict reject-gap (`read_event`, legacy single-session path) FATALS. A\r\n/// controller CANNOT snap-above like a viewer (B2: it is authoritative — it\r\n/// advances `delivered_through`; skipping rolled frames would be a not-exactly-once\r\n/// resume). So instead it RE-FETCHES: re-subscribe from\r\n/// [`Brain::controller_resume_floor`] (`= delivered_through`, frozen at the drop by\r\n/// `contiguous_advance`) and the broker replays the dropped frames from the ring.\r\n///\r\n/// Exactly-once holds IFF the ring still retains the floor (`tail - delivered_through\r\n/// <= cap_chunks`). If it does not — the controller fell behind further than the\r\n/// ring holds — the re-subscribe's first frame is STILL a forward gap (floor\r\n/// unchanged across two resumes). That is [`ControllerIrrecoverablyBehind`]: the\r\n/// caller surfaces it (marked truncation), never silent-skips (B2 lie) and never\r\n/// spins. The helper swallows the `Subscribed` ack its own re-subscribe produces so\r\n/// the repeated-gap detection is not masked. Non-`Output` events (NetStreamData /\r\n/// Size / Exit / …) pass through unchanged.\r\n// [impl->REQ-HAZARD-CONTROLLER-GAP-RESUME]\r\npub fn read_controller_event_resuming(\r\n    brain: &mut Brain,\r\n    session_id: u64,\r\n    by: Option<&str>,\r\n) -> io::Result<BrokerEvent> {\r\n    let mut last_resume_floor: Option<u64> = None;\r\n    let mut swallow_resume_ack = false;\r\n    loop {\r\n        match brain.read_event() {\r\n            // Our own re-subscribe's Subscribed reply: swallow it (role is already\r\n            // resolved) so it cannot mask a repeated gap as forward progress.\r\n            Ok(BrokerEvent::Subscribed { .. }) if swallow_resume_ack => {\r\n                swallow_resume_ack = false;\r\n                continue;\r\n            }\r\n            Ok(ev) => return Ok(ev),\r\n            Err(e) if is_output_gap(&e) => {\r\n                let floor = brain.controller_resume_floor();\r\n                if last_resume_floor == Some(floor) {\r\n                    // No progress across two resumes → the ring rolled past the\r\n                    // floor → the dropped frames are gone.\r\n                    return Err(io::Error::other(ControllerIrrecoverablyBehind { floor }));\r\n                }\r\n                last_resume_floor = Some(floor);\r\n                // RE-FETCH from the frozen delivered_through (same operator `by` →\r\n                // a silent re-take, no Displaced); the broker replays the dropped\r\n                // frames from the ring.\r\n                brain.attach_as(session_id, floor, AttachIntent::Control, by)?;\r\n                swallow_resume_ack = true;\r\n            }\r\n            Err(e) => return Err(e),\r\n        }\r\n    }\r\n}\r\n\r\n/// Resolve an endpoint label to THIS node's local broker session id (the spawn's\r\n/// endpoint label in `brain.sessions()`). The server-side half of the cross-node\r\n/// attach (#4, REQ-RC-CROSS-NODE-ATTACH): the owning node is authoritative for\r\n/// its own session table, so a remote operator — which cannot know our local\r\n/// session id — names the endpoint and we map it here, never trusting a wire\r\n/// `session_id` it could not have. `None` ⇒ no live session under that endpoint\r\n/// (a stale registry row routed us an attach for something gone → the caller\r\n/// refuses cleanly, D6).\r\n// [impl->REQ-RC-CROSS-NODE-ATTACH]\r\npub(crate) fn resolve_local_session(brain: &mut Brain, endpoint: &str) -> Option<u64> {\r\n    brain.sessions().ok().and_then(|reply| {\r\n        reply\r\n            .sessions\r\n            .into_iter()\r\n            .find(|s| s.endpoint == endpoint)\r\n            .map(|s| s.session_id)\r\n    })\r\n}\r\n\r\n/// One attach `Request` — the SINGLE handling path for both a wire-arriving\r\n/// record and the dispatcher's durable-opener seed (ADR-0038 B; one\r\n/// implementation so the two entries cannot drift):\r\n///\r\n/// - Unsolicited-inbound gate (ADR-0009) under the transport-proven origin;\r\n///   viewing gated IDENTICALLY to driving in v1 (REQ-RCVIEW-1, Gap A). A\r\n///   denial finishes our send side and ends the serve (`Some(Refused)`).\r\n/// - Cross-node leg (#4, REQ-RC-CROSS-NODE-ATTACH): the dispatcher-resolved\r\n///   session id wins (the owning node is authoritative for its own table);\r\n///   the LOCAL path uses the wire `session_id` unchanged.\r\n/// - Role-aware subscribe (REQ-RCVIEW-1): the broker resolves controller /\r\n///   viewer / busy / take by intent + origin and replies a `Subscribed`;\r\n///   driven_by / viewer_count are BROKER-owned (single writer). A VIEWER\r\n///   attach ARMS snap-above at the floor (REQ-HAZARD-VIEWER-RING-ROLL-SNAP);\r\n///   the CONTROLLER keeps strict reject-gap (exactly-once resume, B2).\r\n// [impl->REQ-RC-CROSS-NODE-ATTACH]\r\n// [impl->REQ-HAZARD-VIEWER-RING-ROLL-SNAP]\r\n#[allow(clippy::too_many_arguments)]\r\nfn handle_attach_request(\r\n    brain: &mut Brain,\r\n    wire: &mut Brain,\r\n    stream_id: u64,\r\n    endpoint: &str,\r\n    origin_node: &str,\r\n    remote_session: Option<u64>,\r\n    session_id: u64,\r\n    from_seq: u64,\r\n    req_intent: AttachIntent,\r\n    intent: &mut AttachIntent,\r\n    attached_session: &mut Option<u64>,\r\n    attached: &mut bool,\r\n) -> io::Result<Option<AttachServeOutcome>> {\r\n    if access_check(endpoint, origin_node, InboundClass::Unsolicited) == AccessDecision::Deny {\r\n        wire.net_stream_send(stream_id, &[], None, true)?;\r\n        return Ok(Some(AttachServeOutcome::Refused));\r\n    }\r\n    let sid = remote_session.unwrap_or(session_id);\r\n    *intent = req_intent;\r\n    *attached_session = Some(sid);\r\n    if req_intent == AttachIntent::Viewer {\r\n        brain.attach_as_viewer_snap(sid, from_seq, Some(origin_node))?;\r\n    } else {\r\n        brain.attach_as(sid, from_seq, req_intent, Some(origin_node))?;\r\n    }\r\n    *attached = true;\r\n    Ok(None)\r\n}\r\n\r\n/// Serve one attach stream against this brain's broker, blocking until the\r\n/// session exits, the operator detaches, or the gate refuses.\r\n///\r\n/// `origin_node` MUST be the handshake-proven remote id from the broker's\r","startLine":1,"lineNumbers":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263]},"meta":{"source":{"type":"path","value":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src\\attach.rs"},"truncation":{"direction":"head","truncatedBy":"lines","totalLines":692,"totalBytes":13218,"outputLines":263,"outputBytes":13218,"shownRange":{"start":1,"end":263},"nextOffset":264}}},"isError":false,"timestamp":1784247573298}}
{"type":"message","id":"b1973326","parentId":"0a69f8fa","timestamp":"2026-07-17T00:19:33.320Z","message":{"role":"toolResult","toolCallId":"call_RYB6xZEzJBvwwPsSO2c4gCYd|fc_05a4d8ea8a10ef0b016a5975152eb0819887295f6513c77b7f","toolName":"grep","content":[{"type":"text","text":"# crates/spt-daemon/src/\n## attach.rs\n 165|    loop {\n*166|        match brain.read_event() {\n 167|            // Our own re-subscribe's Subscribed reply: swallow it (role is already\n 168|            // resolved) so it cannot mask a repeated gap as forward progress.\n 169|            Ok(BrokerEvent::Subscribed { .. }) if swallow_resume_ack => {\n...\n 292|#[allow(clippy::too_many_arguments)]\n*293|pub fn serve_attach(\n 294|    brain: &mut Brain,\n 295|    broker_name: &str,\n 296|    stream_id: u64,\n...\n 409|            }\n*410|            _ => brain.read_event()?,\n 411|        };\n 412|        match event {\n 413|            // ── Wire → session: requests, input, resize. ───────────────────\n## sync.rs\n 185|// [impl->REQ-HAZARD-WAN-ORIGIN-AUTH]\n*186|pub fn serve_sync(\n 187|    brain: &mut Brain,\n 188|    stream_id: u64,\n 189|    origin_node: &str,\n...\n 198|    loop {\n*199|        match brain.read_event()? {\n 200|            BrokerEvent::NetStreamData {\n 201|                stream_id: sid,\n 202|                bytes,\n...\n 701|                keys: &BTreeMap::new(),\n*702|                timeout: Duration::from_secs(30),\n 703|                now_ms: 5000,\n 704|                window_ms: 0,\n 705|            },\n## notif.rs\n 1068|                &notif_keys(&row),\n*1069|                std::time::Duration::from_secs(30),\n 1070|            )\n 1071|            .unwrap();\n 1072|        let stdout = out.stdout.trim();\n...\n 1168|            assert_eq!(render_via_shell_notif_templates(&owlery, \"doyle\", &row), 1);\n*1169|            let deadline = std::time::Instant::now() + std::time::Duration::from_secs(15);\n 1170|            let content = loop {\n 1171|                if let Ok(c) = std::fs::read_to_string(&marker) {\n 1172|                    if !c.trim().is_empty() {\n## dispatch.rs\n 432|    loop {\n*433|        match brain.read_event()? {\n 434|            BrokerEvent::NetStreamData {\n 435|                stream_id: sid,\n 436|                bytes,\n...\n 673|// [impl->REQ-INST-7]\n*674|fn serve_registry_feed(\n 675|    brain: &mut Brain,\n 676|    stream_id: u64,\n 677|    origin: &str,\n...\n 686|    loop {\n*687|        match brain.read_event() {\n 688|            Ok(BrokerEvent::NetStreamData {\n 689|                stream_id: sid,\n 690|                bytes,\n...\n 752|// [impl->REQ-PRES-1]\n*753|fn serve_notif_feed(brain: &mut Brain, stream_id: u64, origin: &str) -> DispatchOutcome {\n 754|    let store = match NotifStore::open() {\n 755|        Ok(s) => s,\n 756|        Err(e) => return DispatchOutcome::Failed(e.to_string()),\n...\n 771|    loop {\n*772|        match brain.read_event() {\n 773|            Ok(BrokerEvent::NetStreamData {\n 774|                stream_id: sid,\n 775|                bytes,\n...\n 831|// [impl->REQ-NET-1]\n*832|fn serve_wan_feed(\n 833|    brain: &mut Brain,\n 834|    stream_id: u64,\n 835|    origin: &str,\n...\n 845|    loop {\n*846|        match brain.read_event() {\n 847|            Ok(BrokerEvent::NetStreamData {\n 848|                stream_id: sid,\n 849|                bytes,\n## brain.rs\n 198|/// cross-platform, and on Windows named pipes interprocess 2.4.2 offers NEITHER\n*199|/// portable read timeout (`set_recv_timeout` → `no_timeouts()`; `set_nonblocking`\n 200|/// → deprecated `PIPE_NOWAIT`, which corrupts mid-stream — proven by the mesh\n 201|/// E2E). So the pump carrier instead **splits** the stream: a dedicated reader\n 202|/// thread does blocking [`read_frame`] on the [`RecvHalf`] and forwards each\n 203|/// framed result down a channel; the main thread writes on the [`SendHalf`] and\n*204|/// reads with [`Receiver::recv_timeout`]. Blocking reads work on both OSes; the\n 205|/// channel supplies the deadline. On a timeout the pump bubbles out to a\n 206|/// supervised restart (a fresh [`Brain`] → fresh split → fresh reader thread);\n 207|/// the old reader, parked in `read_frame`, is abandoned (KH 7.6 leak watch — the\n...\n 296|    /// into the reader-thread form so the deadline can be honored over a channel\n*297|    /// (`recv_timeout`). `None` (default) = the ordinary blocking client — a\n 298|    /// brain-IPC read waits forever, which is correct everywhere EXCEPT the\n 299|    /// single-threaded pump, where a black-holed peer would wedge the whole loop\n 300|    /// (KNOWN-HAZARDS — a blocked brain-IPC read must never wedge the pump). The\n...\n 339|    /// call deadline of `io_timeout`. This is the peer pump's dedicated client —\n*340|    /// every reply read is bounded ([`Brain::read_event_until`] via\n 341|    /// [`Brain::call_deadline`]) so a black-holed peer can never wedge the\n 342|    /// single-threaded pump. The split is done at CONSTRUCTION (not flipped on a\n 343|    /// live `Whole` after the fact — moving the `Stream` out by value to split it\n...\n 471|        loop {\n*472|            match self.read_event()? {\n 473|                BrokerEvent::Spawned { session_id, pid } => {\n 474|                    self.session_id = Some(session_id);\n 475|                    // A resume-mode brain tracks this fresh session per-session via\n...\n 587|            }\n*588|            match self.read_event()? {\n 589|                BrokerEvent::Output { bytes, .. } => buf.extend_from_slice(&bytes),\n 590|                BrokerEvent::Exit { .. } => {\n 591|                    return Err(io::Error::new(\n...\n 624|\n*625|    pub fn read_event(&mut self) -> io::Result<BrokerEvent> {\n*626|        self.read_event_until(None)\n 627|    }\n 628|\n 629|    /// Like [`Brain::read_event`] but each frame read is bounded by an optional\n...\n 635|    // [impl->REQ-HAZARD-PUMP-IPC-DEADLINE]\n*636|    pub fn read_event_until(&mut self, deadline: Option<Instant>) -> io::Result<BrokerEvent> {\n 637|        loop {\n 638|            let env = self.read_frame_until(deadline)?;\n 639|            match env.kind.as_str() {\n...\n 876|\n*877|    /// Like [`Self::read_event_until`] but for a PEER-REPLY read (a pump leg\n 878|    /// waiting on a peer's forwarded stream response). A no-progress timeout is\n 879|    /// the peer being connect-then-silent / half-alive — an ORDINARY per-peer\n 880|    /// failure, so it is reclassified OUT of `TimedOut` and the pump's\n...\n 890|    pub fn read_peer_reply_until(&mut self, deadline: Option<Instant>) -> io::Result<BrokerEvent> {\n*891|        self.read_event_until(deadline)\n 892|            .map_err(reclassify_peer_reply_err)\n 893|    }\n 894|\n...\n 1118|        loop {\n*1119|            match self.read_event()? {\n 1120|                BrokerEvent::NetStatus(s) => return Ok(s),\n 1121|                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1122|                _ => continue,\n...\n 1228|        loop {\n*1229|            match self.read_event()? {\n 1230|                BrokerEvent::PairJoined(r) => return Ok(r),\n 1231|                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1232|                _ => continue,\n...\n 1253|        loop {\n*1254|            match self.read_event()? {\n 1255|                BrokerEvent::MetMember(m) => return Ok(MetOutcome::Met(m)),\n 1256|                BrokerEvent::PairJoined(r) => return Ok(MetOutcome::Failed(r)),\n 1257|                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n...\n 1277|        loop {\n*1278|            match self.read_event()? {\n 1279|                BrokerEvent::PairJoined(r) => return Ok(r),\n 1280|                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1281|                _ => continue,\n...\n 1307|        loop {\n*1308|            match self.read_event_until(deadline)? {\n 1309|                BrokerEvent::NetDialed(d) => return Ok(d),\n 1310|                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1311|                _ => continue,\n...\n 1337|        loop {\n*1338|            match self.read_event_until(deadline)? {\n 1339|                BrokerEvent::NetDialSubmitted => return Ok(()),\n 1340|                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1341|                _ => continue,\n...\n 1358|        loop {\n*1359|            match self.read_event_until(deadline)? {\n 1360|                BrokerEvent::NetDialed(d) => return Ok(d),\n 1361|                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1362|                _ => continue,\n...\n 1387|        loop {\n*1388|            match self.read_event_until(deadline)? {\n 1389|                BrokerEvent::NetStreamOpened(ev) => return Ok(ev),\n 1390|                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1391|                _ => continue,\n...\n 1424|        loop {\n*1425|            match self.read_event_until(deadline)? {\n 1426|                BrokerEvent::NetSent(ev) if Some(ev.op_id) == want_seq => return Ok(Some(ev)),\n 1427|                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1428|                _ => continue,"}],"details":{"scopePath":"crates/spt-daemon/src/attach.rs, crates/spt-daemon/src/sync.rs, crates/spt-daemon/src/update.rs, crates/spt-daemon/src/notif.rs, crates/spt-daemon/src/relay.rs, crates/spt-daemon/src/dispatch.rs, crates/spt-daemon/src/brain.rs, crates/spt-daemon/src/nethost.rs","searchPath":"C:\\Users\\decid\\Documents\\projects\\spt-core\\crates\\spt-daemon\\src","cwd":"C:\\Users\\decid\\Documents\\projects\\spt-core","matchCount":35,"fileCount":5,"files":["crates/spt-daemon/src/attach.rs","crates/spt-daemon/src/sync.rs","crates/spt-daemon/src/notif.rs","crates/spt-daemon/src/dispatch.rs","crates/spt-daemon/src/brain.rs"],"fileMatches":[{"path":"crates/spt-daemon/src/attach.rs","count":3},{"path":"crates/spt-daemon/src/sync.rs","count":3},{"path":"crates/spt-daemon/src/notif.rs","count":2},{"path":"crates/spt-daemon/src/dispatch.rs","count":7},{"path":"crates/spt-daemon/src/brain.rs","count":20}],"truncated":true,"perFileLimitReached":20,"displayContent":"# crates/spt-daemon/src/\n## attach.rs\n 165│    loop {\n*166│        match brain.read_event() {\n 167│            // Our own re-subscribe's Subscribed reply: swallow it (role is already\n 168│            // resolved) so it cannot mask a repeated gap as forward progress.\n 169│            Ok(BrokerEvent::Subscribed { .. }) if swallow_resume_ack => {\n    │...\n 292│#[allow(clippy::too_many_arguments)]\n*293│pub fn serve_attach(\n 294│    brain: &mut Brain,\n 295│    broker_name: &str,\n 296│    stream_id: u64,\n    │...\n 409│            }\n*410│            _ => brain.read_event()?,\n 411│        };\n 412│        match event {\n 413│            // ── Wire → session: requests, input, resize. ───────────────────\n## sync.rs\n 185│// [impl->REQ-HAZARD-WAN-ORIGIN-AUTH]\n*186│pub fn serve_sync(\n 187│    brain: &mut Brain,\n 188│    stream_id: u64,\n 189│    origin_node: &str,\n    │...\n 198│    loop {\n*199│        match brain.read_event()? {\n 200│            BrokerEvent::NetStreamData {\n 201│                stream_id: sid,\n 202│                bytes,\n    │...\n 701│                keys: &BTreeMap::new(),\n*702│                timeout: Duration::from_secs(30),\n 703│                now_ms: 5000,\n 704│                window_ms: 0,\n 705│            },\n## notif.rs\n 1068│                &notif_keys(&row),\n*1069│                std::time::Duration::from_secs(30),\n 1070│            )\n 1071│            .unwrap();\n 1072│        let stdout = out.stdout.trim();\n     │...\n 1168│            assert_eq!(render_via_shell_notif_templates(&owlery, \"doyle\", &row), 1);\n*1169│            let deadline = std::time::Instant::now() + std::time::Duration::from_secs(15);\n 1170│            let content = loop {\n 1171│                if let Ok(c) = std::fs::read_to_string(&marker) {\n 1172│                    if !c.trim().is_empty() {\n## dispatch.rs\n 432│    loop {\n*433│        match brain.read_event()? {\n 434│            BrokerEvent::NetStreamData {\n 435│                stream_id: sid,\n 436│                bytes,\n    │...\n 673│// [impl->REQ-INST-7]\n*674│fn serve_registry_feed(\n 675│    brain: &mut Brain,\n 676│    stream_id: u64,\n 677│    origin: &str,\n    │...\n 686│    loop {\n*687│        match brain.read_event() {\n 688│            Ok(BrokerEvent::NetStreamData {\n 689│                stream_id: sid,\n 690│                bytes,\n    │...\n 752│// [impl->REQ-PRES-1]\n*753│fn serve_notif_feed(brain: &mut Brain, stream_id: u64, origin: &str) -> DispatchOutcome {\n 754│    let store = match NotifStore::open() {\n 755│        Ok(s) => s,\n 756│        Err(e) => return DispatchOutcome::Failed(e.to_string()),\n    │...\n 771│    loop {\n*772│        match brain.read_event() {\n 773│            Ok(BrokerEvent::NetStreamData {\n 774│                stream_id: sid,\n 775│                bytes,\n    │...\n 831│// [impl->REQ-NET-1]\n*832│fn serve_wan_feed(\n 833│    brain: &mut Brain,\n 834│    stream_id: u64,\n 835│    origin: &str,\n    │...\n 845│    loop {\n*846│        match brain.read_event() {\n 847│            Ok(BrokerEvent::NetStreamData {\n 848│                stream_id: sid,\n 849│                bytes,\n## brain.rs\n  198│/// cross-platform, and on Windows named pipes interprocess 2.4.2 offers NEITHER\n *199│/// portable read timeout (`set_recv_timeout` → `no_timeouts()`; `set_nonblocking`\n  200│/// → deprecated `PIPE_NOWAIT`, which corrupts mid-stream — proven by the mesh\n  201│/// E2E). So the pump carrier instead **splits** the stream: a dedicated reader\n  202│/// thread does blocking [`read_frame`] on the [`RecvHalf`] and forwards each\n  203│/// framed result down a channel; the main thread writes on the [`SendHalf`] and\n *204│/// reads with [`Receiver::recv_timeout`]. Blocking reads work on both OSes; the\n  205│/// channel supplies the deadline. On a timeout the pump bubbles out to a\n  206│/// supervised restart (a fresh [`Brain`] → fresh split → fresh reader thread);\n  207│/// the old reader, parked in `read_frame`, is abandoned (KH 7.6 leak watch — the\n     │...\n  296│    /// into the reader-thread form so the deadline can be honored over a channel\n *297│    /// (`recv_timeout`). `None` (default) = the ordinary blocking client — a\n  298│    /// brain-IPC read waits forever, which is correct everywhere EXCEPT the\n  299│    /// single-threaded pump, where a black-holed peer would wedge the whole loop\n  300│    /// (KNOWN-HAZARDS — a blocked brain-IPC read must never wedge the pump). The\n     │...\n  339│    /// call deadline of `io_timeout`. This is the peer pump's dedicated client —\n *340│    /// every reply read is bounded ([`Brain::read_event_until`] via\n  341│    /// [`Brain::call_deadline`]) so a black-holed peer can never wedge the\n  342│    /// single-threaded pump. The split is done at CONSTRUCTION (not flipped on a\n  343│    /// live `Whole` after the fact — moving the `Stream` out by value to split it\n     │...\n  471│        loop {\n *472│            match self.read_event()? {\n  473│                BrokerEvent::Spawned { session_id, pid } => {\n  474│                    self.session_id = Some(session_id);\n  475│                    // A resume-mode brain tracks this fresh session per-session via\n     │...\n  587│            }\n *588│            match self.read_event()? {\n  589│                BrokerEvent::Output { bytes, .. } => buf.extend_from_slice(&bytes),\n  590│                BrokerEvent::Exit { .. } => {\n  591│                    return Err(io::Error::new(\n     │...\n  624│\n *625│    pub fn read_event(&mut self) -> io::Result<BrokerEvent> {\n *626│        self.read_event_until(None)\n  627│    }\n  628│\n  629│    /// Like [`Brain::read_event`] but each frame read is bounded by an optional\n     │...\n  635│    // [impl->REQ-HAZARD-PUMP-IPC-DEADLINE]\n *636│    pub fn read_event_until(&mut self, deadline: Option<Instant>) -> io::Result<BrokerEvent> {\n  637│        loop {\n  638│            let env = self.read_frame_until(deadline)?;\n  639│            match env.kind.as_str() {\n     │...\n  876│\n *877│    /// Like [`Self::read_event_until`] but for a PEER-REPLY read (a pump leg\n  878│    /// waiting on a peer's forwarded stream response). A no-progress timeout is\n  879│    /// the peer being connect-then-silent / half-alive — an ORDINARY per-peer\n  880│    /// failure, so it is reclassified OUT of `TimedOut` and the pump's\n     │...\n  890│    pub fn read_peer_reply_until(&mut self, deadline: Option<Instant>) -> io::Result<BrokerEvent> {\n *891│        self.read_event_until(deadline)\n  892│            .map_err(reclassify_peer_reply_err)\n  893│    }\n  894│\n     │...\n 1118│        loop {\n*1119│            match self.read_event()? {\n 1120│                BrokerEvent::NetStatus(s) => return Ok(s),\n 1121│                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1122│                _ => continue,\n     │...\n 1228│        loop {\n*1229│            match self.read_event()? {\n 1230│                BrokerEvent::PairJoined(r) => return Ok(r),\n 1231│                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1232│                _ => continue,\n     │...\n 1253│        loop {\n*1254│            match self.read_event()? {\n 1255│                BrokerEvent::MetMember(m) => return Ok(MetOutcome::Met(m)),\n 1256│                BrokerEvent::PairJoined(r) => return Ok(MetOutcome::Failed(r)),\n 1257│                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n     │...\n 1277│        loop {\n*1278│            match self.read_event()? {\n 1279│                BrokerEvent::PairJoined(r) => return Ok(r),\n 1280│                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1281│                _ => continue,\n     │...\n 1307│        loop {\n*1308│            match self.read_event_until(deadline)? {\n 1309│                BrokerEvent::NetDialed(d) => return Ok(d),\n 1310│                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1311│                _ => continue,\n     │...\n 1337│        loop {\n*1338│            match self.read_event_until(deadline)? {\n 1339│                BrokerEvent::NetDialSubmitted => return Ok(()),\n 1340│                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1341│                _ => continue,\n     │...\n 1358│        loop {\n*1359│            match self.read_event_until(deadline)? {\n 1360│                BrokerEvent::NetDialed(d) => return Ok(d),\n 1361│                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1362│                _ => continue,\n     │...\n 1387│        loop {\n*1388│            match self.read_event_until(deadline)? {\n 1389│                BrokerEvent::NetStreamOpened(ev) => return Ok(ev),\n 1390│                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1391│                _ => continue,\n     │...\n 1424│        loop {\n*1425│            match self.read_event_until(deadline)? {\n 1426│                BrokerEvent::NetSent(ev) if Some(ev.op_id) == want_seq => return Ok(Some(ev)),\n 1427│                BrokerEvent::Error { message } => return Err(io::Error::other(message)),\n 1428│                _ => continue,"},"isError":false,"timestamp":1784247573320}}
{"type":"message","id":"cf680a00","parentId":"b1973326","timestamp":"2026-07-17T00:20:20.444Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Analyzing post-poison pipe buffering behavior**\n\n**Investigating broker writer blocking causes**\n\n**Identifying Windows pipe drop-limbo causing poison timeout**"},{"type":"thinking","thinking":"**Analyzing delayed disconnect causes**\n\n**Planning detailed dispatch instrumentation**\n\n**Confirming v0.34 retry regression relation**"},{"type":"thinking","thinking":"**Assessing runtime health and heartbeat consistency**\n\n**Confirming continuous heartbeat and broker responsiveness**\n\n**Identifying limitations in stream subscriber labeling**"},{"type":"thinking","thinking":"**Clarifying connection timing and event handling**\n\n**Planning dispatcher timeout and test improvements**\n\n**Designing Windows subscriber integration tests**"},{"type":"thinking","thinking":"**Designing output timestamp instrumentation**\n\n**Analyzing endpoint stall scenarios**"},{"type":"toolCall","id":"call_i7lMU0wDezVZrGm5qikl90ls|fc_05a4d8ea8a10ef0b016a597543cb708198947b0d894123f0c9","name":"irc","arguments":{"i":"Checking probe guidance","op":"inbox","to":null,"message":null,"replyTo":null,"await":null,"from":null,"timeoutMs":null,"peek":false}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":13292,"output":2477,"cacheRead":207360,"cacheWrite":0,"totalTokens":223129,"reasoningTokens":2420,"cost":{"input":0.06646,"output":0.07431,"cacheRead":0.10368,"cacheWrite":0,"total":0.24445}},"stopReason":"toolUse","timestamp":1784247573823,"responseId":"resp_05a4d8ea8a10ef0b016a5975160d588198a15dc53a794c1115","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a597517c42c81989103570ad76da71e","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXUhJpI_rylVHgiPP2YPXn3SfnmIBQjG8oJcluRUJislSu1P_W-fFZ4LzI8VshPmSdUfORvCxhadXKoo8tQoQSoQ1Bq7vfJadEcjqNr7JZhePgduIQ_5s6ipCPThzd57j2bnMzwyfo_pk0-hboJur_dwjd6YmrCnFvyxruPyTBLYbwSg-ScrqFWXE7-y6vSTnJ-q3RfsEfiMu1NDwXNk6oVVph8u-Nyw4HpLPb7ByUz_CuFdmsfsj_4I8y9k1KRHIgXFVHLrTLx7rVzEKPs1470VaSRD8uQ1eGm7wIjV6jp1u_rGaf3L0aPJTUN0jhF-YEULfzVrnk4u2XUvW-1c-326L0KjqhywOuC8xRcVz0alDbb1-bK4wl1byU5Vt2NY-GB0C5RSyKL5c2RaH_BdG5cw_XYH9M8RHbShe3wStPUyd__DLzFgTDJ-XXwlnVQa9DRg170Lve9fNfz6muzJ8BAOdBA-iFtFJ66MvchmcrHon6iY9VXgxkT28RoWu9kIQxOKj3GMgoycYmHaqQxz507A2scZJcroTiGFwWEKHCP0c9GPkxEIunzsPHG5a3RFLPXrmaU3emMV6QugOmjXfMBgY90kiMkj7gNLkp1-KHsWRQ3fFMSAQjPJOmz-wnT8ckd-Xe-g7mcZSccRc841qDVC1HQPwR94-zuv9xRUZxOCRgjWIDw6xUEp8uiZXkwYOCRsPETbP3cHpXvMGPdJ0UmLi7YDlfxSTOJDCpIW3b4PlAqLZ8evGdiFxidOmD0zaORq8J8jgx5I3L3R3oTitNEKExwGYQUDOIYWMFLEh4Y49YPxILQyyhcd0mQSup7bdDxguuEVFIZNYMjDmC0qRsxUntVolpQ4F01IqCr2Sm-pihi15tCzPRQVpf-Rikj8ZLluYn5XUv7rrp5X2DET9Fud6lq8FanKzD7USlUDZrzO1nq3HsWp_VoocYMMB0plN3LyzQYb07d3hndCo70BUJylprptQkv4qFYMTSTS5ecZyvGBCXcXxhvypor1Nf4ss4-dNM0GGECZ6WKhdJ6r3ciDnUdDDxOLf54hxm16CJ0qSPIQQ76rV4RuLFObHevBfTcs0PHVGU7exuIS8TFFGNncLrDB5qU5kpyyqrjjNy3ujpI2qapcLtrJPoNnPIqf5JW-zbasMYptPknBv5ZYDYxtsZLT6Kwxg8pkgrjoI1d_CS7xPWvyye_0XRhfDF0iTepFe9F9K0avFHjrEkbXx3plvWzAqh8mglHxy8Le-GwRaVGcIpTMFRpMJs9NJ899RxGxEakcaROq6sK6ggwMlvxlGbjEeCuZyMpLdFQ7JTRauDiy_u8VX7fMnfOehzoYOPuon5wa3VlhQDpjdh70u7Jggw1FCZb7a9IeJtmfSAFjWC3t_YXgT9AYZrjhLCum5SuoknOlXVpEeEEXcOodYiqzVPAeH4R73HTyTFxaXeN1JW4vs99OnR05TiX9NI1WWnCc-8xB2tJQYPf6wOmtLWoP7G-xfeWWqFIXa5N4FQhOpDUfL33OywU5fwWK3PGQSF2ad2zpN0gP83-gMPbZ8P40aBZSNJ3r_O7bEhVmQQvSflZCV7k6Trh2eXCvK1qM0bViasxU6LBaPxD6TuBlnSSkDGBw0e2sA9FVDnwoJkY7KKo5LFeIIVBv-eIV1QRSJ0AU1SIhFp9pdwTp57_7xu9FwpiZ6bBsqrtupk_yh92NhZLz3Eri19hN2aNPq-PJrBzt7B3nrMu1Er5vUhXM9JvqjKRt5_VFz9K7hUuHU-nD8jZ3M9nQ0fXrJeelBoXB8g-Cxue_t1bAl2KOF2mUSSR_LrodZ0JA4AG3lopFgX9uvlon-T6Io6HJ-mpZLcbyxukBb2BidJxxNrrSjQ-4kAwtLdLOffToI3kwxha-tMGoFkr59gyFaKiQjMBPyg-WvZSgeE9j59r9EEZCPbTmZ6-e4XaX7MFkvompBMcNBCX8XvqVCp3rW5Qv7_UPb7NlHlZGUbntqzEdboLbJueEZ_VzQlv_3eHdek6wJsOiuNi-PrOmd0GM2S7ERzeFMeJuRX5XGM1zCzfj1eRlB201Z4jAzwmjcDi9IeymBinSKM-QwTMEiwMKk1aDbWSnNt4dh8mpTBYisb55z07BkJI_PLbJLXy15BPlIrmU2SE0Mr7T9u2TI1rStiuYSKXBOYp2JuAAu6wCf5Gg_3LRKuMapjWXUs7_vxr8AZCeiJcNhWgws74tDRXs4FCFBMjiwz7Z0eS2ml9OcVnRGQP-erQoFOr8cvtXiEU9hC_pUDX3W-THDrFnsCO9Ee63zOmjLo9upF0loBPhmYmQ6t0-LQj5hwW9oX5cOcXD1CK8YzC_Iki1krQUiHvsWDA1IuchQYRrBMrRz8jy3d1btg_RJoccL7hUIXtug2LHjsxStWCM4cBlk_SxRxPSguV0myQDFbXBlAzYh102iO4vEGHUoHVciLs0d0XPNJ19JvsC4ozp_1d9kQlz11ek2tiGkP67iTqJNsdw9vbyCpHXFhvoZ74ZKr0TLYT7RK7cbZqgl6M3qe38SClRgA3Nh9oGH2OyHLixMdj7dUmq2K6y0JWMhxYv_X2-uheq4MbVYYE2GBETt40t0HXDeihjx5a1Ys10nZERegqhQnejqqSqk_3MkAbzyrSBCimRvys34oQKnZWvEDcrIkugUWU1Qu_Up3TYBAzs521ddYMYJyKnLQJR-yyqUs8fAwLj1bybSAPZKjsYtYd8FBUV2HodEdXLCWMTHJqguDyqBSxKYFt0VtrUDPYaS60ujbP0-f9My4It4B9kzFUIKyZC2UIN-99IV30RAF4DF5Z9vOHgos7t7M8XD1sPqN8dRH5fmi5Z5yT5wnBzMxsNYsv-Xj4D-daBfFEymyEMHzOywEzfaLTmyk_oXhcIlILiRHMLfUfqMzDAwCqRak1AqWR-1WNMUx3B0kAy3IpNkYLsA40TRFjV4zIos7bHxPdahDYq7l597pzuY4A208a2k-e0kJl1wdU5Du8zVTD5xwxcN-8gtOMR5rAM0ZcnXCa7vP1TpEfBK10Ox8krD0VCjuLRbET1hSKtFur1kw4GpkrBEk5C-5L51ySLaKDN8U30K0E4JWeDVVwiIrYr60XzXHbtCfPtynzEVdZOWnbf7NNcLVm9m6Ryy0EqU2_Kd2ItyH6Re-PR-FJXn0ryEvTnHMXKdPG_wdmzSrm5sli8DtI7H8rQWslApEYDHyrKuobXkjgRa7chc1FfDR0pHfG_m_yRnTO6JHrlPg7YJCx5PUSB3foD7oy67qg48uS1Ni0DS43nrKp4we_uEyxJkEptpLTLdBz0woDiXFV7E7kJv3XUYf4EMi2J-1oCvvogAbL7ZhlFRUBwe3B9u_f9OrSqJIVEYCh9eAiowkoiZeOh0oMO8psJfGBS0yX4NS4yJDyAs0Oyi_OUffjf3AT3t3KH9EzJl3040eXdDqHeopr_37arAPPJ1pnMYH_mgflsbf1UbO78Iq9Y9AP_jsVzvdVx0wyd470w7eocvrdcqAJNyuV27k1MPXSp2aXi14VpatjYF24qV9iVp6CdQdDqyzASVakaK_r_Jwthr_Roo8I6SbxXGBLY9XEYcmjmog_vk6p7Jzup36r6yXQtP1Zd90-JGgY3zmXaWIOEhHiOQpcFPhrkFBZfqdhYt4U6m0XiPQzZsUQ28lk5v41g7baHOmtqnKIeaTSegDfKGPfn0OvNZyWYst9XAWAlOKw3FGvIxrKO4w1VEDIPMyS2-3O4PjJ3Na5v4rEXpfsAkIopLQ-Z8j8TflBIe44o8Hs3NCtorabNUQgalNC54etiuIDvN2vxtjt8s1m42jLgSLkqlQ3xRjZDt_yGNoKiZtKgoj2Z-0hY3Q3J04mkB7yVJ97oUZBg361oO7INNggVnG6Dl9DVRtK_xIFFhnxBdiOO4qHGGYxfI2pj5C-jKIpEtd3vrTHLz4TAiCFzzQFW-2krZaqeWaDp0M89A-x9EsNcsU-sd7Z5AHukhBxMcg0SqKJ_Zvzm67xkDHk21mD_MiaqSIuwz0l87LoPZJ2jxNsbW0xTVhg72C5eV5xilXYQoiihrLWYnPvbIqH-VUjqf8fbNdSqxlOC-_yqpn3dkOi0nkRZg0UpO3XUHDWGtmLE-N_vc0MxX_xJXE2A0xLkQ0L433Y5zbPFsGExSG2px49mHFvcI7xQXLi0ki8_IM6uY8R7TxsETRxwnlStN1tJN5liQ7SSthJWf5EmZQkrFRNvdJmKIQaMxHK5WE1oHoxDTcAvNxGORE7svnjbtGVTS9JGCgaTK1w0FfL0RW4aIaH6KzzY8GGNqKhnAAV_PaBvoiRpNVUPXUg9kyOG7-7O_PhWCmyl4_e_4atdZ6xlVB333Kem9O276w==","summary":[{"type":"summary_text","text":"**Analyzing post-poison pipe buffering behavior**"},{"type":"summary_text","text":"**Investigating broker writer blocking causes**"},{"type":"summary_text","text":"**Identifying Windows pipe drop-limbo causing poison timeout**"}]},{"id":"rs_05a4d8ea8a10ef0b016a59752178508198afe62e37dc0cc6c0","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXUqVjUZme0Bobwq0KbkTjSoR3oOx79PJnCF9Gu8pZ9W3D1UfJEGkViOJonGDCnN7GQ8JsywthsSNAtLq9frlvc8kdPCW8ymEPEIdMAvjo8cz0ogUo2LQ7nFFNQQkSBcyXDVtKWUMOB8DXXvQ1drr_G6zjQMzx78ytVLSm-g8YV5307AAag2s5-rbLonSaojWL3Ko3k_kNYHUIQ0LrC3_culdOMtJy30l_ZAju6HYlbGjXx0Iweab-jA48grt7cqzBgneB4P9i5cAEKQm_ZB4SanOEiaDA2q15MgtxYl8xGSaUdVmg_TcLw1Icy2PH8wzvu3RvFlhyq1TH2oiIWNllDpGLnNVQyBrJlfTAc6L9sFEuZqQgPvsKf6VQdcB0sPf76fFEC_ItKdSrmpb_crXzXhQI92zjAQlpNZEcMsJmlEvlUGDZiJgO63DTtYdIzyUDffLS2AjJ-iwvhIMgEgghO6-c3ZplFRqeXu2BYNYp10Iqi8a_Gol0LQKmrZeEKpUSVH_6J_LHpZ6Zb0_8QzNhq4VAUspTLs2BxpLFeS3CQay-WWe7iubcZMdSalC29ZF4sFgskbibnDnlYkRgBITnziSSXRF0y_jk7NUsiELAqtsWahmK2NCiY26S23awnUG8GGreTe3TUZGDDAVMi9ZazYn5erwPl-BbrBriIwo_XQSRnwiI-m3iv6IzbSrk9k6AWR0CeD8pwsA3QXqN55qUGwadY-sREncoQANc85YVgdQBSsqUugON88tlHscfuSIFoXXRU-P8Tl47XDH7UEMa9Jb2OCVQ5toaTwtYFzJJqFellxnP81QlNXM3RwDuR0DuSPzDVEh8X0S8Ohbih4kpfyIuaH593OGuo1_q1T9c5G0hCNdX-1lynuxb8cmwP1wRCoQL3qBmq-MPfge7nDMI-i8A4mJqz3y4LNClTkm0OmK3_XhqVrNyUqnbFny55Ads9t7cD9_KTqz1w8iD72wG3iiAhky7BmS7jxiJpaHa9EZziDT-iQ3d61EC93sedNJcVT-RnUiNlNlw6-xDXY_wFz6zDupwU17m4A0Qirvwegg4fv1q1wkqeJ-jfDGNBbK0zFwlMW11mCLw1ocPzIoZ6LUJ0ftJHjczL_x5GS72PagyR-xmkvWnz9syUUmA0t24nj_9CU_oTx5gCBHMXoCtV15V0KFIrRF5tPxW08Ry6PuKASaJcumhTrIFGqZJr0ryMtV9a9WxSr9Zf_4GEMaL9Cly3aVVMOuU5fnSJM5lOnCCW_-Fb8f1ZQ_UT1KnrNokCNfHLTtXcvdubRaT2DCFrlU9mF_PQYmypqEJzAWcr36Scqefpp16ICYRxpG_4LltJszqjvDFxO5itlR4eW7onKpa9gtUZdgE2_mEoXs3wImEDTG9CuJKRPcnKsi0XsX2Fc3GoKDVn1S-riHwD7CHUT-2lmq1bHCie8LXq0Fj7F8vhcfBBUkudjcwcLD5OpOsNlG6uAK9J7a-WkytpLIqkedXe5TrnBj6SW9j_uYK2tI2DAqOMAPyIY63eHqhBM4v3BQ7ukHJfPVwyfMsmF3PnIvNANwXFS3VHjyVITW1b_io2WBu1IbKPD2U6s6zAKBgWfIiY5LvzuOL1A-TbBU8XB6Oq9WYYmwEQXIxl4Fm_Fn-JpXKVJWtH32m_SWl0yR0_Y59za3cMBs03SF2K7QEazKyYhQ1hENaZH_DWzZQqIcsRqbfLWwl277AgGAjljEpvW1WCwu3FbpZy2GCyIlnoH9mpUH4JbcLy3etksgk5tHKa1vgf3CNL10X4QrkAwVoF9FAEZeq6F6Y6A2lD17qT7LgrvW_Zh9FVyPgIVlZIz7C1qzHA67Sq67A3_rkTC-W_nVEW8cgehVSaSStrfbaOc4Z1-9Ru6Tz6AVr-kKSkwN-D_pgoyMUGgZp8HoLA6H2R46naSC-lXeymCM_kIDBzngJnMRHdqf5F9JM2gFrcGZXUl3LNUG7GPceIAxKZ_pDQKTpeQWkLLf_we_rt-4xboJD2-R0C9VKj2GOzwnmB53NiJM0hxXf5il32LxlDreN8inz4MBMRhdCL0zOdWt-gyqD8UZQBa5uxZ_hrGXKM_fvRosQQC_jmqz2a-xPWa9DstwhBm_GL7B5k0bG_Ih0H3uRJLy0O_imX-geMp7nb5MSr3emyumV6-h7ySb4gMaZ2et-4h70pbTPWn-umDvg6hvl8MxNwX466bDi1GFIIH5Zf4J3ohkzYewDYfDKupA8rTZsbjaqgsGWVnS9jl7lh10r91KkIL287LNoraUh117h4RnpBbO_5IcWstYlj5s5KecHfYIBs68U8k_trt0gWCRnywx6oZKlZXaHpFn0vaOqPtj5JNBICdQzPiuhqPnS71SEiyTvJtmojh93eehmHQB4VxLbBwIVGYMVSEoKP60MkMBSac387-h43QtmY4cC467QcnpMukEkBA1O7sgb5oF8DO3f9uGJHZ9kLapw9LvYKIUhKUDgmW77gPi7xpPSZ9x2OF229gB_Rs04Lcl0vyja_lkip6wnnPHoiufCGMKVbkJo-CPKpyacSOBX71jg7eJQFJLSXC2PAr3jCE6OEFE7WsvKeijlmhX_mxyP6YGxsfxz5XsqjsG-bHKjcJlb6ltJnPqBfo7DSllGaFwdSqgAfJO59wo5q8zYv0vXNb7sQja6lk-8EKxqKCi4SrZPT5-ERv9VobpOi12D-GYWjsy-VeqCUpCFBdZf4RFFEKc1tH6FcA_b_kK06U07dEjxw93mEfuz8tM8m7U9L13l1UUx4ilSyVWvRr5PGPjZl6TESzrwRTxkc3bIVa01LD0Tww2HC74pyiEolLySiEYB70r7znU0W6hzavhbayDIxXSBeY5yiPVbnjazS2dh18rLad-wIxFJCy6Q9llwOokP4aHViUsjwqttmBr3MVfJj8cdbxpGloJYXBrgw1o6Gu4ciBZk4UTmRN664ZlDqHamelDE26HulMwfv8bpzV8v7UR_PBHnn4vj7E3KUT-JIlLtwBvjnZz18WfKagwU3Q3rje53Nmy-bRLr4Nqw2Tohzfz0BGxr_oJNce1XGta2cd1O-7QNPStEL5Jal_qdloIjRKRkgVdC8T1TpjGbXpgpEAGEILzYVu0BJbS7CoVgRxNDDdBgMLhiwXD-x707RBU-XLgpU17biYmXtMnXbQRstvmcOeaKNs1YHWKZXHJXdtlDMITxkfw5D2rTLGpXsn0TTmGW8jsT1Zf7SEsjntXT0ENj_z4umrZ198RB_sOUWiYKMMRFPsfxSzqpD4dfhJm01-rHY66yqKn3cqOOQm2YbzMaLrZdK4Fo6QLPOEutHQ_0dihJVp_2E1RmGHwYEknhwmXk-tbXXs41OwcCOTCKCkoi69qa_DMsIKA7iLpvgTurGG6BVs2ATuhUbAbXKuuA1IdHNc8PkSW8AaN4i-72lLO_ljC4uqe7wrQGbiJxUBd-m8gnpcSdfy3zn72RLGLG2riwhISmh0VqlKj0vYD_oRxOV-RXLw4QYhVoeJdqZfSypSALJRd_Q5TUvHhcbGHrWGMIL2bJeK_xxdhKi4haoFCi19bolH6i5B79xxnRwpWvT7Y2_-hDn1Pkm5z0KDQzUj-AQXngXJXE9VhPI39IM1uSNJkUS3WRcnIWKMw-NdviP9RDATlSY96kJZTDw8GTBjhorhIe-tfDG4IPWV59akRYriQVTOJdlWhKJVbttH0x5ujMhaobJG36o0kTegvGgTk9DkLYfG9RwqsSgQiaqQqH4aZdRfvhAKKCGXbQeeFzlJ2_X8vTm14Sn6GUvoHSTqkdDRerCHgVXKueZmfbgRtfpz_AmCgTwv15lcHgg1pHHeq8mYj1lvC29uSYGu51NNVrglgrNIQSlsjLpDB4YdSha5xJhvG4EhcEBbrbHxNnAHKrXgELYJllZktk1iWFzak0Po9MV5YyQaNqxODb9VqVA9RMAXiPDStntoyWBeTWalLQP24iHwB-4f0RU7CxCf_C5ZeeNvKEparNpVeRYLxQ4BU3CYjYnbyeQbGFjHjg2987LqCoNs7YoVXmWEHLzcxgWCgCXH9qP0Bkfu1N-Ni4RrWd9ah7m35yNcOz2lbVIWorFPgRHBoAoz9pGkh7wdygjGPY7b1iGTHzL6K9eqGbhjgMzzLmd94LptVg_cQzwmtZp0_hxY3BedJtR-qpzl7g==","summary":[{"type":"summary_text","text":"**Analyzing delayed disconnect causes**"},{"type":"summary_text","text":"**Planning detailed dispatch instrumentation**"},{"type":"summary_text","text":"**Confirming v0.34 retry regression relation**"}]},{"id":"rs_05a4d8ea8a10ef0b016a59752ab62c8198b922aeb3215d662a","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXU0bsez5GV-8J4pZ0_al1q8S3iEAlfNeLOvpogw8X6R_dejCNVNFX7J0K6nNfqX5YZa5hEdHTmPQypvcVUWc2Oax_wiMVc0ire7ZNno7dtw5xeFi90rEzqViHa9Z1r8xoTiPccD6zrQqwAjjHdnxtTSfgFXRbK5SoIfunN0Je4ZSrUg7fVn_kU-cZx69kQJFNBxoJaFE2FMOD1htVb9392kamifLy1LJ-_gqZMCgM205lZVPNLgHwXUTuH4QSVu3MisIVJcY9Ui4fyf6Smj1LrNgCaaHShHMPjrZLzpSz7APRvfnZnh1f_YRlD6tA7Z1imNqfuHZpBh4h27zrn99Yf1avFtorqo951fO0G3aO-vOeEzXOtAGw-xy764rPnsCqS-Ly2bySeqA0rE5hm-GuwOJf0wflEihCQlqdZKsmMGC7GO2nZq-IIUPgqaB-UypObk_6TwbHXurvSwRw3LWDiiUUzcOIstUqjbrNtybdux6CU8_dfl9gXBQXGu_LpwFH32qwRolOA8x2z8-BMDUJ1MsiiVeL32i9DeYCHXhurYid3pOr82ZqKbm-nZ868tT_pPT1ijRSQPPR0CKEADugr8oWUKkhSeuaTxhvW0mWlIwFol_m3E7cT8QH6OoURMS6CrZuULkcF2djDjiO5knZBozY_Xi6kxxnvASKX4J-lGRjD9mAz7_mT4MSIYaUW0cxLwBf3JbXZsO1vSmGMeVp1T7c_f9-m9_9OOCoJOzwrMGn94gwgfVE9EHOwScDJBzVnmv8v1UzhC3zCWPYIriDtr4LkHVWh6dq5BMLKpiysHSUbQ0iGPzWoDeC79iV9cKIeHY_eXrdGney0XbIKwx6iBr9xOjl28cExH2B4Hbjqr8oTcBePY1m9hRt_2wsr0QMm9-Knye9Cz7JrlMJvxvWpuUNhda9HSg7rMlnM2aVub787-RgvNyrDcI_insbuLh7QlPo1MF2y_FLmJRWsNml5JO3JoBi-aub_ZNpSjcV-un2KOIE-7RMNTRaHIFKvfeESJ9zoME0BtorNHTFp-cfLMwZOGg1JoVav98shJaTUeBOMA07t4Z--F76UxuRswAqYBAsG1jhm68VYEdaN9eW5DvxUZljin--Zl1DdhzXI9GKb_4Bvxpb1KsEcaav9-lzbtEdk-jrsjht10zfkB-FB2MZeP2xT7Y-teacrkfbpaipopWh-1bV8h2hT6kdZ17_lnDzeRBaWDbejhJdhvgvXshk1CUCvDou57eeG-3g0t-AF1fxWswyyR7SqlpNd5LBdrL-am-hOyEEZb7UnK0bouns_I4smm9XDG9cKUYSJTaSzsYuaUAgnDCFMcOEimRhkDTX8LWhvIi2zaPBM-OYyGBaX_qSOP8FGnPqSA7uhQvqVB0REv0ogNs5Igs5ZmS12XaKSJ6iC7LXjVVfJxNrkpAzrFRm6vP4UMZvNZ0-7khk1pKJ0gy9kjai2sAxkZJI8L9VQ8q1MYLJWy7KpfHY28c6WDzc3m4aIICEkOCSjDgoqjsOuftGo1AlojgeYlBB644Ez1HQvkA_WHAUcPN_V2rhgmb_ehS21Cplgz64sDCX75y-0cx9IHPFWt1H49bZBQjLkGne2RGMPy4sqH-w86K1uo50qdQ9cXolNqp7KwPnOxXSSyUvagcrtBgqe9cvezB0zWlJWNAfRfbeejbb5-x93mDxS9R2ZCRvbj99TKNQdU2gMo4Mx_IdJjMG9agmWvGRZC_d790fQvGXM0mOx4jcBL0gtMyeHIdHJ6RBpxrPH6WwkTCQ0dyEFvqhIbBWBaECzKp_ozBBV7Gs36y9yMS466738UL4OYlbfP-ONiOjIyLYToYtOrrMSN7VFvuJ-MBpoMyFmbHajj-gMtmmNif08k6IdQVPWyv458qwi0XejOMpt8zj2wusnZN9Mxei43rRws3AJ490J7F_W9jL49Bcfj9Js2HoPE56MHxflxhGNtsdDPtws5D9_hbXWqsqrziSwbm5cdWmOZ6apjoe6o7ae6so5QrqFQ5reNvpBRyEYPqj287Vz2puD6CK2bR1BUppc07uOzpdD95DF_8jZU3HGm_pEUDQYmGFJY5DG5NidtxVjRPGSCvpBSbBquIeLH56nyw9s7bZthE8eVo_DJSD8fdkIWvtG2m5Iud_eq1DNC0rCrFi5MU5AMryY47U0aTbZk21s6v9shyAqR06ONsEQNLNk-7Cf7x2uGAUWGAjKA5oP5CWHvWIAjroeutUiHuqVP6B9CKv1nLbPgl05yScMBvogjqBhFLSU1X_put72oVPXfBhBW4mzmw9unJ4ty9gjx5zEPh_Pvr1dGaTUiHKjnVX9tXgsWAEWCngDP1XBhSo2CsRCz8P-947KsYL9xUrbZ0jVvkiVrKwgTGMdwFdeij-b-iL1p8EpvWtElqZWgNkqiR63pq-9_-08PZpvGG1enoDAQtUHPB8oP1Qe8QwNimSVYn1O6BxE2wF5DwU8GUmdWtnC23EkxwBmUaoZsPxZLT1nFIDVGYi0oHBChjgD6WlFRMwYdhn8R4ASNw23kf-0ccf_0mFZYeD8armVNxgVNwmplwYt100T6lSY11oIDa-SQf40cN24gD4ugYIznS2L7Xg0m4skv9XBff1vgIANvH2dMgcYa51Ykf9Ff1sr6FNvyqfXs4wyuITXi9_75Dnfnchkne3a-ugjxlbzyKeYYGEf1eWLz4Nz75W0Ho2_CxyjSjQxUdxXE-Es2x-Ulb7rF59VdUeLimj_EmuSQm6usModxwRV40oskbQotwAVtOd93sENGIK3HbPewbxtgeVhSjwV74Nr0fwhuDB8khqkqeBUNIxHWDsEWM_5SdrmgG_4DG_cKli6BkrIOTBfBd0K_PjI4xML3d1WB-ODDhHyt1Mj0tG40-nnlxseZ5V__RqANCtO6C7lIoAUY46N9AgsKtIpbS0MMZ_-ViBAglAwxUbAffq87YfrxwRuGe0xaIW6Jnd6nWblAmaXTXl3U9hfi-kbTLdNxgpm7bPawZjStkIjzZQzR_gsFNUYOKkTF2kmE4L9N7rcT49c25W16g4uyj7_O0GrH7W7rh2m9xau7QP4OuFdIYPAKCTQzoxpcTvhygWQjBvg7YuE6QRFTWRv0SswhFc4DsMeuvgVy_DryE-zJYmndMQgRJYS2fovMQO5J33-L-ssISWdDTxo2lAqSeP_nvxzU29QsUZ23jn0NkU-cRx_sFa8l6N_QntyNxIZEgEuNrnJW9_2yIL40CV06JUl-Xu31iZ2142VBMD4Pr2xNLimIdufy8RoXcWFfeZy6HkCn3I60hq_hIaZXxOEhsy2I_sCgxZhNWzHkfKJhKKCFnUfsMg0lHkRc5QbVexrxorEddeI3xAE3vRtjccmOle7AkQtHgREsxTMTjtTll2PN4zmfF9P7Gmmey-0NS2QBo0l-4ZxXZDtSBNK1mTc1mwRiI6m2RVnOYZSv5yTNtBMuo9O6RdlijddHtz2durvVBST_RxpdqToHOYKuRoMRRz6wphouc9GhaMLhbS4nrPESmSj1EZe-WR8DL7KImq8qG6L9lYhSC2xlJRbF5jmhMIvc2L4CeKYJnHYUfQISXD-ujsrCqwg-JBoYb3MkAO4-FT1LJJTyyANcQcV4h00brZytABAGPxk3oOAWRHj0IwBhXKe5H92uqbc0hmgNveQPS2pwguo0pACY0I1kePDwQr3YpnB0BcwQ7A3CFibqHekxMoCYurJwzKPsFDj8Fsxgn8QELUwN71RFGuEvxd7q7EGOfY8_1zkuXOj_hMJdLY7oTFrCNzczzmIPi5-CoDjJhIf8DqXDOd52WqWsfxShq8U1cWtj2NBs24mWOQ1vfpVSnxyhNkWrT6FOQGvGZrhDSOkI4zz8RSlW1BTiF8aknnEMv7-bENgPP07s","summary":[{"type":"summary_text","text":"**Assessing runtime health and heartbeat consistency**"},{"type":"summary_text","text":"**Confirming continuous heartbeat and broker responsiveness**"},{"type":"summary_text","text":"**Identifying limitations in stream subscriber labeling**"}]},{"id":"rs_05a4d8ea8a10ef0b016a5975340ce88198b08bad7b63c19d80","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXU9_teyUJyUX4HQD95xixzQEw2zQWVwjcqgWJEat2CncLiwMjjPC39Zn6PBFuDvYjJs4Kw3Sjap2PnHm1ITRU4DA-EbuD8UUSnbTBxoZYJBb4ZOq8kwyft2DWi1xlsYcV6svVV-xXYXIYEwE0Wmp1b_WJHwzFmzWsDqO2nQIWL-Xz-kdbnKqaYOWg1V7WaR-q0ZdRxXxkhCKuxAiUpAvxKnWTsonRJUE9N7c2_OsJ36IB8idQxJ3MZWO3Px1MfFQx1TibNzPM-QTwGUaZ_GAhkR_U4w5rvvFVjFETFa_p_PoK9WYJjmHlG0ssv6hahnMNRhWNP_kYNtyuehsq5NJPCihNBtOlOcBE9-ObPIyRDdz86cxi7S20ugNpfNOrDygEiCsZa_cx9ZLAjdjl6oR4Kp8zVAnGUwIjFlB32yWpqFMgmW_v394wRxlqzqHEr659rZviaPcTehwwAfV8-iEH_GnLhtAcugLP57wzyzYZF3Ol0Y2n-z_nXgOE9401fz7tA4qYzgfKFvsNFwoxbDOs4ukmaVYH6E2wkodfsLiR3kgePmNvXYUmoPkI_f2Hoy_Voic3e7fXoEYMNlUYDljFAiHdyeyUHQARBn67SijYkqL_pTGSkIZbaSZVGzApfjxxogL_ZRv7xkJv5vSdr4CKcHqZ_JoLWlWpI25BLftnE8CTOqBKxrnrG7gpQQQWXdqjnqocO7qYCX9nT9Mh1d9npwWvzQCXZugY_F04ZPPURt_MMLG6Z-m5H5RMIRoSZLF7QkfMCYt1w5MdO51FtM8MRAT8_5lemVkSUMCszlxJ0hf86kESbAwGH47STvAR2w_gfwJIAv1pijxlnEFX3Iz9ZMC4Fw5MNs3DiP7i04PSR1A0bTUJh_0piy5neTyRZW3SkCGB9iYaS3dz60_N7uL8ps2z5QZWF0INDZL3SX-S8cn0fWAtWsnG7seSCi0DX5o9QUbf_IerjLAqtdZw85ABkzEsYfs-sBWN0-9gC0OiCUJv6Gu96DLsHF16pMoHpjXbzBScbfAhoJORYFOZbJwZwzr_WtPg9SUuLpJdCtGEP4WujHfO3ST7grbZH7NNMuTCo8jbkl3IqyVDYfsSOWS7CfmlE-SztnZv1gYp_3ImyB_qcYIDe_4UtwB-vAKK_i-O-ph5S_Y9cbhUvMgC5VQG_hpctdagCIyftWRagRKn8LsfZnC3LM5oHAtAXDqPCTTp4f6KURdyLk7Nc1jzzpRwJu1cTppg9oMhp4Tw69ePYlCzQJe8V9zUWz1s8Qtday_zIzNea0QF1nUQK2BGHr1RqLFBA4EEDlT-vkrvn6xCmL5-mDHfmH9kBspQ3KngVq_gv6S4Uuy5rxyjhyEayOQhBiDUx6tPvglweBsmqKT0wuYn9s8TkGORVhZ_sMvzfOQF_B41WEIjEasDJ_iQ2CgYZGmtW9apeKZQ-9716HM6X5Qxbuhk-meTc5hzYVcFKQGD9V9YfQ5kPShDilNHnFgx5_qcYRs1S1BiEvnrJiFHxbfZx1Oue2ep9XlaOmvvuFHTfq5rYKGqFmkQGIogI3n-rgr7-dY32MPDX-UWLdXav3HenBFBxGvNV2i4uagrKrkHvghTLsIJLdwNBjYY7Fhedv4TSpD-xgMHD32iB4CPh9eZ74Qpo-eFDXbShxkm3ilwTsvyxkkDL7Bwse76y9qtK9CIui09a_fwE1q0S5OiJxUhRYcV6UwEvOnLJOvMRsDma4GwxRvVpWnRsqfkzJxDHmJ64GKGnrlrzefQu1ERTtoXqIVviThbXFStBp2XPfGaAJxVlSAlS3TuRcSC92qg1s42mUdr09n7SxqJyAtNzrqET1JugzdmWi3TFF1yo9ODSZsP07OagRlv14kSzjKNSwTuNai8beZTzM5Buj6dV1n4HpWYO3CRyhq65yZTODZLtTbYputOi2k34cpBMYyEisrC3jpHm1R1ZUXLh_cSnvFASeanXH8MWFFTLTp8hewMNEw5Cm62u1bIGSYs34YobgIfG_WGhCbkMqZUaqHx3E3wCrBQyZHuQj5WiHXk827pIsO_av_5yqqLqR8dgsL-mreC963gMnD51zZ0E5BO_tHZabhD3Mor3CB-bhgkom86r6rqQKHTBbICOlZiOmi9n0V2x1-N-CCuMEsolF7q8VOB75y3HNQUMcrGY8oiTOy7shDigW6aVBGIBcEq-lUna1yK5Yqp3e6rGnje2egolzYVpUekaK8wX2kGFfJAFGCKo9Z4GpfB1mlQMQcPPzxwsYIB-Yp1m0u6L-Gs4pNBy0PBXsgT6H2RquPmI0uOReoLQAOk33yiel-rW1zvbSO7cmf1L_hLgxqrK-U4NWAI-vniOyFo3V77guoOt6jCT_Bv6M9jW5Z1FPlMnaX61WGAooNE7KIJu6okG2Jq83npWZOY8HzypaEQRQ5LWrzC9h7T19PGxgDMgLs1UskL89gwgGN_DfyPtgo0ODDoN67mCvgeptU4wNS0V4iBplLszeso2f4ksxSsLagTb841Ig-oZLNxdcOlwXv4tK1TJiTMRni_WGaUuXoGZRHw8TP_KtSa-iCSYpn-bugSVlVoCaQ3lM-eXMyRU4AlyM48r9ceruakUgDE79oNI_uKgO8qBZJrB-qTpIVkoTwkbUN3LkD5K8t53qQqB60sbGi20Ml1_o5LOl58C1W_sBBKrevnUjVrstb_FsCSkMtETECt0PkWgsdmyQ16r-VPGh7BAN7NyJrXbRTbJVxs4C0mmA0wVDc0t0gFNMyV6d00VtYuzFG6OmifuigsGs3ZTz68EHthyDAMhm0_NAyzIttmDBgJA6Ft9SnVU_FzPJ7-uJw5o9hs7limMN8u_jZC5Cdq7B2UhKmggzG5OsFfBi7pVP0aopw6qHHzaBNGux_iYE-CbS5uL1yimEpQDrlVS2rSXP0EQT2hh-1K6tSFd-lu62LGzIjsbgVAYCYumIwpDeWrHRCNSoR-iV2kJRqjE8ABQrjSCRaOeYqilsRrmJzGhRP44eXryysWD4fNWSDTNo40fV9W_e_c5ms8wczrBneYXDoLRUifxFOMdie1rXxDDqxkjz3t_1igx7RdlQXQKk5UQdVUPHIC68GTcY3VnR5-bLXTVQ4nT9i7mo7y0h4dfUJTs0uncLjmMBGK1wj5MkR_7lnGPOQU8-q5ZwqgmKBIPxjV5q6ftGo-RhIcXA2sQM1YEoI1AsCEec0w4b3IdEEMcwkcO36TZQ-AZgpt55rbcrNxgFcsTM_bDHPoRKlc7xD4NgquGQ3zsZ5xvND0vrVy12Re23BPLxot831bFNznVb3m58_s7nOhVtA1DWU_oNFDcBtrldjyQRLotlzp8657SbpLY8ivRK9sHDzmFhViU_6vz7BDBtd2nriFkeGxNICia9OWY18V8q7c28u3bslkA7hY-eNES48A4KNaOeOP3KMbmwKHONoncPnfqS0dl8m_YLUddN6nic1JClT1aqn5HDBAdCebY-5rzanPc0Qg0YIpQNVHl1Gwt_mbbvsLDD-1ZS0YMLfZ3WSZbY_wTsHEUCV0ofz5HIYS9FIDHL8JzGcUEBJ4ybYmZ7MiRnCvwZmcCzRKVnQRUG4ZSVFCn6SMyRrN75vuQfsX_Acba9hWCPJNFMiPhcKymNgL9mq6bVFeVaH-xyADFBg9kOMAnJi2KcWiHhzWK8X3BV4A7lDnhl5pLXIX9bytSOcnS6lQYuaPT-Po3PbKyppJFue1Uw7AheRyWzOe0NHT-nocdQTqw8flmtWFiLm01XPZWf8_5Zvlnw3Fk8ZVeVlmHnsyv57RFLJEPjmoF-5Gr2lEaJOcHhp-9UG69-vUAd5t6Lk6ivUkrJeDtX89BePAwJI1Z8nlZVeJOVUJiOnkz0mmc3lrXVR2i_LnjKKujsxknkUQOOVSRUpRMKp0gNjre6SBUU2xBzs75EBFa8MvbwOy0BwXWcBg9wnKmL4ftjMDtuv6MVGfF8uPAKdx2XsaKUJKeQoaCoRwb3lsGgZzSAEJLOHzzPbldnxT9pOFKk3fqDG5PrEbcZ5l55kOCeTdZz08x7BP5Y9nVAHfqbODc-Sqcev_VQ18Mj-NNusNrpWDxkr96Nj1QyUFcifNx1Xm1Ugci6-lIaN2ta0BcwJeRMTojYkLJugtyQqWO3XCjdqvEpJRaVHB_yyiliCyDhi3O84YJL2Y481ZD7l7OmC9Ovu6RFf7rPGh4f-SpaLGHO8OD3Q-TtByxpHAUU6jvjHDPuM3LxkGpVu05tkw==","summary":[{"type":"summary_text","text":"**Clarifying connection timing and event handling**"},{"type":"summary_text","text":"**Planning dispatcher timeout and test improvements**"},{"type":"summary_text","text":"**Designing Windows subscriber integration tests**"}]},{"id":"rs_05a4d8ea8a10ef0b016a59753d90f8819892666ef19424fbbe","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXVDNWtKYJNHM1yhgQ7VkvzbCvdx0DILOrBdZxqhsxgs1NVUlykjU7_NBuBvEYnfnb2XTuOFU_AkMxW_1alJw1SCcvx0mTFSUktIMXZGuYME0Ys5wwK2xi2YCfylOSuNmqHFBhdarG4aKoZrMrQ0-Hc-RJWMocpT_a0fg-AwGlYaLF_Ga0OfX3spHWgfHtmCSaT_NOH4aQhKsDm5_1_o86KNQ3xOeiox1da-tZDLcSqW9oVL7ROoGSgLpqUSe0GaYvHuAnxXC5MENTKMJBILxA_xAhVGe8hYCrLdoL6-O4I8P2H86xiOgdug-bYvUAQpghfZzWdOxbh2IcCsy37_nhaPKtYWkydI4wpWjZ_4S8XaDzwH91vTGfC7FB1DfxZeMvacEVBqPeY1GBwtYMkZHTcBlgwMmx7TdrXDAD8elg61Fb6GaGpmNSWjyUGloHbMBFjRCaBXRuR1p3Wav2UxOi8RXjASmxNd3JkeAyWNV32yMKoyZ-JEAotZ91bK1PEE7o8AB530kQEwB9b5YGe_b18ZzyM0MkQgXP3qwBzLKms3-zdGkD9HeaIVsiY6FpR-_MGwFxYSDhvkb8soYwR2bRJIwmtgRuIyUoADLR6XUHQDFub1-_DeqIau18DL6SuLaIUmToa5JRADiGuQd1wBx2ekDBI8UPeM5uq3wkgW9bITNPILxYsQmdyYaEoPlyta4Wasoijz0KmCgeW96QJq3lkKjFIOGjq6BvPobSIx_JXAxf24eBb4bwzu_a2XKGLtxDIwbMfu_lv7jUso0-kzxmjcTbgPnXUnUYwGGthtsiu8pFZ05HygmYfEsIct3ihLGz6eslDxhDrhH_ohGwGcRbxEU3Lii84P_HP5C6jaWexkS7ibJm1YqeLL3WMfT2_A6SYhg2vlXNeRjFpI_V6A72khzh2Xi0Ua5SVSLwRrRytUyke21wCXlV7JEdZa7ZmGTGJmc0U66ZiGN_AbkvaZvjXUX778c2gOsFQ78CHCYeayNIO9Mi-vcuvjNg0JTjIAZ4QBqHEVLpWr-NADP8nl4pQWFjav7fCnBhbrzPIZaU-Mo1YDRGCA-x88COWeurVyFA9NWgIBJ3fzLlEzRi8EfZtpHcLuHmwKlaBV7Nw267FhfWTRhoP3AEMBQ-05B82R7aoaJhrYlL4lKLxUJ8DeQE0JHLeoxbIuuLeO6n0idlmuE82w9EdT7KoTQyu6H54CPnXmi6k3HFWCK3652PpUi1Xl1tuv0nZELeqnEvO4fkC6hCi0BGdr44yVaMSgTMhf2xQvvg72gBe9xbqHxZMIYnxpSz2-BAD-kr0di7wxfLs6bVPBFmFQf8bMLDI9o9bSYCrG8_T2ihUtGb8U_c4l6qEP3W1fxwtlglc-zBLuVkPrOsBr36zDD363IfUT5yz0jWrR_hwU2RfFrs7BYcTagyrgYON-G2zqK4susH9Wc0hIwJqNX3x5ho4gCjMKqdof9uBA0Faqs1QWA4U9q3M9wFtLINPsxGMwiC9oHh9xGMxt6GaSk2GTA-Gv0H8JLb99M-0w_oUvTcCX57xf7KQDYdAC0CE78U-0fNT7V43TEnGJA1CkkmcRamNz-8NDfaDnWvnUiuTD4z7uPLJayy7Xequ0Xc32RPoG9_ZKpNSnmtakQJmJEt3MFOULHBk34wIk7e0YQ-PvA6mqJbPF3YIADq0MA4IE3-jDD8yx1ctzYKbmEAEuIBlOnOiUTssiRgp5ddD737AznmZJHV52L9Y4jgROZOXD8M4FDR9vbZNwYGcGK2BiejsSig19e_5W_KAxfeKoRtcOTcOCs18U8RQ-iE9rQk2Yyu6jkX6e7M1a6IoCHUm8LiinB-5-5xqF3YW-IVShfdDQVazMclp6OS1JdT1IEO8t-qqLYRMP5UxoL2S4fZs0j9qVuGM_aRQmvvbd1uavrToTKUZNf0OapSeZPTmRjxgOvt2oHINvqqOT9tnH9CnltMY4B8YcnUswbKq4WT1Sh31c5aBXlUy5lVaBk5NtOY3x4XbRsNwar_MrvY0UPmevCwMpqv1tgEeEqbemUaxiWtJ4YgZ4OFc-yxF1Bmni_3uSP50znpPrcGARHhnV3gSv_h21xPUqle6PWQWd0pDfx3__aFWld2QulN1F7ddo1YY8VQO5gb2cM2F4K3mmKSyPDjBK4NtbWwA8Fpc7sV6JbI7jUCtLB0upvieg5tLWqV5iDbpfH4mhrjgk0yiCgfHJ5RiIv0c-bdyGiPn6MrCWMDX2dUBs87MflnnX_e6QnyO5yS3iC6XkBpt-bAmEZW8_2Hf4g1jhjT2XbDv-nsYueJ9Kv9uQwvQeIBq7bczvq5HICiMyhJqET9keFo4cIRU4sEctl1U7_4wYBv_DwBrASWlR0Lpwv9anRuKvOJUog2-qplNIWAgTaUzVDO8VgpQpL5wRNz3_vQc3fCN9BCFCmCc3KvZJOfGzCXGDknFAIT0eBUuadYExHmxg3lqP9NHxSwQrD2Prf0tssLwdMVhKl81u6sLCFMUIvyRmcgL8T0XPiEv571AMamZyGD8vZMRXLBxCHgXhYLgaUEnuxY_EMOuuW5U43Ikgvm3OoNzcgkaETIvkaWWi8XyC2723kIn0p-kHjX3bdpYw2ElZebl55Mp4m_nBx6JiLRgO7r5ocPb89j3ULb9jf6aRLA8u2ezVG9WnqzDEapWySIEHt8k3ggzZqcE4zAOuzWUde5ZmRe1oy2hLsinDfRBNgh97ud7auFVUa_SyjNrFFEyS_sHG4dq7jA9_Cge4qFZQJG9SFo8GnQX17nyPH0dPmsFfh_rpxkoP9ZsM4q9lHUuDHyuEKRwO22lCnuXjSwJbtgr0wiLZjvZLh_d1QGeC4dcJHr0EEB-7H1MHIpE48miHFB90Nb7dx07n6d4v19EvsIJj6uGaVpiFnBNE2QD5XVBlPYgW9Jsdag045ZkDPb6quWFj8EUhAtu75mtcaXBbyl2ma5XBmWhUW0VsRjor2rmxxj6fjJ8dMDSAQan_2D5ixYhk5jJUI4_cxP-rbjWhZGT6Raky3ZHJ6MdCmWGUjnwg2dg5wdMcTdq47-bas-b-O92JiHKktEpcP8kzhSqLTgEaGvboqzdbET_HinwzseqvHg88j9AyPvObJ3Dp7VvgNQVh7j2GFuwjVBvsTFzhGzM2_Tt4cYzwlgYHxW-M_TspfzlqWzWP6To2dQbZs3_DeKvkvsQOfh4cPzv0l3nQX6dgeukx9Wkn_m0UQU2436juR69AGB_yHMQY69ABfjOGGFl2hxIRT2hLsjUL5qpK6SaMc6UsUy4EEqUbHY36AMFH7FEe39kaE-yu0APhvHaweeXF","summary":[{"type":"summary_text","text":"**Designing output timestamp instrumentation**"},{"type":"summary_text","text":"**Analyzing endpoint stall scenarios**"}]},{"id":"fc_05a4d8ea8a10ef0b016a597543cb708198947b0d894123f0c9","type":"function_call","status":"completed","arguments":"{\"i\":\"Checking probe guidance\",\"op\":\"inbox\",\"to\":null,\"message\":null,\"replyTo\":null,\"await\":null,\"from\":null,\"timeoutMs\":null,\"peek\":false}","call_id":"call_i7lMU0wDezVZrGm5qikl90ls","name":"irc"}]},"duration":46613.76659999788,"ttft":1939.199699997902,"contextSnapshot":{"promptTokens":220652,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_i7lMU0wDezVZrGm5qikl90ls|fc_05a4d8ea8a10ef0b016a597543cb708198947b0d894123f0c9","toolName":"irc","startedAt":"2026-07-17T00:20:20.444Z","intent":"Checking probe guidance"},"id":"553835f6","parentId":"cf680a00","timestamp":"2026-07-17T00:20:20.444Z"}
{"type":"message","id":"2ee8d82e","parentId":"553835f6","timestamp":"2026-07-17T00:20:20.445Z","message":{"role":"toolResult","toolCallId":"call_i7lMU0wDezVZrGm5qikl90ls|fc_05a4d8ea8a10ef0b016a597543cb708198947b0d894123f0c9","toolName":"irc","content":[{"type":"text","text":"1 message(s):\n- [1532a9bf0c9c5f28] PtyPathRca: Read-only discriminators: (1) correlate exact conn id/labels: `controller session=X` + `stream-subscriber stream=Y`; 15.000s POISON on only that conn + unrelated conn writes/heartbeats during gap = per-RC/dispatch path, not broker-wide. (2) Sample child PID CPU + Read/WriteOperationCount/bytes twice during gap: child output counters advancing while RC frozen => viewer/transport; flat child counters with broker/pump healthy => ConPTY/child. (3) Sample affected `spt rc` PID CPU/I/O and Windows Terminal PID: RC/WT busy or RC stdout-write blocked while child advances => local render stall. (4) `daemon status`/session list latency versus existing unrelated viewer output: all control replies delayed = shared IPC/session lock; prompt status + one frozen view = isolated conn. No keystrokes/resizes."}],"details":{"op":"inbox","from":"LiveLogRca","inbox":[{"id":"1532a9bf0c9c5f28","from":"PtyPathRca","to":"LiveLogRca","body":"Read-only discriminators: (1) correlate exact conn id/labels: `controller session=X` + `stream-subscriber stream=Y`; 15.000s POISON on only that conn + unrelated conn writes/heartbeats during gap = per-RC/dispatch path, not broker-wide. (2) Sample child PID CPU + Read/WriteOperationCount/bytes twice during gap: child output counters advancing while RC frozen => viewer/transport; flat child counters with broker/pump healthy => ConPTY/child. (3) Sample affected `spt rc` PID CPU/I/O and Windows Terminal PID: RC/WT busy or RC stdout-write blocked while child advances => local render stall. (4) `daemon status`/session list latency versus existing unrelated viewer output: all control replies delayed = shared IPC/session lock; prompt status + one frozen view = isolated conn. No keystrokes/resizes.","ts":1784247594034}]},"isError":false,"timestamp":1784247620445}}
{"type":"message","id":"9fef00ed","parentId":"2ee8d82e","timestamp":"2026-07-17T00:20:32.744Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Planning detailed process reporting schema**"},{"type":"toolCall","id":"call_prd3v6YWOIhLisg2X5Jf2v51|fc_05a4d8ea8a10ef0b016a597547b8f481989086036f32207124","name":"irc","arguments":{"i":"Delivering telemetry RCA","op":"send","to":"Main","message":"Telemetry RCA: cold broker PID 82868; brain ready {pid:47668,generation:0,hash:c428…}; startup 1784235695891. Heartbeat file advanced 1784247371915→7430856→7477529 (105.614s), so pump alive; brain PID/gen stable. Your counts accepted: 33 stream-subscriber poisons, 4361 attaches, 584 peer 10s fails. Exact stream3907: attach/write 1784244082619; poison 4097627 (+15.008s); DISPATCH fail ~4102368 (+19.749s); retry attach 4102973 (+20.354s). During its 15s conn10180/10181/10182 completed normally and fresh conns answered 105ms after poison: not broker-wide. All poisons labeled stream-subscriber, not controller endpoint/session; webbie attach→stream4834 temporal relation cannot establish identity/causality. Post-poison variable delay is explained by asymmetry: server BrokerConn write is bounded/canceled, but ordinary dispatcher Brain uses unbounded read_event (only pump has split recv_timeout); worker family loops all block on it. Thus server transport-close does not bound client worker completion; buffered pipe/drop/disconnect propagation or being outside read can add 0.1–47s. Missing stage telemetry prevents choosing. v0.34 W1 added opener RPC plus ANY-Err fallback to peek_first_line subscriber + 500ms/1s retries/max3; magnifies preexisting Windows 15s write expiry into 20–62s churn, no new 20/30 timer. Fix first: fallback only explicit unsupported (transient opener errors requeue), add bounded dispatcher carrier/worker deadline; test abandoned replay subscriber returns shortly after shortened 400ms poison while unrelated viewer progresses. Live probe: 250ms daemon status JSON + child/RC/WT CPU/I/O counters + passive seq timestamps; prompt status/other views + one frozen view => endpoint/RC, all status delayed => broker-wide, child counters flat only victim => child/ConPTY.","replyTo":null,"await":false,"from":null,"timeoutMs":null,"peek":null}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":3702,"output":548,"cacheRead":219648,"cacheWrite":0,"totalTokens":223898,"reasoningTokens":55,"cost":{"input":0.018510000000000002,"output":0.01644,"cacheRead":0.10982399999999999,"cacheWrite":0,"total":0.14477399999999999}},"stopReason":"toolUse","timestamp":1784247620457,"responseId":"resp_05a4d8ea8a10ef0b016a597544c9e081988d07e3a71ebab090","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a597546311c81988040524b4a40360c","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXVHc5G21eqdUR_kn0uzz5KF7ngfQ5R1X7VVxKJ9LkJR9lYGzSXwFt7BuyEwwiRDCtawy0CHyZJP1x3vvGxuymk8JXIdNyxNXwTKNeiAHO4hreJ6t_DvkeZptekRXY6ehX6P-u6EeKjgAqDRW9lWkGD1mODn5sQXelXUueiMPdLUGHOJvXo4ZDRoJ0sEkGpHkxW6NWi7bTlKURVod6KFwaIKOtWRUZMMl2s5EHAOJyNjOf-qKwQMRtCrf-wnqb-ra8DvO77Qsj4MTl249e3_TWyVkx3LiOMoTluQFVL8us6OXD1mTcT52tbZfvC2EoV7n4WZugrgCbwYjLgJjztHYrj_STq6mw_NuFPFcN6easQS6WZ1lf927INJB2H3cuLMSfIz6I9GhsyyYtO-ZZtRq2OfZ-X-tWZUPm9YVnGmFHETV8Ve9FWAGX-5Ma15a8cNUqsYRK5BQF13PwSxCD-Y4VIfTY1ttbQy8YygOCiYuchZCQW2ytFdOoSILU6szLiMtdpUcNGNO2PtgrzDkUtJF9Bd41oAJW9Cz_3d3OatVp97Bomtb-KwqOdZu9KDNUijqlL2sl0YRk4bEp7uf6XEjoXfxtrS-05UpMiWDJrnbwfM--1tRdnNI6dXC5orKrOxuvfg_HivixYkAxf3w94ehT1pluLF3alAycRDySm5ukULLEpMJjo9Gxmup5ka9yhvUt2FqY-jVVEwmWHx13tWqAdouFgZ39QRlYTnAMj9KtqK9ejFgCxcmoX6anGNUedim7NPr1er15siZYGB5PpSP7osq7XTbWiaz9gC3OsBHEmy-0ID9XsSPdO8YK4UvJLBX0Ape8SqhYnAzaRLAXoUW8Yz9YjAS4mjeqAFJp_vopDtcO4-afZHEVaTqbNzsNiC1Zj8PRihiartQOWJptdNUz5j08c3NBIkhPutpWhqXHERAxKmnmn8FrllL2f6C5AU746rrmemOi6BFMQvhSu8V86MqGpdub6I6teipm5sVwSUII0FQk63sQheXnxwsGjGtnc15pt3MfJvD4FeCxoGrp6X3g0WMH1EX_a9vWAJ8ZFHxE3eJS-4SY-a330k0iN86mffeBl6fKg5OSEF4REu5fNYlfAr5-TRrUfdNU2cxvk1cJENm4uulpTHmBd3d5NZVEteqD18TR2cjZJrECUFUUcOB2wr33D7Nowditfw4wRc_QWlZK6roIpWGSL4lJgwED56jyZQhc7bGqk1GfFxZlrPco5tNkhAqgw38iU0jzW8k2giquGMaAcsvl5KKz-Y0uFV","summary":[{"type":"summary_text","text":"**Planning detailed process reporting schema**"}]},{"id":"fc_05a4d8ea8a10ef0b016a597547b8f481989086036f32207124","type":"function_call","status":"completed","arguments":"{\"i\":\"Delivering telemetry RCA\",\"op\":\"send\",\"to\":\"Main\",\"message\":\"Telemetry RCA: cold broker PID 82868; brain ready {pid:47668,generation:0,hash:c428…}; startup 1784235695891. Heartbeat file advanced 1784247371915→7430856→7477529 (105.614s), so pump alive; brain PID/gen stable. Your counts accepted: 33 stream-subscriber poisons, 4361 attaches, 584 peer 10s fails. Exact stream3907: attach/write 1784244082619; poison 4097627 (+15.008s); DISPATCH fail ~4102368 (+19.749s); retry attach 4102973 (+20.354s). During its 15s conn10180/10181/10182 completed normally and fresh conns answered 105ms after poison: not broker-wide. All poisons labeled stream-subscriber, not controller endpoint/session; webbie attach→stream4834 temporal relation cannot establish identity/causality. Post-poison variable delay is explained by asymmetry: server BrokerConn write is bounded/canceled, but ordinary dispatcher Brain uses unbounded read_event (only pump has split recv_timeout); worker family loops all block on it. Thus server transport-close does not bound client worker completion; buffered pipe/drop/disconnect propagation or being outside read can add 0.1–47s. Missing stage telemetry prevents choosing. v0.34 W1 added opener RPC plus ANY-Err fallback to peek_first_line subscriber + 500ms/1s retries/max3; magnifies preexisting Windows 15s write expiry into 20–62s churn, no new 20/30 timer. Fix first: fallback only explicit unsupported (transient opener errors requeue), add bounded dispatcher carrier/worker deadline; test abandoned replay subscriber returns shortly after shortened 400ms poison while unrelated viewer progresses. Live probe: 250ms daemon status JSON + child/RC/WT CPU/I/O counters + passive seq timestamps; prompt status/other views + one frozen view => endpoint/RC, all status delayed => broker-wide, child counters flat only victim => child/ConPTY.\",\"replyTo\":null,\"await\":false,\"from\":null,\"timeoutMs\":null,\"peek\":null}","call_id":"call_prd3v6YWOIhLisg2X5Jf2v51","name":"irc"}]},"duration":12285.474899999797,"ttft":1728.688299998641,"contextSnapshot":{"promptTokens":223350,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_prd3v6YWOIhLisg2X5Jf2v51|fc_05a4d8ea8a10ef0b016a597547b8f481989086036f32207124","toolName":"irc","startedAt":"2026-07-17T00:20:32.744Z","intent":"Delivering telemetry RCA"},"id":"44430236","parentId":"9fef00ed","timestamp":"2026-07-17T00:20:32.744Z"}
{"type":"message","id":"f3238434","parentId":"44430236","timestamp":"2026-07-17T00:20:32.744Z","message":{"role":"toolResult","toolCallId":"call_prd3v6YWOIhLisg2X5Jf2v51|fc_05a4d8ea8a10ef0b016a597547b8f481989086036f32207124","toolName":"irc","content":[{"type":"text","text":"Delivered to 1 peer(s):\n- Main: injected"}],"details":{"op":"send","from":"LiveLogRca","to":"Main","receipts":[{"to":"Main","outcome":"injected"}]},"isError":false,"timestamp":1784247632744}}
{"type":"message","id":"2e0b0458","parentId":"f3238434","timestamp":"2026-07-17T00:22:04.939Z","message":{"role":"assistant","content":[{"type":"thinking","thinking":"**Converting timestamps to ISO and UTC**\n\n**Ranking hypotheses for 30s psyche timeouts**"},{"type":"thinking","thinking":"**Analyzing pump heartbeat and timeout behavior**"},{"type":"toolCall","id":"call_wAGkHazGUbM1WoqFdaQQrTHW|fc_05a4d8ea8a10ef0b016a59755eb4b88198bb6a62dd9e46e3ea","name":"yield","arguments":{"type":"result","result":{"data":{"summary":"HFENDULEAM runtime/log RCA (read-only, no session mutation)\n\nBottom line\n- The field evidence does NOT show a 20–30 s broker-wide IPC freeze. It shows a recurring per-physical-connection failure of brain `stream-subscriber` connections: the broker write blocks, the v0.34 `BrokerConn` watchdog retires that one connection at almost exactly 15 s, and the corresponding dispatcher worker reports failure/retries later. Unrelated broker connections continue to complete during the same interval, the peer-pump heartbeat keeps advancing, and the brain PID/generation remains stable.\n- The strongest v0.33→v0.34 regression relation is the v0.34 redispatch fix itself: v0.34 added the pinned-opener RPC, an `Err`-on-any-kind fallback to `peek_first_line` (which opens a fresh subscribing `Brain` connection), and retryable claims (500 ms, then 1 s; max 3 attempts). It did not add a 20/30 s timer, but it can turn the pre-existing Windows 15 s broker-write expiry into a 20–62 s dispatch lifecycle through fallback subscriber creation, variable client-side completion, and retry. Commits identified by the regression investigator: `ad7fde8`, `2a110ee`, `8425357`.\n- The remaining unexplained portion is now sharply localized: the server logs `transport-close poisoned=true timed_out=true` at the 15 s bound, but the ordinary dispatcher-side `Brain` can remain inside an unbounded `read_event()` or family-specific work for another ~0.1–47 s. Only the pump carrier has the split reader plus `recv_timeout`; ordinary dispatcher clients do not. The present logs lack worker-stage/client-receive timestamps, so buffered named-pipe data, Windows disconnect/drop propagation, and time spent outside the read call cannot yet be separated. This is a falsifiable mechanism, not a claim that the exact sub-cause has already been proved.\n\nTimestamped evidence (UTC; epoch wall-ms retained for exact correlation)\n1. Cold runtime start: `2026-07-16T21:01:35.891Z`, wall_ms `1784235695891`: `BRAIN_UP`, generation 0, brain PID 47668, broker socket `spt-daemon-broker-78bf18a9fd96fdc6.sock`.\n2. Exact 20.354 s specimen, stream 3907:\n   - `2026-07-16T23:21:22.619Z` / `1784244082619`: conn 10179 `stream-sub-attach stream=3907 from_seq=0`, then `write-start`.\n   - `2026-07-16T23:21:37.627Z` / `1784244097627`: `CONN_WRITE_POISONED` and timed-out close; elapsed 15.008 s.\n   - Near `2026-07-16T23:21:42.368Z` / neighboring wall_ms `1784244102368`: `DISPATCH:3907:Failed(\"failed to fill whole buffer\")`; elapsed ~19.749 s from attach and ~4.741 s after poison.\n   - `2026-07-16T23:21:42.973Z` / `1784244102973`: fresh stream-3907 subscriber conn 10195; elapsed 20.354 s from the original attach.\n3. Longer specimen, stream 3711:\n   - `2026-07-16T23:13:45.858Z` / `1784243625858`: conn 9612 subscriber/write start.\n   - `2026-07-16T23:14:01.012Z` / `1784243641012`: poison; 15.154 s.\n   - Around `2026-07-16T23:14:48.480Z` / `1784243688480`: `DISPATCH:3711:Failed`; ~62.622 s from start and ~47.468 s after server poison.\n4. 32.790 s specimen, stream 3721:\n   - `2026-07-16T23:14:15.664Z` / `1784243655664`: conn 9641 subscriber/write start.\n   - `2026-07-16T23:14:30.679Z` / `1784243670679`: poison; 15.015 s.\n   - Around `2026-07-16T23:14:48.454Z` / `1784243688454`: `DISPATCH:3721:Failed`; ~32.790 s from start.\n5. Aggregate trace supplied by Main over this same cold v0.34 generation: 33 `CONN_WRITE_POISONED` incidents, all `stream-subscriber`; every poison at ~15,000 ms; dispatch completion 15.1–62 s from write start, with recent examples 17.6, 25.4, 29.1, 30.1, 31.1, 36.6, 59.4, and 61.6 s; median poison interarrival 95.5 s, minimum 29.7 s. The same trace counted 4,361 `stream-sub-attach` records and 584 per-peer 10 s `PUMP_PEER_FAIL` events.\n6. Broker-wide counterexample during stream 3907's blocked 15 s window: conn 10180 completed normally at wall_ms `1784244083264`, conn 10181 at `1784244088327`, and conn 10182 at `1784244093410`; fresh conns began at `1784244097732`, only 105 ms after the poison. The broker accept/dispatch surface was therefore making unrelated progress while conn 10179 was blocked.\n7. Pump continuity: repeated reads of `identity/pump-heartbeat.json` advanced `1784247371915` → `1784247430856` → `1784247477529` (`2026-07-17T00:17:57.529Z`), an advance of 105.614 s across the investigation. This contradicts a contemporaneous peer-pump wedge. The current log showed the original two `PUMP_IPC_READER: spawned` lines and no observed current-generation reader exit/reconnect sequence.\n8. Process facts remained stable across reads: broker/daemon PID breadcrumb 82868; `brain.ready` = `{pid:47668,generation:0,exe_hash:\"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3\"}`. No current-log brain generation change accompanied the sampled incidents.\n9. Current hosted endpoint records were live/online and preserved: deployah PID 16844, doyle 13800, lia 69996, webbie 81556, todlando 42588, emphasys 31352. Deployah/lia/webbie `last_active_ms` advanced near `1784247434xxx`; Doyle's recorded last-active was older (`1784247059062`) but its process/status remained online. These are durable/status facts, not proof of each PTY's output progress.\n10. Main's webbie correlation is not sufficient to make stream 4834 the webbie RC connection: webbie's session controller attach occurred at wall_ms `1784245849362`; stream 4834 began 37.354 s later and poisoned 52.366 s after attach. The stream poison label contains `stream-subscriber stream=4834` but no controller/session/endpoint attribution. Temporal proximity supports a shared-load hypothesis, not identity or causality.\n\nBroker-wide versus endpoint-local conclusion\n- Strongly disfavored: broker-wide IPC stall. Prediction contradicted by unrelated connection completions throughout blocked-write windows and by the advancing pump heartbeat.\n- Not observed: brain restart/reconnect/subscriber replay caused by a brain lifecycle transition during the sampled cold generation. Rotated logs do contain earlier generation-2/3 update cycles and their expected `BRAIN_RESUMED`/dispatch failures, but the current incidents occur with generation 0 stable.\n- Directly observed: isolated `stream-subscriber` broker connections stop draining and hit the exact per-connection 15 s watchdog. This is a brain/dispatcher net-stream path. It is not itself a child ConPTY-output marker and is not attributed to a particular PTY.\n- Still possible as a user-visible consequence: shared brain-process or Windows scheduling/resource pressure from very high subscriber/connection churn may delay several remote views at once. No CPU, memory, handle, thread-count, or per-process I/O telemetry is present in these logs or the daemon-status DTO, so resource pressure is currently unsupported rather than ruled out.\n\nRanked hypotheses and live-probe predictions\n1. HIGH — v0.34 opener fallback/retry plus unbounded dispatcher completion is producing the 20–62 s lifecycle. Prediction: a worker-stage trace will show `net_stream_opener` error or a serve subscription, then one stream-specific conn blocked exactly 15 s, client read/worker return later, followed by the 500 ms/1 s claim retry. Unrelated broker status probes remain prompt.\n2. MEDIUM — an RC/view process or remote subscriber stops draining; the server-side stream subscriber fills while its child PTY continues. Prediction: affected child PID `Read/WriteOperationCount` or byte counters and broker session output sequence continue to advance, while only the affected RC/Windows Terminal output counters or delivery timestamps pause; the poisoned conn can be joined to a controller/session only after adding attribution/stage IDs.\n3. MEDIUM-LOW — aggregate resource pressure from 4,361 subscriber attaches, 33 watchdog cancellations, 584 dead-peer 10 s dials, and coincident 30 s psyche subprocess timeouts increases dispatcher scheduling/teardown latency. Prediction: CPU, handle/thread count, context switches, or I/O latency rise across the brain/daemon/RC processes around clusters; local `daemon status --json` may show jitter but should not necessarily block for the full stall. Reducing only fallback subscriber churn should reduce stalls if causal.\n4. LOW/UNRESOLVED — child/ConPTY pauses. Prediction: only the victim child's output/I/O counters and broker `OutputLog::append` sequence stop, while daemon status, other sessions, and RC transport remain prompt. Current logs have no child-output timestamps, so this cannot be confirmed from stderr.\n5. LOW — pump/peer-dial or brain-lifecycle wedge. Prediction would be a stale 5 s heartbeat, `PUMP_IPC_READER` exit/spawn or `BRAIN_UP` generation change, and correlated delays across independent broker calls. Current evidence contradicts those predictions. `PUMP_PEER_FAIL` is source-designed as concurrent, per-peer isolation; the 10 s peer bound is not a serial broker-wide stop.\n\nFocused fix and validation design\n- Fix the source of avoidable fallback subscribers: `first_line` must fall back to `peek_first_line` only for an explicit N-1/unsupported-opener reply. A transient opener error, row race, or local IPC failure should release the v0.34 retryable claim rather than create a replay subscriber. Do not treat every `Err` as protocol unsupported.\n- Bound dispatcher worker reads independently of broker writes. Generalize the pump's split-reader/channel-deadline approach, or add an owned/cancelable dispatcher carrier, so a worker exits within a small deterministic bound after its server connection is poisoned. Do not use Windows `PIPE_NOWAIT`; the source documents its mid-frame corruption risk.\n- Add correlation telemetry at the missing boundary: worker ID + stream ID + family + stage (`opener-query`, `fallback-subscribe`, `serve-subscribe`, `read-enter`, `read-error`, `return`, `retry`) and client-side conn identity. This will determine whether the poisoned conn is the temporary peek subscriber or the family serve subscriber and exactly where post-poison time is spent.\n- Regression test A: on a fully v0.34 broker, inject a transient opener-RPC error with a large retained stream. Assert no fallback `stream-sub-attach` occurs; the claim re-enters at the documented 500 ms backoff and succeeds through the pinned opener.\n- Regression test B (Windows, production path, shortened `SPT_BRAIN_WRITE_DEADLINE_MS=400`): create a non-draining replay subscriber; assert server poison near 400 ms, dispatcher worker failure within a tight post-poison bound, exactly bounded retries, and no parked worker/connection leak.\n- Regression test C: during B, keep an unrelated session viewer draining and assert its sequence/frame count advances across the entire incident. The existing `conn_blackhole_lifecycle` test provides the right unrelated-viewer invariant but should be extended to the redispatch/fallback seam.\n- Live read-only probe: sample `spt daemon status --json` every 250 ms (documented read-only/ungated), record existing passive viewer/output sequence timestamps, and snapshot child PID, affected `spt rc` PID, and Windows Terminal PID CPU plus read/write operation/byte counters without sending input or resize. Prompt status + progressing unrelated viewer + one frozen view means isolated RC/transport; prompt status + victim child counters flat means child/ConPTY; all control replies and viewers delayed together means shared broker/IPC; child output advancing while RC/WT stalls means local render/pipe transport. Preserve all current sessions and use naturally occurring output; deterministic injected markers belong in a disposable integration harness, not these live PTYs.","files":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","description":"Current cold-generation broker/brain stderr. Contains exact wall_ms/mono_ms connection lifecycle, 15 s `CONN_WRITE_POISONED` events, stream subscriber attachments, dispatch failures, unrelated connection progress, peer failures, and endpoint/psyche activity."},{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1","description":"Rotated prior-generation evidence: generation 2/3 brain update starts, `BRAIN_RESUMED`, initial dispatch pipe failures, and peer-pump failures. Useful contrast to the stable current generation."},{"path":"C:/Users/decid/AppData/Local/spt-core/daemon.pid","description":"Current daemon/broker PID breadcrumb: 82868. Source explicitly says PID files are breadcrumbs, while socket ping is authoritative liveness."},{"path":"C:/Users/decid/AppData/Local/spt-core/brain.ready","description":"Current brain readiness record: PID 47668, generation 0, executable hash c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3."},{"path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json","description":"Pump heartbeat advanced repeatedly during investigation, disproving a contemporaneous pump-loop stall."},{"path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-ops.json","description":"Current pump operation owner agrees with brain PID/generation (PID 47668, generation 0)."},{"path":"C:/Users/decid/AppData/Local/spt-core/owlery/*/info.json","description":"Read-only per-endpoint runtime records used for online state, process IDs, adapters, controller state, and last-active stamps."},{"path":"crates/spt-daemon/src/conn.rs","description":"Windows bounded framed-write mechanism. `BrokerConn` uses a 15 s absolute write/gate deadline, `CancelIoEx`, `DisconnectNamedPipe`, poison/retire semantics, watchdog thread, and lifecycle stamps. Server-side cancellation does not itself impose a client dispatcher read deadline."},{"path":"crates/spt-daemon/src/broker.rs","description":"Defines `BRAIN_WRITE_DEADLINE=15s`, per-connection subscriber/controller writers, controller-only stall-evict accounting, and role attribution. Explains why stream-subscriber poison events need not appear in `stall_evict_count`."},{"path":"crates/spt-daemon/src/brain.rs","description":"Ordinary `Brain` clients use blocking unbounded reads; only the peer pump uses a split reader and channel `recv_timeout`. This is the key source-grounded post-poison completion asymmetry."},{"path":"crates/spt-daemon/src/dispatch.rs","description":"v0.34 dispatcher: opener RPC, catch-all `Err` fallback to `peek_first_line` subscriber, worker family subscriptions, claim retry state, 500 ms exponential backoff, max three attempts, 100 ms poll."},{"path":"crates/spt-daemon/src/attach.rs","description":"Remote attach serve loop and ordinary blocking `Brain::read_event` use; establishes the RC/view path and the observability needed to distinguish transport from child output."},{"path":"crates/spt-daemon/src/pump/mod.rs","description":"Five-second heartbeat, per-peer isolation, concurrent dial handling, 10 s peer failures, and the separate 30 s pump IPC deadline. Current heartbeat progress and lack of restarts disfavor this path."},{"path":"crates/spt-daemon/src/brainproc.rs","description":"500 ms brain heartbeat, broker liveness probe, sessions reap, and spawning of dispatcher/pump consumers. No current generation transition accompanied incidents."},{"path":"crates/spt/src/cli.rs","description":"`spt daemon status --json` is the non-mutating status surface. Fields include running/PID, net status, pump heartbeat, broker image/staleness, controller stall-evict tally, peer health when available, and local endpoint rows."},{"path":"CHANGELOG.md","description":"v0.34.0 release contract: redispatch/finished-session replay fix; v0.33.0 comparison."},{"path":"docs/KNOWN-HAZARDS.md","description":"Source-grounded history for Windows blocked writes (7.36/7.39) and v0.34 terminal-stream redispatch changes (7.41)."},{"path":"crates/spt-daemon/tests/redispatch.rs","description":"Existing production-path redispatch tests; correct seam for opener fallback/retry regression coverage."},{"path":"crates/spt-daemon/tests/conn_blackhole_lifecycle.rs","description":"Existing Windows-shaped blackhole test with an unrelated draining viewer; correct base invariant for proving per-connection rather than broker-wide impact."}],"architecture":"Observed runtime flow and failure boundary:\n\n```mermaid\nflowchart LR\n  PTY[Hosted child / ConPTY] --> OL[Broker OutputLog]\n  OL --> C[Controller/viewer broker conn]\n  Peer[Remote peer QUIC stream] --> NS[Broker Net StreamLog]\n  NS -->|replay/live frames| BC[BrokerConn: per physical named pipe]\n  BC -->|15 s bounded write| DB[Dispatcher Brain client]\n  DB --> FL[first_line: opener RPC]\n  FL -->|any Err in v0.34| PF[peek_first_line fallback subscriber]\n  FL -->|classified| FW[family worker / serve_attach etc.]\n  PF --> UR[ordinary unbounded read_event]\n  FW --> UR\n  BC -->|watchdog at 15 s| PC[CancelIoEx + DisconnectNamedPipe + poison]\n  PC --> TC[server transport-close immediately]\n  UR -->|variable later error/return| DF[DISPATCH Failed]\n  DF -->|500 ms then 1 s, max 3| DB\n  Pump[Peer pump split Brain] --> RT[reader thread + recv_timeout]\n```\n\nThe important isolation boundary is `BrokerConn`: every observed poison is keyed to one conn and one `stream-subscriber stream=N`. The broker remains able to accept and complete other IPC connections while that conn is blocked. The variable 20–62 s user-visible-shaped lifecycle is not one timer; it is the fixed 15 s server write bound plus unbounded/variable dispatcher client completion and v0.34 retry/fallback. The PTY path is adjacent but not joined by current log attribution, so a stream timeout cannot honestly be assigned to webbie, Doyle, or another PTY without the proposed worker/endpoint correlation telemetry."}}}}],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":1200,"output":4961,"cacheRead":222720,"cacheWrite":0,"totalTokens":228881,"reasoningTokens":595,"cost":{"input":0.006,"output":0.14883,"cacheRead":0.11136,"cacheWrite":0,"total":0.26619}},"stopReason":"toolUse","timestamp":1784247632754,"responseId":"resp_05a4d8ea8a10ef0b016a59755128488198bfe0a821ed8c6bb9","providerPayload":{"type":"openaiResponsesHistory","provider":"openai-codex","dt":true,"items":[{"id":"rs_05a4d8ea8a10ef0b016a597553772081988cfefe386f7c0581","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXVdG6xYfb5_r2Zu_ZxBq9_d0YA8NLGKw-xA6pltcuBZXOLE9OEp-rp6VUIxZmY90Ho3J0nufsUkLSRTTp7z8Q7rh2P1VMaBljV2eFXsx3yBU_24HkyPRckd5WQWM-XBwOHHM8HPkMilefqQUOS4ria_MbGUnDkhGwhW5joMBDy8Tg5IRas_508wZBIPfPQ2wQUbu1fYWg5BW2OwQnwTRn1R6qLTeKryK41lvHFop3ab0zy-AuBdHcbZowUoo1EDMJt-BW7DNh9IZMgD_iUk8j6HB0xRFPgwa68iANX_Ce9JsvAuoKUZQtmgQRZOQu1HJRP4eqmLLpNgl2Ch_xHAM_6s6fRKx9L5QmIWLRsLFbHM_jCwSR7I9Pqr892z6CGC3HGdtg01JBzQMh6jUmTo9Olgmu3tGUvfndZs_0GvoYDFOkd0fO0HS7NSrsx4IDHg8sUawRLGl0gn27E5lxVO0u4_IaqwfEVPPF7pJRyAoVmzpTGyz2I2pcUrKjwoDVuQCc-0TkJnfnMosgEYUIXWCmLwkndqS4WI37q5fI_RJPb3Yf__p2iyPTQCAgiXLA2twqGf76wEIoYkUvcQ7-J3Y5hx7HWE3bb0OzBRTvvvL4PrnRsbuuBwaWE1kWwWDQ7ZCWO9jLwW_2odGNxw7o_OqOojBRrfnrGJ2N8zyGy4GtV6fpNUsrrdPXBUabYQirz-qGUTV4gotLj3uMbrsaaM7Y8OMAR6HQwnEfJWaSgQHefsb26IUz-sPc7s6a__HwlyaLfh7B5a2SrSzCa65seFB9nmNtttnUhjn9icAagDBAcMreN5rJhny0xtHfZimKi71t_xTqFFiYfKSVACdaCss3kF6aEB2UIpUTKwZMLm2sy-c16hZcDe5HXeJDVhQm_9P2NXHOV-_wq6Fsy_5h0CUsUPXfNt-9F-KeYZGudupNzKEVd82BvsRXGNP9p3Jp60PZ9VMDnA0rAkP8arxF4Ib2PTOaWIe1JIWlTnpHIj9hMOJV6BF_iGT41cMLRz_aEJqTqy-vfp9CrU4-OCsvlwq07ygF0lin2MmCFL7HkGd8TlQ1XahnXHDoTLJ_w8h0SHmu3LUgpUidIaNgudYjldgbI1EibRiQLlbfi6gY3h3XSUQlagtcJ1zdLiVCWJrqt3e0sT0_gEDYSYLoMQrl3YLKUXwQ27jeELJwFvFzchQIm2Ydq2Pm4YGnLxi7--u_2k1NlRWAed1DkeCSL9NuBZmZHzBDjq4QOnmMT9s_quLFUkgr9LAOo2Ex4NnUVWu9Ij7ZHmFmawnry7AwZPdbFZRPfFm_Uv2XDOmMuBoLvch_5dsP_0-xIWLYix380_IlL3HCEktY4KM6QkmOfJxRLx3_FzWS0sF3mfMs5hr7_GSZZ0ol0fBNI8v-k5Hy68xH1XkC790ieUJdLUPEuRVVS8p5Pl6ZfNXthClxq-uIeRYNotUufGpN1ZsLoYGNS0rfiPvaQawawvroHiNNFOpbtfQ_tJGg8OMR1DBSJ-SOgAssZ1wbxaj6ckY5uhm_ZCMcJN2ZhwawgYMs9b77SQjaeLt927J2wk5uJ7_hAklpgZakkxXgqXDvHXbdKRPd5KZaaqnJk4ynqlDmr7FgN5vL8XPitbmZ7BWAwHMd4zYTU456KDNazRQ-6vK_rg5o691R4RljmsCApJ9AItG2kbcQJ8-oA5TRS383TB-VMWXIaLx1bkzjQC16K7ILDtRGJbtzQT2euiIvBTJqUetROWjyBkAAtmmprzbtVfKcsKlN3yu_FVGbEeZ1WuiEPjZs5EvEmECWekMJI_vv5_VEjv9Kps7-EcGwJ9AwDRR3FMyoVqY_N59gwJr_ldWm0HC2ZMlKh74xKaU8RlO-orymkLLXQYmQo1h2Fsjo9Z4J5T2nAkDpC0zxZ1RiTePlJDvosJKtssszN-WrV0nY6NsXS6vM-gjWCiC1s76XveYJphSflNtXv28nlMw5bLEnM4KT6T4SdaZ5lrVYsBsAJLzI08Zn1xB1CJlydiiPo5c-ZIY_kGHZyw3LtsgQxb3sWn_V8IXE0xQ5nuKQ7gJA3BjwHpq9bEyKcOdnK7rbVtJHlSV7DOk4880EE5RykIHEWlW3jSBHQNvdgbslNH98qKkpVqgIIXTB8SfGQGPPpSG2VjS1kJRgqGXr0PxqMT-1K95PMQJ8AaJ69MWmq1uECmq7hTr8mMpBjxJQB3wzKUE1AdUDJfkw7V9VDXCOv5gk8d5f3eLhl0SYahphn9lCIPPJYpOneSnzz2lzPj11RYItT9RM7PRUui8t16Hw9aLt0vkN_HCgYJBl9YexZRijdR_la_CGU0E1dz5oOzfJxS8xgUTNu7Fcp-Or13hibUivzdArmd1vwfmX6mM1TsWzrvVooB_rO_HBFOPlNc6rTwj2CJy063gOkqeTgOpXwiiehas_jpj6WOwz3elr6dj93CU3zJPDfgSNM6RkAU2oDFvwn1Gg4lpDDSFqgjbsG4AmD4f1h5A64B3PfCZvngHcUyjpH1pNhSOIuLb_iY8gBlpjNx0QbCtdBLTZGQIY9sJ5mcSA5ekOMBwqq4rqghe0NWejBhQZQT20WGYXJqVYLoq7tnIoFc9aN3w4W6mHmubxs9bNjVs4gXDi8MkmqGIElTDbv7KsXwjOV1yVT_5ASrrjNT6GyT7S7z8qk-aam3L4X1DMzUwx6iyT3ZePKYKtbUrYfJJzzt9WArU-W-vXNjNW6ddKBjSecD_B8SaJKkEM0kO1fyniPS_uohMjSEmqns58fCoydhLd7-7YnZdS9CPM4kee0ftG0cqc0AUTAmV4yxL2zOrQJ9zJeoci301SSpPTvbhmGajFfQt2WgBwcAZ0v1SnI2uBsvSITiHtHTBXXzgo_Y3S3eUKKbWM0ka5IEvQyUXOrCTkCRP6AYEgeNKwqA-q9DihWA1RB5n054xH2IDg-LfqGcy-FKbxi_be70InO5OUlu9TQeFO6zg39M6dhz0nkhOVBcCXyjc60AGwKI3Nxw0OLiOHZJnhFm8dSVJhNPMapqgGVvVjLGkRbXCiOVKUnPnD9tyadSSwiE_1azTYG4nMBAEXJDW5OT4d-nJZ19QnAgi0C64w==","summary":[{"type":"summary_text","text":"**Converting timestamps to ISO and UTC**"},{"type":"summary_text","text":"**Ranking hypotheses for 30s psyche timeouts**"}]},{"id":"rs_05a4d8ea8a10ef0b016a59755d1d2481989eb938d4ee70d90d","type":"reasoning","content":[],"encrypted_content":"gAAAAABqWXVeN7KkDPOqWWNmnOBnb6_ZHwwfiBtE5BkC5kQjKSTsN0og4xl8nnPo31k6jw7VMtYjY6WZkXYnc7G1FBXoFLI1pNr1PnVLLx3705tKoj9jaBTT4VNv7HfZjPpN8ikaJOrHgLpeq8ZNfNi-GjMIdqMG3AsKslWjKhI-bosZzpsfwXKMTepVu90L29o6j1exHHcHorKpDWNqSQBn4b6tMmD1aODbDm8xGFFbqwKUHzn09X7I7e1zeGQ2_lZWtFoVj6VLCSyvntDDnhzTnPRpxvmJ-gFsXIUbHGxhuJlByVaz1iLv5GUhIg8Un9hEsrhaGvGyZYXRG01U94DquMOqqMh2qrnIH-L5WpAvYUz8m9hgpgl1QHRM1fQl1CeBOSrFUqKgMvaKkby_ekllM11VemCQYUfUTseWV7k2Sr5DRoYisxIcV4lCW4iTTVgjVGKm33O9w0JdWwUPkuC5qzNUZwZV0n6sN0YnwrR70iI6AkIi2qzdNfz3NjZb5F_-kuo-jRvsS289HjXetZNjpl4_SdpV1LZsYvypMj7ZUB3c17JtKxIwdMIee1C67MxfrQDup5Rqs-Ryu0zso-paAgnJmixtVyn-rHHUngK9iUQIho9McK4UyUYI7os9p6NaCgoiIrN8zEmSkTKV1i-RAX00_YA4DKWppDWuF2PW141wAUolDOJ4GF9uFPUo2PXDyFfXFDNAQPxZ41gKH_1K07oGqvPvrs7pY7rsW9SHS-8W4-fm8OH-rHUZN-aEDrKzHsgOWshCIoaXvhTHuYUSlyo3JuP1Ukp8Ps3BpOiPtilqOSO8YJ2SJ-EQS0CJUpiIkbHON98dIk64iqFObJCC7cSCNZKYtRP6WJiVtY6zENZ8_6wg0ukUMZYBfIB3D2nnlU0f5xQNr37Xg2cVztK_nnWX8ao-Tgrzmx_FL8B8AuSuBZM1oSC6bRnlRrTAO2MATd75Oq4gJXUivUYFbxU3yUwnwrBhZlgZJlWlp5VbmGwttyq3WREEOjkKa59QOluODIUZgNzUVo7S56L9QjsfbLKy-hBilzh12-9AmdT8N6gJSg7UCWY_d6e5fxznA37N0GejA0M5AzUzvVTJuPi5YyPsgCR4y9KwVuoTRuGBTe6d0YQ7lpVfsKYtEWxbaojC6Z_TH8ftEWpbhjTYrQ-K8_uIV7ENmgYr3Jvn39vu3SAPd0sJSBLstacLANCdVP0uEImamM3vaZKd1iLXA-eM6ckUxemDZ3kIlyInWyuuXV2DnK6YdKlDcue0VARiTunie-JNmuoCzL0FzvqamzrcNCYZTTIhlyznLnLpRRgCQVk3Gs8NJtE=","summary":[{"type":"summary_text","text":"**Analyzing pump heartbeat and timeout behavior**"}]},{"id":"fc_05a4d8ea8a10ef0b016a59755eb4b88198bb6a62dd9e46e3ea","type":"function_call","status":"completed","arguments":"{\"type\":\"result\",\"result\":{\"data\":{\"summary\":\"HFENDULEAM runtime/log RCA (read-only, no session mutation)\\n\\nBottom line\\n- The field evidence does NOT show a 20–30 s broker-wide IPC freeze. It shows a recurring per-physical-connection failure of brain `stream-subscriber` connections: the broker write blocks, the v0.34 `BrokerConn` watchdog retires that one connection at almost exactly 15 s, and the corresponding dispatcher worker reports failure/retries later. Unrelated broker connections continue to complete during the same interval, the peer-pump heartbeat keeps advancing, and the brain PID/generation remains stable.\\n- The strongest v0.33→v0.34 regression relation is the v0.34 redispatch fix itself: v0.34 added the pinned-opener RPC, an `Err`-on-any-kind fallback to `peek_first_line` (which opens a fresh subscribing `Brain` connection), and retryable claims (500 ms, then 1 s; max 3 attempts). It did not add a 20/30 s timer, but it can turn the pre-existing Windows 15 s broker-write expiry into a 20–62 s dispatch lifecycle through fallback subscriber creation, variable client-side completion, and retry. Commits identified by the regression investigator: `ad7fde8`, `2a110ee`, `8425357`.\\n- The remaining unexplained portion is now sharply localized: the server logs `transport-close poisoned=true timed_out=true` at the 15 s bound, but the ordinary dispatcher-side `Brain` can remain inside an unbounded `read_event()` or family-specific work for another ~0.1–47 s. Only the pump carrier has the split reader plus `recv_timeout`; ordinary dispatcher clients do not. The present logs lack worker-stage/client-receive timestamps, so buffered named-pipe data, Windows disconnect/drop propagation, and time spent outside the read call cannot yet be separated. This is a falsifiable mechanism, not a claim that the exact sub-cause has already been proved.\\n\\nTimestamped evidence (UTC; epoch wall-ms retained for exact correlation)\\n1. Cold runtime start: `2026-07-16T21:01:35.891Z`, wall_ms `1784235695891`: `BRAIN_UP`, generation 0, brain PID 47668, broker socket `spt-daemon-broker-78bf18a9fd96fdc6.sock`.\\n2. Exact 20.354 s specimen, stream 3907:\\n   - `2026-07-16T23:21:22.619Z` / `1784244082619`: conn 10179 `stream-sub-attach stream=3907 from_seq=0`, then `write-start`.\\n   - `2026-07-16T23:21:37.627Z` / `1784244097627`: `CONN_WRITE_POISONED` and timed-out close; elapsed 15.008 s.\\n   - Near `2026-07-16T23:21:42.368Z` / neighboring wall_ms `1784244102368`: `DISPATCH:3907:Failed(\\\"failed to fill whole buffer\\\")`; elapsed ~19.749 s from attach and ~4.741 s after poison.\\n   - `2026-07-16T23:21:42.973Z` / `1784244102973`: fresh stream-3907 subscriber conn 10195; elapsed 20.354 s from the original attach.\\n3. Longer specimen, stream 3711:\\n   - `2026-07-16T23:13:45.858Z` / `1784243625858`: conn 9612 subscriber/write start.\\n   - `2026-07-16T23:14:01.012Z` / `1784243641012`: poison; 15.154 s.\\n   - Around `2026-07-16T23:14:48.480Z` / `1784243688480`: `DISPATCH:3711:Failed`; ~62.622 s from start and ~47.468 s after server poison.\\n4. 32.790 s specimen, stream 3721:\\n   - `2026-07-16T23:14:15.664Z` / `1784243655664`: conn 9641 subscriber/write start.\\n   - `2026-07-16T23:14:30.679Z` / `1784243670679`: poison; 15.015 s.\\n   - Around `2026-07-16T23:14:48.454Z` / `1784243688454`: `DISPATCH:3721:Failed`; ~32.790 s from start.\\n5. Aggregate trace supplied by Main over this same cold v0.34 generation: 33 `CONN_WRITE_POISONED` incidents, all `stream-subscriber`; every poison at ~15,000 ms; dispatch completion 15.1–62 s from write start, with recent examples 17.6, 25.4, 29.1, 30.1, 31.1, 36.6, 59.4, and 61.6 s; median poison interarrival 95.5 s, minimum 29.7 s. The same trace counted 4,361 `stream-sub-attach` records and 584 per-peer 10 s `PUMP_PEER_FAIL` events.\\n6. Broker-wide counterexample during stream 3907's blocked 15 s window: conn 10180 completed normally at wall_ms `1784244083264`, conn 10181 at `1784244088327`, and conn 10182 at `1784244093410`; fresh conns began at `1784244097732`, only 105 ms after the poison. The broker accept/dispatch surface was therefore making unrelated progress while conn 10179 was blocked.\\n7. Pump continuity: repeated reads of `identity/pump-heartbeat.json` advanced `1784247371915` → `1784247430856` → `1784247477529` (`2026-07-17T00:17:57.529Z`), an advance of 105.614 s across the investigation. This contradicts a contemporaneous peer-pump wedge. The current log showed the original two `PUMP_IPC_READER: spawned` lines and no observed current-generation reader exit/reconnect sequence.\\n8. Process facts remained stable across reads: broker/daemon PID breadcrumb 82868; `brain.ready` = `{pid:47668,generation:0,exe_hash:\\\"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3\\\"}`. No current-log brain generation change accompanied the sampled incidents.\\n9. Current hosted endpoint records were live/online and preserved: deployah PID 16844, doyle 13800, lia 69996, webbie 81556, todlando 42588, emphasys 31352. Deployah/lia/webbie `last_active_ms` advanced near `1784247434xxx`; Doyle's recorded last-active was older (`1784247059062`) but its process/status remained online. These are durable/status facts, not proof of each PTY's output progress.\\n10. Main's webbie correlation is not sufficient to make stream 4834 the webbie RC connection: webbie's session controller attach occurred at wall_ms `1784245849362`; stream 4834 began 37.354 s later and poisoned 52.366 s after attach. The stream poison label contains `stream-subscriber stream=4834` but no controller/session/endpoint attribution. Temporal proximity supports a shared-load hypothesis, not identity or causality.\\n\\nBroker-wide versus endpoint-local conclusion\\n- Strongly disfavored: broker-wide IPC stall. Prediction contradicted by unrelated connection completions throughout blocked-write windows and by the advancing pump heartbeat.\\n- Not observed: brain restart/reconnect/subscriber replay caused by a brain lifecycle transition during the sampled cold generation. Rotated logs do contain earlier generation-2/3 update cycles and their expected `BRAIN_RESUMED`/dispatch failures, but the current incidents occur with generation 0 stable.\\n- Directly observed: isolated `stream-subscriber` broker connections stop draining and hit the exact per-connection 15 s watchdog. This is a brain/dispatcher net-stream path. It is not itself a child ConPTY-output marker and is not attributed to a particular PTY.\\n- Still possible as a user-visible consequence: shared brain-process or Windows scheduling/resource pressure from very high subscriber/connection churn may delay several remote views at once. No CPU, memory, handle, thread-count, or per-process I/O telemetry is present in these logs or the daemon-status DTO, so resource pressure is currently unsupported rather than ruled out.\\n\\nRanked hypotheses and live-probe predictions\\n1. HIGH — v0.34 opener fallback/retry plus unbounded dispatcher completion is producing the 20–62 s lifecycle. Prediction: a worker-stage trace will show `net_stream_opener` error or a serve subscription, then one stream-specific conn blocked exactly 15 s, client read/worker return later, followed by the 500 ms/1 s claim retry. Unrelated broker status probes remain prompt.\\n2. MEDIUM — an RC/view process or remote subscriber stops draining; the server-side stream subscriber fills while its child PTY continues. Prediction: affected child PID `Read/WriteOperationCount` or byte counters and broker session output sequence continue to advance, while only the affected RC/Windows Terminal output counters or delivery timestamps pause; the poisoned conn can be joined to a controller/session only after adding attribution/stage IDs.\\n3. MEDIUM-LOW — aggregate resource pressure from 4,361 subscriber attaches, 33 watchdog cancellations, 584 dead-peer 10 s dials, and coincident 30 s psyche subprocess timeouts increases dispatcher scheduling/teardown latency. Prediction: CPU, handle/thread count, context switches, or I/O latency rise across the brain/daemon/RC processes around clusters; local `daemon status --json` may show jitter but should not necessarily block for the full stall. Reducing only fallback subscriber churn should reduce stalls if causal.\\n4. LOW/UNRESOLVED — child/ConPTY pauses. Prediction: only the victim child's output/I/O counters and broker `OutputLog::append` sequence stop, while daemon status, other sessions, and RC transport remain prompt. Current logs have no child-output timestamps, so this cannot be confirmed from stderr.\\n5. LOW — pump/peer-dial or brain-lifecycle wedge. Prediction would be a stale 5 s heartbeat, `PUMP_IPC_READER` exit/spawn or `BRAIN_UP` generation change, and correlated delays across independent broker calls. Current evidence contradicts those predictions. `PUMP_PEER_FAIL` is source-designed as concurrent, per-peer isolation; the 10 s peer bound is not a serial broker-wide stop.\\n\\nFocused fix and validation design\\n- Fix the source of avoidable fallback subscribers: `first_line` must fall back to `peek_first_line` only for an explicit N-1/unsupported-opener reply. A transient opener error, row race, or local IPC failure should release the v0.34 retryable claim rather than create a replay subscriber. Do not treat every `Err` as protocol unsupported.\\n- Bound dispatcher worker reads independently of broker writes. Generalize the pump's split-reader/channel-deadline approach, or add an owned/cancelable dispatcher carrier, so a worker exits within a small deterministic bound after its server connection is poisoned. Do not use Windows `PIPE_NOWAIT`; the source documents its mid-frame corruption risk.\\n- Add correlation telemetry at the missing boundary: worker ID + stream ID + family + stage (`opener-query`, `fallback-subscribe`, `serve-subscribe`, `read-enter`, `read-error`, `return`, `retry`) and client-side conn identity. This will determine whether the poisoned conn is the temporary peek subscriber or the family serve subscriber and exactly where post-poison time is spent.\\n- Regression test A: on a fully v0.34 broker, inject a transient opener-RPC error with a large retained stream. Assert no fallback `stream-sub-attach` occurs; the claim re-enters at the documented 500 ms backoff and succeeds through the pinned opener.\\n- Regression test B (Windows, production path, shortened `SPT_BRAIN_WRITE_DEADLINE_MS=400`): create a non-draining replay subscriber; assert server poison near 400 ms, dispatcher worker failure within a tight post-poison bound, exactly bounded retries, and no parked worker/connection leak.\\n- Regression test C: during B, keep an unrelated session viewer draining and assert its sequence/frame count advances across the entire incident. The existing `conn_blackhole_lifecycle` test provides the right unrelated-viewer invariant but should be extended to the redispatch/fallback seam.\\n- Live read-only probe: sample `spt daemon status --json` every 250 ms (documented read-only/ungated), record existing passive viewer/output sequence timestamps, and snapshot child PID, affected `spt rc` PID, and Windows Terminal PID CPU plus read/write operation/byte counters without sending input or resize. Prompt status + progressing unrelated viewer + one frozen view means isolated RC/transport; prompt status + victim child counters flat means child/ConPTY; all control replies and viewers delayed together means shared broker/IPC; child output advancing while RC/WT stalls means local render/pipe transport. Preserve all current sessions and use naturally occurring output; deterministic injected markers belong in a disposable integration harness, not these live PTYs.\",\"files\":[{\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log\",\"description\":\"Current cold-generation broker/brain stderr. Contains exact wall_ms/mono_ms connection lifecycle, 15 s `CONN_WRITE_POISONED` events, stream subscriber attachments, dispatch failures, unrelated connection progress, peer failures, and endpoint/psyche activity.\"},{\"path\":\"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1\",\"description\":\"Rotated prior-generation evidence: generation 2/3 brain update starts, `BRAIN_RESUMED`, initial dispatch pipe failures, and peer-pump failures. Useful contrast to the stable current generation.\"},{\"path\":\"C:/Users/decid/AppData/Local/spt-core/daemon.pid\",\"description\":\"Current daemon/broker PID breadcrumb: 82868. Source explicitly says PID files are breadcrumbs, while socket ping is authoritative liveness.\"},{\"path\":\"C:/Users/decid/AppData/Local/spt-core/brain.ready\",\"description\":\"Current brain readiness record: PID 47668, generation 0, executable hash c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3.\"},{\"path\":\"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json\",\"description\":\"Pump heartbeat advanced repeatedly during investigation, disproving a contemporaneous pump-loop stall.\"},{\"path\":\"C:/Users/decid/AppData/Local/spt-core/identity/pump-ops.json\",\"description\":\"Current pump operation owner agrees with brain PID/generation (PID 47668, generation 0).\"},{\"path\":\"C:/Users/decid/AppData/Local/spt-core/owlery/*/info.json\",\"description\":\"Read-only per-endpoint runtime records used for online state, process IDs, adapters, controller state, and last-active stamps.\"},{\"path\":\"crates/spt-daemon/src/conn.rs\",\"description\":\"Windows bounded framed-write mechanism. `BrokerConn` uses a 15 s absolute write/gate deadline, `CancelIoEx`, `DisconnectNamedPipe`, poison/retire semantics, watchdog thread, and lifecycle stamps. Server-side cancellation does not itself impose a client dispatcher read deadline.\"},{\"path\":\"crates/spt-daemon/src/broker.rs\",\"description\":\"Defines `BRAIN_WRITE_DEADLINE=15s`, per-connection subscriber/controller writers, controller-only stall-evict accounting, and role attribution. Explains why stream-subscriber poison events need not appear in `stall_evict_count`.\"},{\"path\":\"crates/spt-daemon/src/brain.rs\",\"description\":\"Ordinary `Brain` clients use blocking unbounded reads; only the peer pump uses a split reader and channel `recv_timeout`. This is the key source-grounded post-poison completion asymmetry.\"},{\"path\":\"crates/spt-daemon/src/dispatch.rs\",\"description\":\"v0.34 dispatcher: opener RPC, catch-all `Err` fallback to `peek_first_line` subscriber, worker family subscriptions, claim retry state, 500 ms exponential backoff, max three attempts, 100 ms poll.\"},{\"path\":\"crates/spt-daemon/src/attach.rs\",\"description\":\"Remote attach serve loop and ordinary blocking `Brain::read_event` use; establishes the RC/view path and the observability needed to distinguish transport from child output.\"},{\"path\":\"crates/spt-daemon/src/pump/mod.rs\",\"description\":\"Five-second heartbeat, per-peer isolation, concurrent dial handling, 10 s peer failures, and the separate 30 s pump IPC deadline. Current heartbeat progress and lack of restarts disfavor this path.\"},{\"path\":\"crates/spt-daemon/src/brainproc.rs\",\"description\":\"500 ms brain heartbeat, broker liveness probe, sessions reap, and spawning of dispatcher/pump consumers. No current generation transition accompanied incidents.\"},{\"path\":\"crates/spt/src/cli.rs\",\"description\":\"`spt daemon status --json` is the non-mutating status surface. Fields include running/PID, net status, pump heartbeat, broker image/staleness, controller stall-evict tally, peer health when available, and local endpoint rows.\"},{\"path\":\"CHANGELOG.md\",\"description\":\"v0.34.0 release contract: redispatch/finished-session replay fix; v0.33.0 comparison.\"},{\"path\":\"docs/KNOWN-HAZARDS.md\",\"description\":\"Source-grounded history for Windows blocked writes (7.36/7.39) and v0.34 terminal-stream redispatch changes (7.41).\"},{\"path\":\"crates/spt-daemon/tests/redispatch.rs\",\"description\":\"Existing production-path redispatch tests; correct seam for opener fallback/retry regression coverage.\"},{\"path\":\"crates/spt-daemon/tests/conn_blackhole_lifecycle.rs\",\"description\":\"Existing Windows-shaped blackhole test with an unrelated draining viewer; correct base invariant for proving per-connection rather than broker-wide impact.\"}],\"architecture\":\"Observed runtime flow and failure boundary:\\n\\n```mermaid\\nflowchart LR\\n  PTY[Hosted child / ConPTY] --> OL[Broker OutputLog]\\n  OL --> C[Controller/viewer broker conn]\\n  Peer[Remote peer QUIC stream] --> NS[Broker Net StreamLog]\\n  NS -->|replay/live frames| BC[BrokerConn: per physical named pipe]\\n  BC -->|15 s bounded write| DB[Dispatcher Brain client]\\n  DB --> FL[first_line: opener RPC]\\n  FL -->|any Err in v0.34| PF[peek_first_line fallback subscriber]\\n  FL -->|classified| FW[family worker / serve_attach etc.]\\n  PF --> UR[ordinary unbounded read_event]\\n  FW --> UR\\n  BC -->|watchdog at 15 s| PC[CancelIoEx + DisconnectNamedPipe + poison]\\n  PC --> TC[server transport-close immediately]\\n  UR -->|variable later error/return| DF[DISPATCH Failed]\\n  DF -->|500 ms then 1 s, max 3| DB\\n  Pump[Peer pump split Brain] --> RT[reader thread + recv_timeout]\\n```\\n\\nThe important isolation boundary is `BrokerConn`: every observed poison is keyed to one conn and one `stream-subscriber stream=N`. The broker remains able to accept and complete other IPC connections while that conn is blocked. The variable 20–62 s user-visible-shaped lifecycle is not one timer; it is the fixed 15 s server write bound plus unbounded/variable dispatcher client completion and v0.34 retry/fallback. The PTY path is adjacent but not joined by current log attribution, so a stream timeout cannot honestly be assigned to webbie, Doyle, or another PTY without the proposed worker/endpoint correlation telemetry.\"}}}","call_id":"call_wAGkHazGUbM1WoqFdaQQrTHW","name":"yield"}]},"duration":92163.73550000042,"ttft":2701.1519000008702,"contextSnapshot":{"promptTokens":223920,"nonMessageTokens":15420}}}
{"type":"custom","customType":"tool_execution_start","data":{"toolCallId":"call_wAGkHazGUbM1WoqFdaQQrTHW|fc_05a4d8ea8a10ef0b016a59755eb4b88198bb6a62dd9e46e3ea","toolName":"yield","startedAt":"2026-07-17T00:22:04.939Z"},"id":"619211ba","parentId":"2e0b0458","timestamp":"2026-07-17T00:22:04.940Z"}
{"type":"message","id":"7c7da788","parentId":"619211ba","timestamp":"2026-07-17T00:22:04.940Z","message":{"role":"toolResult","toolCallId":"call_wAGkHazGUbM1WoqFdaQQrTHW|fc_05a4d8ea8a10ef0b016a59755eb4b88198bb6a62dd9e46e3ea","toolName":"yield","content":[{"type":"text","text":"Result submitted."}],"details":{"data":{"summary":"HFENDULEAM runtime/log RCA (read-only, no session mutation)\n\nBottom line\n- The field evidence does NOT show a 20–30 s broker-wide IPC freeze. It shows a recurring per-physical-connection failure of brain `stream-subscriber` connections: the broker write blocks, the v0.34 `BrokerConn` watchdog retires that one connection at almost exactly 15 s, and the corresponding dispatcher worker reports failure/retries later. Unrelated broker connections continue to complete during the same interval, the peer-pump heartbeat keeps advancing, and the brain PID/generation remains stable.\n- The strongest v0.33→v0.34 regression relation is the v0.34 redispatch fix itself: v0.34 added the pinned-opener RPC, an `Err`-on-any-kind fallback to `peek_first_line` (which opens a fresh subscribing `Brain` connection), and retryable claims (500 ms, then 1 s; max 3 attempts). It did not add a 20/30 s timer, but it can turn the pre-existing Windows 15 s broker-write expiry into a 20–62 s dispatch lifecycle through fallback subscriber creation, variable client-side completion, and retry. Commits identified by the regression investigator: `ad7fde8`, `2a110ee`, `8425357`.\n- The remaining unexplained portion is now sharply localized: the server logs `transport-close poisoned=true timed_out=true` at the 15 s bound, but the ordinary dispatcher-side `Brain` can remain inside an unbounded `read_event()` or family-specific work for another ~0.1–47 s. Only the pump carrier has the split reader plus `recv_timeout`; ordinary dispatcher clients do not. The present logs lack worker-stage/client-receive timestamps, so buffered named-pipe data, Windows disconnect/drop propagation, and time spent outside the read call cannot yet be separated. This is a falsifiable mechanism, not a claim that the exact sub-cause has already been proved.\n\nTimestamped evidence (UTC; epoch wall-ms retained for exact correlation)\n1. Cold runtime start: `2026-07-16T21:01:35.891Z`, wall_ms `1784235695891`: `BRAIN_UP`, generation 0, brain PID 47668, broker socket `spt-daemon-broker-78bf18a9fd96fdc6.sock`.\n2. Exact 20.354 s specimen, stream 3907:\n   - `2026-07-16T23:21:22.619Z` / `1784244082619`: conn 10179 `stream-sub-attach stream=3907 from_seq=0`, then `write-start`.\n   - `2026-07-16T23:21:37.627Z` / `1784244097627`: `CONN_WRITE_POISONED` and timed-out close; elapsed 15.008 s.\n   - Near `2026-07-16T23:21:42.368Z` / neighboring wall_ms `1784244102368`: `DISPATCH:3907:Failed(\"failed to fill whole buffer\")`; elapsed ~19.749 s from attach and ~4.741 s after poison.\n   - `2026-07-16T23:21:42.973Z` / `1784244102973`: fresh stream-3907 subscriber conn 10195; elapsed 20.354 s from the original attach.\n3. Longer specimen, stream 3711:\n   - `2026-07-16T23:13:45.858Z` / `1784243625858`: conn 9612 subscriber/write start.\n   - `2026-07-16T23:14:01.012Z` / `1784243641012`: poison; 15.154 s.\n   - Around `2026-07-16T23:14:48.480Z` / `1784243688480`: `DISPATCH:3711:Failed`; ~62.622 s from start and ~47.468 s after server poison.\n4. 32.790 s specimen, stream 3721:\n   - `2026-07-16T23:14:15.664Z` / `1784243655664`: conn 9641 subscriber/write start.\n   - `2026-07-16T23:14:30.679Z` / `1784243670679`: poison; 15.015 s.\n   - Around `2026-07-16T23:14:48.454Z` / `1784243688454`: `DISPATCH:3721:Failed`; ~32.790 s from start.\n5. Aggregate trace supplied by Main over this same cold v0.34 generation: 33 `CONN_WRITE_POISONED` incidents, all `stream-subscriber`; every poison at ~15,000 ms; dispatch completion 15.1–62 s from write start, with recent examples 17.6, 25.4, 29.1, 30.1, 31.1, 36.6, 59.4, and 61.6 s; median poison interarrival 95.5 s, minimum 29.7 s. The same trace counted 4,361 `stream-sub-attach` records and 584 per-peer 10 s `PUMP_PEER_FAIL` events.\n6. Broker-wide counterexample during stream 3907's blocked 15 s window: conn 10180 completed normally at wall_ms `1784244083264`, conn 10181 at `1784244088327`, and conn 10182 at `1784244093410`; fresh conns began at `1784244097732`, only 105 ms after the poison. The broker accept/dispatch surface was therefore making unrelated progress while conn 10179 was blocked.\n7. Pump continuity: repeated reads of `identity/pump-heartbeat.json` advanced `1784247371915` → `1784247430856` → `1784247477529` (`2026-07-17T00:17:57.529Z`), an advance of 105.614 s across the investigation. This contradicts a contemporaneous peer-pump wedge. The current log showed the original two `PUMP_IPC_READER: spawned` lines and no observed current-generation reader exit/reconnect sequence.\n8. Process facts remained stable across reads: broker/daemon PID breadcrumb 82868; `brain.ready` = `{pid:47668,generation:0,exe_hash:\"c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3\"}`. No current-log brain generation change accompanied the sampled incidents.\n9. Current hosted endpoint records were live/online and preserved: deployah PID 16844, doyle 13800, lia 69996, webbie 81556, todlando 42588, emphasys 31352. Deployah/lia/webbie `last_active_ms` advanced near `1784247434xxx`; Doyle's recorded last-active was older (`1784247059062`) but its process/status remained online. These are durable/status facts, not proof of each PTY's output progress.\n10. Main's webbie correlation is not sufficient to make stream 4834 the webbie RC connection: webbie's session controller attach occurred at wall_ms `1784245849362`; stream 4834 began 37.354 s later and poisoned 52.366 s after attach. The stream poison label contains `stream-subscriber stream=4834` but no controller/session/endpoint attribution. Temporal proximity supports a shared-load hypothesis, not identity or causality.\n\nBroker-wide versus endpoint-local conclusion\n- Strongly disfavored: broker-wide IPC stall. Prediction contradicted by unrelated connection completions throughout blocked-write windows and by the advancing pump heartbeat.\n- Not observed: brain restart/reconnect/subscriber replay caused by a brain lifecycle transition during the sampled cold generation. Rotated logs do contain earlier generation-2/3 update cycles and their expected `BRAIN_RESUMED`/dispatch failures, but the current incidents occur with generation 0 stable.\n- Directly observed: isolated `stream-subscriber` broker connections stop draining and hit the exact per-connection 15 s watchdog. This is a brain/dispatcher net-stream path. It is not itself a child ConPTY-output marker and is not attributed to a particular PTY.\n- Still possible as a user-visible consequence: shared brain-process or Windows scheduling/resource pressure from very high subscriber/connection churn may delay several remote views at once. No CPU, memory, handle, thread-count, or per-process I/O telemetry is present in these logs or the daemon-status DTO, so resource pressure is currently unsupported rather than ruled out.\n\nRanked hypotheses and live-probe predictions\n1. HIGH — v0.34 opener fallback/retry plus unbounded dispatcher completion is producing the 20–62 s lifecycle. Prediction: a worker-stage trace will show `net_stream_opener` error or a serve subscription, then one stream-specific conn blocked exactly 15 s, client read/worker return later, followed by the 500 ms/1 s claim retry. Unrelated broker status probes remain prompt.\n2. MEDIUM — an RC/view process or remote subscriber stops draining; the server-side stream subscriber fills while its child PTY continues. Prediction: affected child PID `Read/WriteOperationCount` or byte counters and broker session output sequence continue to advance, while only the affected RC/Windows Terminal output counters or delivery timestamps pause; the poisoned conn can be joined to a controller/session only after adding attribution/stage IDs.\n3. MEDIUM-LOW — aggregate resource pressure from 4,361 subscriber attaches, 33 watchdog cancellations, 584 dead-peer 10 s dials, and coincident 30 s psyche subprocess timeouts increases dispatcher scheduling/teardown latency. Prediction: CPU, handle/thread count, context switches, or I/O latency rise across the brain/daemon/RC processes around clusters; local `daemon status --json` may show jitter but should not necessarily block for the full stall. Reducing only fallback subscriber churn should reduce stalls if causal.\n4. LOW/UNRESOLVED — child/ConPTY pauses. Prediction: only the victim child's output/I/O counters and broker `OutputLog::append` sequence stop, while daemon status, other sessions, and RC transport remain prompt. Current logs have no child-output timestamps, so this cannot be confirmed from stderr.\n5. LOW — pump/peer-dial or brain-lifecycle wedge. Prediction would be a stale 5 s heartbeat, `PUMP_IPC_READER` exit/spawn or `BRAIN_UP` generation change, and correlated delays across independent broker calls. Current evidence contradicts those predictions. `PUMP_PEER_FAIL` is source-designed as concurrent, per-peer isolation; the 10 s peer bound is not a serial broker-wide stop.\n\nFocused fix and validation design\n- Fix the source of avoidable fallback subscribers: `first_line` must fall back to `peek_first_line` only for an explicit N-1/unsupported-opener reply. A transient opener error, row race, or local IPC failure should release the v0.34 retryable claim rather than create a replay subscriber. Do not treat every `Err` as protocol unsupported.\n- Bound dispatcher worker reads independently of broker writes. Generalize the pump's split-reader/channel-deadline approach, or add an owned/cancelable dispatcher carrier, so a worker exits within a small deterministic bound after its server connection is poisoned. Do not use Windows `PIPE_NOWAIT`; the source documents its mid-frame corruption risk.\n- Add correlation telemetry at the missing boundary: worker ID + stream ID + family + stage (`opener-query`, `fallback-subscribe`, `serve-subscribe`, `read-enter`, `read-error`, `return`, `retry`) and client-side conn identity. This will determine whether the poisoned conn is the temporary peek subscriber or the family serve subscriber and exactly where post-poison time is spent.\n- Regression test A: on a fully v0.34 broker, inject a transient opener-RPC error with a large retained stream. Assert no fallback `stream-sub-attach` occurs; the claim re-enters at the documented 500 ms backoff and succeeds through the pinned opener.\n- Regression test B (Windows, production path, shortened `SPT_BRAIN_WRITE_DEADLINE_MS=400`): create a non-draining replay subscriber; assert server poison near 400 ms, dispatcher worker failure within a tight post-poison bound, exactly bounded retries, and no parked worker/connection leak.\n- Regression test C: during B, keep an unrelated session viewer draining and assert its sequence/frame count advances across the entire incident. The existing `conn_blackhole_lifecycle` test provides the right unrelated-viewer invariant but should be extended to the redispatch/fallback seam.\n- Live read-only probe: sample `spt daemon status --json` every 250 ms (documented read-only/ungated), record existing passive viewer/output sequence timestamps, and snapshot child PID, affected `spt rc` PID, and Windows Terminal PID CPU plus read/write operation/byte counters without sending input or resize. Prompt status + progressing unrelated viewer + one frozen view means isolated RC/transport; prompt status + victim child counters flat means child/ConPTY; all control replies and viewers delayed together means shared broker/IPC; child output advancing while RC/WT stalls means local render/pipe transport. Preserve all current sessions and use naturally occurring output; deterministic injected markers belong in a disposable integration harness, not these live PTYs.","files":[{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log","description":"Current cold-generation broker/brain stderr. Contains exact wall_ms/mono_ms connection lifecycle, 15 s `CONN_WRITE_POISONED` events, stream subscriber attachments, dispatch failures, unrelated connection progress, peer failures, and endpoint/psyche activity."},{"path":"C:/Users/decid/AppData/Local/spt-core/logs/daemon.stderr.log.1","description":"Rotated prior-generation evidence: generation 2/3 brain update starts, `BRAIN_RESUMED`, initial dispatch pipe failures, and peer-pump failures. Useful contrast to the stable current generation."},{"path":"C:/Users/decid/AppData/Local/spt-core/daemon.pid","description":"Current daemon/broker PID breadcrumb: 82868. Source explicitly says PID files are breadcrumbs, while socket ping is authoritative liveness."},{"path":"C:/Users/decid/AppData/Local/spt-core/brain.ready","description":"Current brain readiness record: PID 47668, generation 0, executable hash c4284a14db2ae23f48e1322514f6c929fd135e76799e5680cf8921edf742d3c3."},{"path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-heartbeat.json","description":"Pump heartbeat advanced repeatedly during investigation, disproving a contemporaneous pump-loop stall."},{"path":"C:/Users/decid/AppData/Local/spt-core/identity/pump-ops.json","description":"Current pump operation owner agrees with brain PID/generation (PID 47668, generation 0)."},{"path":"C:/Users/decid/AppData/Local/spt-core/owlery/*/info.json","description":"Read-only per-endpoint runtime records used for online state, process IDs, adapters, controller state, and last-active stamps."},{"path":"crates/spt-daemon/src/conn.rs","description":"Windows bounded framed-write mechanism. `BrokerConn` uses a 15 s absolute write/gate deadline, `CancelIoEx`, `DisconnectNamedPipe`, poison/retire semantics, watchdog thread, and lifecycle stamps. Server-side cancellation does not itself impose a client dispatcher read deadline."},{"path":"crates/spt-daemon/src/broker.rs","description":"Defines `BRAIN_WRITE_DEADLINE=15s`, per-connection subscriber/controller writers, controller-only stall-evict accounting, and role attribution. Explains why stream-subscriber poison events need not appear in `stall_evict_count`."},{"path":"crates/spt-daemon/src/brain.rs","description":"Ordinary `Brain` clients use blocking unbounded reads; only the peer pump uses a split reader and channel `recv_timeout`. This is the key source-grounded post-poison completion asymmetry."},{"path":"crates/spt-daemon/src/dispatch.rs","description":"v0.34 dispatcher: opener RPC, catch-all `Err` fallback to `peek_first_line` subscriber, worker family subscriptions, claim retry state, 500 ms exponential backoff, max three attempts, 100 ms poll."},{"path":"crates/spt-daemon/src/attach.rs","description":"Remote attach serve loop and ordinary blocking `Brain::read_event` use; establishes the RC/view path and the observability needed to distinguish transport from child output."},{"path":"crates/spt-daemon/src/pump/mod.rs","description":"Five-second heartbeat, per-peer isolation, concurrent dial handling, 10 s peer failures, and the separate 30 s pump IPC deadline. Current heartbeat progress and lack of restarts disfavor this path."},{"path":"crates/spt-daemon/src/brainproc.rs","description":"500 ms brain heartbeat, broker liveness probe, sessions reap, and spawning of dispatcher/pump consumers. No current generation transition accompanied incidents."},{"path":"crates/spt/src/cli.rs","description":"`spt daemon status --json` is the non-mutating status surface. Fields include running/PID, net status, pump heartbeat, broker image/staleness, controller stall-evict tally, peer health when available, and local endpoint rows."},{"path":"CHANGELOG.md","description":"v0.34.0 release contract: redispatch/finished-session replay fix; v0.33.0 comparison."},{"path":"docs/KNOWN-HAZARDS.md","description":"Source-grounded history for Windows blocked writes (7.36/7.39) and v0.34 terminal-stream redispatch changes (7.41)."},{"path":"crates/spt-daemon/tests/redispatch.rs","description":"Existing production-path redispatch tests; correct seam for opener fallback/retry regression coverage."},{"path":"crates/spt-daemon/tests/conn_blackhole_lifecycle.rs","description":"Existing Windows-shaped blackhole test with an unrelated draining viewer; correct base invariant for proving per-connection rather than broker-wide impact."}],"architecture":"Observed runtime flow and failure boundary:\n\n```mermaid\nflowchart LR\n  PTY[Hosted child / ConPTY] --> OL[Broker OutputLog]\n  OL --> C[Controller/viewer broker conn]\n  Peer[Remote peer QUIC stream] --> NS[Broker Net StreamLog]\n  NS -->|replay/live frames| BC[BrokerConn: per physical named pipe]\n  BC -->|15 s bounded write| DB[Dispatcher Brain client]\n  DB --> FL[first_line: opener RPC]\n  FL -->|any Err in v0.34| PF[peek_first_line fallback subscriber]\n  FL -->|classified| FW[family worker / serve_attach etc.]\n  PF --> UR[ordinary unbounded read_event]\n  FW --> UR\n  BC -->|watchdog at 15 s| PC[CancelIoEx + DisconnectNamedPipe + poison]\n  PC --> TC[server transport-close immediately]\n  UR -->|variable later error/return| DF[DISPATCH Failed]\n  DF -->|500 ms then 1 s, max 3| DB\n  Pump[Peer pump split Brain] --> RT[reader thread + recv_timeout]\n```\n\nThe important isolation boundary is `BrokerConn`: every observed poison is keyed to one conn and one `stream-subscriber stream=N`. The broker remains able to accept and complete other IPC connections while that conn is blocked. The variable 20–62 s user-visible-shaped lifecycle is not one timer; it is the fixed 15 s server write bound plus unbounded/variable dispatcher client completion and v0.34 retry/fallback. The PTY path is adjacent but not joined by current log attribution, so a stream timeout cannot honestly be assigned to webbie, Doyle, or another PTY without the proposed worker/endpoint correlation telemetry."},"status":"success","type":"result"},"isError":false,"timestamp":1784247724940}}
{"type":"message","id":"4b517547","parentId":"7c7da788","timestamp":"2026-07-17T00:22:04.964Z","message":{"role":"assistant","content":[],"api":"openai-codex-responses","provider":"openai-codex","model":"gpt-5.6-sol","usage":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0,"totalTokens":0,"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0,"total":0}},"stopReason":"aborted","errorMessage":"Request was aborted","errorId":134221824,"timestamp":1784247724960}}
{"type":"custom","customType":"session_exit","data":{"reason":"dispose","kind":"normal","recordedAt":"2026-07-17T00:29:04.980Z"},"id":"b00f1b75","parentId":"4b517547","timestamp":"2026-07-17T00:29:04.980Z"}
