Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
cae2ff5
chore: stage adaptive orchestration default
seonghobae Aug 15, 2026
9277db7
ci: apply and verify adaptive orchestration default
seonghobae Aug 15, 2026
0ace275
chore(ci): remove failed self-modifying writer workflow
seonghobae Aug 15, 2026
7ead4ac
chore(ci): remove failed branch mutation script
seonghobae Aug 15, 2026
1f44f0e
test: stage ScopeWeave adaptive default regression
seonghobae Aug 16, 2026
82d7d76
feat: stage ScopeWeave adaptive default implementation
seonghobae Aug 16, 2026
5e28c5b
ci: apply and verify ScopeWeave adaptive default
seonghobae Aug 16, 2026
d2fabe4
chore(ci): remove self-modifying branch workflow
seonghobae Aug 16, 2026
ea46005
chore(ci): remove temporary test staging script
seonghobae Aug 16, 2026
49e093d
chore(ci): remove temporary mutation script
seonghobae Aug 16, 2026
c571218
test(ai): require adaptive orchestration default
seonghobae Aug 16, 2026
241084b
test(ai): register adaptive orchestration regression
seonghobae Aug 16, 2026
d96f964
feat(ai): default planning calls to adaptive orchestration
seonghobae Aug 16, 2026
720c8c5
test(ai): lock orchestration coverage contract
seonghobae Aug 16, 2026
2485000
test(ai): cover orchestration transport boundaries
seonghobae Aug 16, 2026
3521f87
docs(ai): record adaptive orchestration contract
seonghobae Aug 16, 2026
f4f4cf8
docs(ai): record adaptive orchestration behavior
seonghobae Aug 16, 2026
3c4a060
chore(branch): reconcile adaptive orchestration work with protected d…
seonghobae Aug 16, 2026
177e2a1
test(ai): require explicit adaptive orchestration mode
seonghobae Aug 16, 2026
5a6afdd
feat(ai): delegate planning execution to adaptive mode
seonghobae Aug 16, 2026
f0bf67f
docs(ai): document adaptive orchestration default
seonghobae Aug 16, 2026
0c89b91
docs(ai): record adaptive orchestration mode
seonghobae Aug 16, 2026
8f4ef0b
docs(ai): add adaptive orchestration doctoring trace
seonghobae Aug 16, 2026
8a3df95
merge: reconcile adaptive orchestrator with current develop
seonghobae Aug 16, 2026
6e1c89a
docs: preserve current changelog during orchestrator reconcile
seonghobae Aug 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- Production planning-analysis requests now explicitly select contextual-orchestrator
`auto` mode, delegating route/conduct execution policy to the shared
orchestration service without weakening ScopeWeave's authenticated,
fail-closed transport and response-boundary controls.
- Accepted XML whitespace before exact Microsoft Project element delimiters
while preserving the linear, regex-free import scanner and rejecting
attributes, longer names, non-XML whitespace, nested unmatched blocks, and
Expand Down
37 changes: 37 additions & 0 deletions docs/doctoring/contextual-orchestrator-auto-default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Contextual-orchestrator adaptive planning default

## Status

Active pull-request evidence. This record does not describe protected `develop` until the pull request is integrated.

## Decision boundary

ScopeWeave owns the meaning, authorization, and presentation of a planning-analysis request. The shared `contextual-orchestrator` service owns provider/model selection and the depth/topology of execution. Production ScopeWeave requests therefore send `orchestration_mode: "auto"` explicitly instead of relying on an implicit gateway default or selecting `route`/`conduct` locally.

The binding dependency evidence verified for this slice is protected `ContextualWisdomLab/contextual-orchestrator` `main` commit `6841b71935e0b7cb98fb52bcb4709cc5100c8d87`. At that revision, the `/v1/chat/completions` contract accepts `orchestration_mode` and permits `auto`, `route`, and `conduct`.

This decision does **not** promise a specific provider, model, worker count, topology, verifier strategy, or cost heuristic. Those remain shared-service policy and may evolve behind its versioned contract.

## Security and standalone behavior

The change preserves the protected ScopeWeave orchestrator boundary: authenticated canonical provider origin, HTTPS outside explicit loopback development, bounded messages, 120-second request timeout, bounded streamed provider responses, sanitized failures, and deterministic text only under explicit `SCOPEWEAVE_DEV=1` development mode. No provider credential or caller-controlled execution policy is added.

## TDD and branch-safety evidence

The feature branch originally contained a self-modifying write-capable workflow on a tree that had fallen behind protected `develop`. Continuing from it would have replaced later protected orchestrator hardening. That control path was removed and the branch was reconciled non-destructively with protected `develop@28420da358f57be5e85be3660251e39b85e1cc94` before product work resumed.

On the reconciled tree, test commit `177e2a12e1f6be32c5a9b91379f92cf1170a71c8` first required `orchestration_mode: "auto"` in the existing production transport regression. Source commit `5a6afdd9f26994987e3d9ba3b85a8dd95f06a7e7` then added the field while preserving the existing fail-closed request boundary. Exact-current-head hosted evidence remains authoritative for merge readiness.

## Rollback

Rollback removes the explicit `orchestration_mode` request field, its regression expectation, this evidence record, the matching production-contract text, and the changelog entry together. Rollback must not restore the discarded self-modifying workflow or stale pre-hardening orchestrator source.

## APA 7th references

Contextual Wisdom Lab. (2026). *contextual-orchestrator* (Commit 6841b71935e0b7cb98fb52bcb4709cc5100c8d87) [Computer software]. GitHub.

Nielsen, S., Cetin, E., Schwendeman, P., Sun, Q., Xu, J., & Tang, Y. (2025). *Learning to orchestrate agents in natural language with the Conductor*. arXiv. https://doi.org/10.48550/arXiv.2512.04388

Sakana AI. (2026). *Sakana Fugu: Multi-agent system as a model*. https://sakana.ai/fugu/

Xu, J., Sun, Q., Schwendeman, P., Nielsen, S., Cetin, E., & Tang, Y. (2025). *TRINITY: An evolved LLM coordinator*. arXiv. https://doi.org/10.48550/arXiv.2512.04695
11 changes: 11 additions & 0 deletions docs/orchestrator-production.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,17 @@ endpoint is absent. That variable must never be set in staging or production.

## Orchestration responsibility

ScopeWeave explicitly sends `orchestration_mode: "auto"` together with the
configured model and validated messages on production briefing requests. The
current protected `ContextualWisdomLab/contextual-orchestrator` `main` contract
verified for this change, commit
`6841b71935e0b7cb98fb52bcb4709cc5100c8d87`, accepts `auto`, `route`, and
`conduct` as orchestration modes. ScopeWeave chooses `auto` as its default so
execution policy can be optimized centrally without coupling this product to a
specific provider, worker count, topology, verifier pattern, or cost heuristic.
Those internal choices remain `contextual-orchestrator` authority and are not a
ScopeWeave compatibility promise.

ScopeWeave intentionally sends only a versioned OpenAI-compatible request to
the orchestration service. Model selection, single-model versus multi-agent
allocation, task decomposition, role-specific reasoning effort, recursion
Expand Down
6 changes: 5 additions & 1 deletion server/orchestrator.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,11 @@ export async function chat(messages) {
'content-type': 'application/json',
authorization: `Bearer ${configuration.token}`,
},
body: JSON.stringify({ model: OC_MODEL, messages: safeMessages }),
body: JSON.stringify({
model: OC_MODEL,
orchestration_mode: 'auto',
messages: safeMessages,
}),
signal: AbortSignal.timeout(ORCHESTRATOR_TIMEOUT_MS),
});
} catch {
Expand Down
1 change: 1 addition & 0 deletions tests/unit/orchestrator.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ try {
assert.ok(calls[0].init.signal instanceof AbortSignal);
assert.deepEqual(JSON.parse(calls[0].init.body), {
model: 'nvidia/nemotron-3-super-120b-a12b',
orchestration_mode: 'auto',
messages: [{ role: 'user', content: 'status' }],
});

Expand Down
Loading