DSHarness Systems Dissection Pinned baseline 47f943859b · 36 verified / 0 in progress / 36 chapters
中文
Synthesis·Chapter 33

Strengths, Costs, and Design Tradeoffs

Which complexity buys real composability, and which complexity remains debt

VerifiedUpstream 47f943859bScope: Synthesize only from verified chapters instead of repeating the project’s own claims.

Conclusion: complexity earns its keep only when it makes a boundary enforceable

DeepSeek Harness spends complexity on explicit composition, lifecycle ownership, durable facts, commit points, scoped policy, and independently replaceable product surfaces. That complexity is justified when it creates a checkable property: a candidate is not published before it is valid, a side-effect intent is durable before execution, a replacement retracts what it owned, or a replay derives the same model-visible history. The same machinery becomes debt when an operator must understand another layer but receives no stronger authority, failure attribution, recovery boundary, or interoperability seam in return.

The verified chapters do not support a single verdict such as “more modular is always better.” They describe a portfolio of coupled choices. Each choice below is evaluated by four questions: what it makes possible, what recurring cost it creates, how it fails when its premise is violated, and under which operating conditions that exchange is rational.

1. Decision matrix: what each layer buys and what must remain true

TradeoffStrengthRecurring costFailure modeBest fit
Configuration-programmed plugin treeProducts, providers, and session capabilities vary without forking one central applicationEffective topology is distributed across patches, service dependencies, scopes, and module resolutionA wrong identity, missing service, or incomplete disposer makes replacement partial or prevents activationOperator-controlled deployments with several product profiles and live replacement
Small Loop plus event-driven policyOne Turn/Step protocol serves prompt, provider, retry, planning, and tool policyBehavior must be traced through ordered waterfalls and scoped registrationsA listener uses the wrong event mode or mutates after the commit boundary, so reconstructed and live behavior divergeMany independently owned policies that must share one execution path
Append-only truth plus projectionsResume, replay, history, and multiple clients can derive from one durable fact streamMore events, explicit provenance, checkpointing, repair, and compatibility workA cache or UI window is mistaken for authority, or a side effect occurs before its durable prefixLong-lived sessions where auditability and crash recovery matter
Specialized capability contractsEach surface can put stability at the layer that actually owns its semanticsSimilar-looking features expose different lifetime, authority, and replay rulesA common label such as “planning,” “tool,” or “memory” is treated as a common guaranteeSystems integrating heterogeneous local, remote, model-facing, and user-facing capabilities
Transactional tools with bounded overlapPolicy and durable commit remain ordered while safe external work overlapsHead-of-line blocking, classification metadata, two scheduler scopes, and more cancellation statesA tool overstates concurrency safety, changes definition after classification, or a local cap is mistaken for global admission controlI/O-heavy tool batches whose authoritative history must remain deterministic
Layered approval, guards, and file policyOne-shot escalation and monotonic vetoes constrain selected mutations without hard-coding one UIOperators must distinguish visibility, standing policy, approval, guard, runner, and filesystem observationA convenience preset is treated as enforcement, or file-effect confinement is described as general isolationTrusted local operation with explicit capability selection and reviewable escalation
Compaction as a logged surface replacementContext cost can shrink without deleting the canonical event historyExtra token accounting, a summarizer call, legal-cut rules, and possible semantic lossValidation ownership is bypassed so an invalid cut or stale summary reaches commit, a close failure leaves a detectable lock, or a summary is mistaken for durable knowledgeLong conversations where bounded model context and exact audit history are both required
Layer-specific recovery protocolsRetries, cancellation, crash repair, and the DeepSeek provider's last-good configuration preserve explicit uncertaintyMore barriers, error vocabularies, drain phases, and latency before side effectsUnknown external outcomes are rewritten as success, or an uncooperative body outlives cancellationStateful executions where false certainty is worse than delayed completion
Composable delegation and workflowOne-shot, continuable, forked, scripted, and iterative work can reuse Agent and Session primitivesSeveral ownership, settlement, result, and persistence models coexistDelegation is mistaken for a global scheduler, durable job queue, shared team state, or automatic reducerDecomposable work with explicit parent aggregation and bounded child budgets
Typed API and a second browser plugin treeCarriers, business objects, UI slots, and React bindings can evolve at separate seamsReconnect generations, lazy residency, gap repair, scope pruning, and client boot all need agreementTransport reachability is treated as authentication, or one wedged dependency blocks a consistent whole-page bootFirst-party product surfaces shipped with the Host and backed by replayable sessions
Multiple observability planesDurable facts, operational logs, projections, query, and opt-in telemetry answer different questionsNo single universal trace; privacy, retention, and correlation must be decided per planeA partial UI window becomes a whole-session claim, or uploaded content is assumed to be automatically redactedDeployments willing to label evidence scope and configure disclosure deliberately
Evaluation rule

Count an abstraction as an asset only when its owner, commit point, failure vocabulary, and replacement boundary can be named. Package count and interface count are not benefits by themselves.

2. Plugin composition: one variability language, one larger operational surface

The effective tree is assembled from ordered bundle, profile, home, command-line, launcher, and telemetry layers. Stable row identity determines replacement, not textual proximity. Boot prepares the Host, mounts the tree, waits for Loader settlement, audits activation, and disposes a partial root on failure.PROFILE-COMPOSEBOOT-TRANSACTION

Live updates reread mutable layers and replace a generation while protecting inputs from reference contamination. Scope layers make the context of registration determine both who can see a contribution and which fiber must retract it.PROFILE-LIVEDESIGN-SCOPED-LAYERS

Tradeoff assessment

The strength is real deployment-level substitution rather than a compile-time interface around one fixed product. The cost is that configuration becomes executable architecture. This is justified when profiles and session capabilities genuinely vary; it is excessive for a single immutable composition whose operators cannot inspect the effective tree or diagnose activation and disposal.

3. Stable Loop: policy modularity moves complexity into ordering semantics

The default Loop owns Turn and Step boundaries, claim timing, request dispatch, tool continuation, cancellation, and final closure. Its runtime invariant independently reconstructs messages and the request header before a marked request leaves the process.LOOP-TURN-STATELOOP-REQUEST-INVARIANT

Prompt assembly merges scope, variables, tools, sections, contexts, and a final waterfall, then reapplies completeness and suppression constraints. Provider routes use an all-or-nothing registry, while adapter selection and iteration failures become terminal protocol chunks rather than arbitrary thrown shapes.PROMPT-ASSEMBLY-PIPELINELLM-ADAPTER-REGISTRYLLM-FAILURE-BOUNDARY

Inference

A small Loop reduces the number of competing orchestration paths, not the total semantic surface. Correctness migrates into event mode, listener order, scope, and “before versus after next” contracts. The design pays off when policy owners need independent release and teardown; it becomes hard to operate when no generated map or composition test shows which listener can alter one request.

4. Durable facts and derived state: replayability costs continuous bookkeeping

Session append snapshots and freezes a candidate, validates its Surface effect, runs synchronous precommit dispatch, and treats insertion into the log as the commit point; later observer failures are contained. A projection checkpoint explicitly declares itself a fold shortcut rather than authority.SESSION-APPEND-COMMITPROJ-AUTHORITY-LAYERS

Checkpoint policy flushes the preceding Step at each agent/pre-step, wraps llm/stream so the complete request prefix is flushed before downstream model-stream construction and adapter dispatch, and flushes before each top-level tool body. Projection-cache restore uses watermarks and falls back to a full read when identity or range claims are unsafe.LOG-CHECKPOINT-POLICYPROJ-CACHE-LADDER

Tradeoff assessment

The architecture buys explainable model history, cold resume, and multiple derived views. It also turns every model-visible mutation into compatibility work: event vocabulary, provenance, cut semantics, checkpoints, and client stitching must evolve together. The decisive failure mode is authority inversion—letting a faster cache, projection, or resident object overwrite the durable facts it was meant to summarize.

5. Specialized contracts: refusing a universal facade preserves meaning

Plan selection commits immediately when no Turn is open; during an open Turn it waits for the next accepted in-turn pre-Step. Goal mutation checks an exact live reference, synchronously commits goal/change to the log, synchronizes the cache, and only then publishes goal/changed. Todo owns a narrower list invariant. They share Session events but do not share one lifetime, authority, or driver.PLANSTATE-PLAN-BOUNDARYPLANSTATE-GOAL-COMMITPLANSTATE-TODO-INVARIANT

The same pattern appears in extension surfaces. MCP bridges only selected external tool semantics and documents lossy or provider-owned boundaries, while native, code, and both modes change model presentation without creating three equivalent execution engines.CAP-MCP-LIMITSCODEMODE-MODES

Tradeoff assessment

Preserving different contracts prevents a lowest-common-denominator abstraction from hiding authority and durability. The price is conceptual load: users must learn why two objects that look similar do not resume, authorize, schedule, or present results the same way. This is justified when the differences affect safety or reconstruction; it is debt when distinctions survive only as naming and package boundaries.

6. Tool execution and parallelism: overlap the body, serialize authority

ToolRuntime is an ordered transaction from pre-policy through monotonic guards, around execution, post-policy, normalization, finalization, and an immutable result.TOOL-PIPELINE The Loop groups calls in model order, uses exclusive calls as complete barriers, and runs a rolling pool whose bodies may overlap while finalization and durable commit advance only through a contiguous model-order prefix.PARALLEL-GROUPINGPARALLEL-ROLLING-POOL

Every committed tool/result for a started call points back to its exact call sequence; a started call can remain without a result if the scheduler itself fails.PARALLEL-DURABLE-PAIRINGPARALLEL-SCHEDULER-FAILURE Live registry replacement can reclassify unstarted calls.PARALLEL-RECLASS-TESTS The source trace exposes a separate premise: classification, ordered prepare, and later body dispatch occur at different moments.PARALLEL-GROUPINGPARALLEL-PREPAREPARALLEL-DISPATCH

Tradeoff assessment

This favors deterministic policy and replay over minimum tail latency. A fast later result may wait behind a slow earlier call, and a unary “safe with any sibling” declaration cannot express resource relationships. It fits I/O-heavy, mostly independent calls; mutating tools, shared quotas, and definition hot-swap require conservative classification or admission control outside this local scheduler.

7. Authorization and sandboxing: layered vetoes are useful only with precise claims

A guard can deny or abstain but cannot allow, so later policy cannot use the guard layer to reverse an earlier veto. Approval requests settle into a closed one-shot outcome vocabulary rather than a reusable ambient grant.APPROVAL-GUARD-CONTRACTAPPROVAL-OUTCOMES

The sandbox contract explicitly governs file effects, not network, process, syscall, device, or credential isolation. Filesystem observation protects freshness for specific tool reads, but it does not survive resume, does not observe direct filesystem service reads, and does not prove that the complete file was viewed.SANDBOX-DOC-BOUNDARYSANDBOX-OBSERVATION-LIMITS

Tradeoff assessment

The strength is composable least authority for selected mutation paths. The failure mode is semantic overclaim: calling a preset “safe” or a file policy “a sandbox” without naming what remains trusted. The design is appropriate for a trusted operator governing model-initiated actions; it is not evidence of isolation against every code path, plugin, process, or external service.

8. Compaction and memory: lower model cost without rewriting canonical history

The range selector retains a priced tail and moves only to a tool-pair-balanced cut, returning no range when the head cannot be compacted safely. Compaction records a start lock, summarizes a snapshot, rechecks stability, and either commits a strictly smaller replacement or attempts one error close; if that close itself fails, a detectable unmatched start remains.COMPACT-RANGECOMPACT-TRANSACTIONCOMPACT-COMMIT

Token-meter shadow pricing is intentionally bounded and may degrade to zero when historical context is insufficient. External memory examples are opt-in integrations whose providers own storage, models, embeddings, and recall semantics.COMPACT-SHADOW-PRICEMEMORY-MCP-BOUNDARY

Tradeoff assessment

Keeping replacement events beside the original log cleanly separates canonical history from the model's current Surface. The cost is another model call and a lossy artifact whose validity is structural, not semantic completeness. This fits long sessions with audit retention; it does not turn summaries into verified memory or guarantee that an external memory provider preserves the same provenance.

9. Recovery: preserve uncertainty instead of manufacturing success

The request header and required context are appended before a frozen provider request is returned. Crash repair distinguishes a tool that never started from one whose outcome is unknown, and closes incomplete protocol brackets without inventing a successful effect.FAILURE-CHECKPOINT-REQUEST-PREFIXFAILURE-CRASH-REPAIR

Retry records its decision before waiting and drains active recovery on disposal. Tool-batch abort stops replenishment, waits for started work, commits attributable outcomes in order, and synthesizes results only for calls known not to have started.FAILURE-RETRY-EXECUTORFAILURE-TOOL-DRAIN

DeepSeek provider configuration blocks initial registration when the complete candidate is invalid, while a later invalid live snapshot retains the complete last-good generation rather than mixing fields across generations.FAILURE-CONFIG-RESOLUTION

Tradeoff assessment

The benefit is honest convergence: replay can distinguish “failed,” “cancelled,” “not started,” and “outcome unknown.” The cost is latency and an obligation to carry uncertainty into higher-layer compensation or idempotency. This is valuable whenever external effects matter; for disposable stateless work, the same protocol depth may be more expensive than simply restarting the whole operation.

10. Orchestration: reusable child lifecycles are not a complete team runtime

A continuable child is not published until identity, descriptor, policy, seed, child materialization, and inbox acceptance succeed. Each one-shot run or continuable residency epoch emits paired lifecycle edges with a distinct run identity, while cold inspection uses bounded read concurrency.MULTIAGENT-CONTINUABLE-STARTMULTIAGENT-LIFECYCLEMULTIAGENT-LIST-CONCURRENCY

Workflow validates before publication, pairs its terminal event with result settlement, and exposes separate ceilings for concurrent children, total children, combinator size, synchronous slices, and disposal grace. Ralph then validates its terminal claim again at the TypeScript boundary.WORKFLOW-LIFECYCLEWORKFLOW-CAPSRALPH-DOUBLE-VALIDATION

Tradeoff assessment

The system offers credible building blocks for delegation with explicit ownership and settlement. It deliberately leaves aggregation policy with the parent and capacity with several local owners. This is a good fit when tasks decompose and the caller can define success; it is a poor fit if the expected product is an implicit global scheduler, durable distributed queue, shared mutable team memory, or automatic consensus.

11. API and Web UI: independent seams improve substitution and multiply consistency work

The browser RPC layer validates the outer message envelope and then lets each method validate its payload. Its Host/Origin fence rejects mismatched browser requests but explicitly does not claim user authentication.API-RPC-SCHEMASAPI-TRUST-FENCE

The browser manifest separates module delivery from plugin activation. Connection uses generations and shared backoff, but an unbounded describe call can wedge convergence; Session repair buffers forward gaps and repulls history instead of accepting discontinuity. Slot disposal recursively retracts the subtree an entry declared.WEBUI-MANIFEST-CONTRACTWEBUI-CONNECTION-GENERATIONWEBUI-SESSION-GAP-REPAIRWEBUI-SLOT-CASCADE

Tradeoff assessment

Separating carrier, business object, UI composition, and React binding prevents the component tree from becoming the runtime. The recurring cost is state reconciliation across Host facts, resident client objects, projections, and render scopes. It pays off for a first-party extensible surface; a smaller single-page client without live plugin replacement or session replay would not need the same protocol depth.

12. Observability: richer evidence creates a disclosure and interpretation budget

Telemetry defaults to disabled; full capture and feedback-triggered release have distinct admission rules. The documented upload surface includes prompts, messages, tools, file and command content, compaction, feedback, and working-directory context, with no built-in redaction rule.OBS-TELEMETRY-MODESOBS-PRIVACY-BOUNDARY

Current-session query deliberately caps one search range before the latest Step boundary and re-authorizes its result. The browser keeps only a contiguous loaded window, dropping or repairing discontinuities rather than claiming it holds the whole log.OBS-QUERY-CURRENT-BOUNDARYOBS-HISTORY-CLIENT

Tradeoff assessment

The design offers several precise views instead of one misleading “trace.” That supports diagnosis only when every answer names its plane and cut. The failure modes are privacy overreach and evidence overreach: exporting more than intended, or drawing whole-session conclusions from a bounded projection. Use the richer planes when operators can govern retention and disclosure; otherwise keep collection narrow and local.

13. Interaction effects: the choices cannot be evaluated independently

CombinationPositive interactionCompounding risk
Plugin effects × scoped registriesHot replacement and per-session composition retract exact contributionsOne incorrectly owned listener or provider survives into a new generation
Durable log × checkpoint policyReplay has an intent prefix before model and top-level tool effectsExtra flush boundaries add latency and still cannot prove an external outcome
Parallel tools × ordered commitExternal latency overlaps without changing model-visible orderHead-of-line blocking and hidden shared-resource races move to metadata and providers
Compaction × immutable historyContext shrinks while audit history remains availableConsumers may confuse a lossy Surface replacement with deletion or knowledge
Delegation × Session persistenceContinuable children can survive residency changesOne-shot providers and Jobs still have different durability and result contracts
Rich logs × telemetryFailures can be correlated from request through tool and product projectionThe same fidelity increases retention and disclosure impact
Portfolio inference

The architecture's value comes from aligned pairs, not isolated mechanisms. Plugins need effect ownership; replay needs commit points; concurrency needs an ordered authority lane; telemetry needs explicit disclosure. Removing one half often leaves the cost of the other without its guarantee.

14. Where the complexity is earned—and where it remains debt

Earned complexity signalDebt signal
One named authority and one observable commit pointTwo mutable copies reconcile by timing or convention
Replacement retracts the exact resource it publishedReload depends on process restart or leaked global mutation
Failure preserves machine-routable uncertaintyA generic success/error string erases whether work started or committed
A boundary validates the complete value it ownsSchema visibility, UI filtering, or documentation is treated as enforcement
A local limit is labeled with its true scopeA per-Step or per-run pool is advertised as global capacity control
Generated maps and invariants expose distributed semanticsOperators must reverse-engineer listener order and configuration closure after failure
Provider differences stay explicit where they change meaningA universal facade hides asymmetric errors, usage, durability, or trust
Overall judgment

The strongest parts of DeepSeek Harness turn variability into explicit protocols with commit, teardown, and replay semantics. The weakest pattern is not modularity itself but an unclosed seam: a live definition read twice, a local cap mistaken for a global one, a partial policy described too broadly, or a projection consumed without its cut. The best next work is therefore usually to close and test a named boundary, not to add another general manager around it.

15. Adoption guidance: choose the obligations together

Good fit

Adopt this style when deployments genuinely vary by provider and product surface; sessions must resume and remain explainable; tools need layered policy and durable outcomes; and operators can maintain configuration closure, lifecycle tests, projection repair, and evidence-scoped diagnostics.

Simplification boundary

Prefer a smaller direct architecture when work is short-lived and stateless, one provider and one UI are fixed, hot replacement is unnecessary, and a whole operation can be safely restarted. Copying the plugin, event, projection, and workflow layers without their replacement or recovery requirements would retain the cognitive cost while discarding the reason they exist.

Chapter verification checklist

  • Used only evidence already present in the public catalog and cited by verified Chapters 01–32.
  • Added no new evidence record; after Chapters 31 and 32 passed audit, added direct reconciliation citations for sandbox scope and proof tiers.
  • Separated source-backed facts from cross-chapter inference and design assessment.
  • For every named tradeoff, stated the strength, recurring cost, failure mode, and conditions under which it is justified.
  • Kept local scheduler, sandbox, projection, transport, and telemetry guarantees within their verified scope.
  • Completed the second reconciliation pass after Chapters 31 and 32 passed audit.

My Learning Notes

Autosaved only in this browser. Nothing is uploaded or committed. Export Markdown whenever you want to keep a copy.