@azure-id/orc 0.56.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +219 -0
- package/README-id.md +49 -107
- package/README.md +694 -719
- package/bin/build-agents.js +18 -11
- package/bin/cli.js +33699 -29855
- package/bin/onboarding-content.js +0 -3
- package/bin/test-run.js +491 -0
- package/bin/verify-contracts.js +4330 -3277
- package/bin/verify-package.js +76 -6
- package/bin/webui/api.js +1201 -1163
- package/bin/webui/app.html +210 -198
- package/bin/webui/css/06-responsive.css +120 -108
- package/bin/webui/css/panels/extra.css +29 -0
- package/bin/webui/css/panels/lanes.css +134 -0
- package/bin/webui/css/panels/settings.css +79 -3
- package/bin/webui/css/panels/wait.css +123 -0
- package/bin/webui/fixtures/extra.js +2036 -1934
- package/bin/webui/fixtures/flow.js +2 -2
- package/bin/webui/fixtures/index.js +510 -486
- package/bin/webui/fixtures/lanes.js +218 -0
- package/bin/webui/fixtures/settings.js +261 -34
- package/bin/webui/fixtures/stats.js +3 -3
- package/bin/webui/fixtures/wait.js +97 -0
- package/bin/webui/i18n/TERMS.md +135 -134
- package/bin/webui/i18n/en/extra.json +345 -313
- package/bin/webui/i18n/en/lanes.json +29 -0
- package/bin/webui/i18n/en/nav.json +21 -19
- package/bin/webui/i18n/en/overview.json +2 -0
- package/bin/webui/i18n/en/settings.json +16 -5
- package/bin/webui/i18n/en/wait.json +41 -0
- package/bin/webui/i18n/id/extra.json +345 -313
- package/bin/webui/i18n/id/lanes.json +29 -0
- package/bin/webui/i18n/id/nav.json +21 -19
- package/bin/webui/i18n/id/overview.json +2 -0
- package/bin/webui/i18n/id/settings.json +15 -4
- package/bin/webui/i18n/id/wait.json +41 -0
- package/bin/webui/js/01-i18n.js +151 -149
- package/bin/webui/js/panels/extra.js +3199 -3011
- package/bin/webui/js/panels/lanes.js +259 -0
- package/bin/webui/js/panels/overview.js +10 -0
- package/bin/webui/js/panels/settings.js +149 -3
- package/bin/webui/js/panels/wait.js +253 -0
- package/package.json +39 -39
- package/templates/agents/MODEL-MAPPING.md +23 -35
- package/templates/agents/orc-executor-opus-4-7-high.md +1 -1
- package/templates/agents/orc-executor-opus-4-7-med.md +1 -1
- package/templates/agents/orc-executor-opus-4-8-high.md +1 -1
- package/templates/agents/orc-executor-opus-5-high.md +1 -1
- package/templates/agents/orc-executor-opus-5-low.md +1 -1
- package/templates/agents/orc-executor-opus-5-med.md +1 -1
- package/templates/agents/orc-retro-opus-5-med.md +73 -73
- package/templates/agents/orc-retro-sonnet-5-high.md +72 -72
- package/templates/agents/orc-trace-writer-haiku-4-5.md +107 -107
- package/templates/commands/orc-route.md +1 -1
- package/templates/commands/orc-wait.md +19 -0
- package/templates/commands/orc.md +1 -1
- package/templates/hooks/orc-statusline.js +39 -0
- package/templates/skills/_shared/README.md +7 -3
- package/templates/skills/_shared/config-precedence.md +198 -0
- package/templates/skills/_shared/drift-recovery.md +1 -1
- package/templates/skills/_shared/extra-dispatch.md +159 -7
- package/templates/skills/_shared/interview.md +1 -1
- package/templates/skills/_shared/opus5-only.md +9 -7
- package/templates/skills/_shared/phases/README.md +82 -0
- package/templates/skills/{orc/references → _shared/phases}/analyst-gates.md +15 -3
- package/templates/skills/_shared/phases/execution.md +143 -0
- package/templates/skills/{orc/references → _shared/phases}/house-rules.md +13 -1
- package/templates/skills/{orc/references → _shared/phases}/intake.md +15 -2
- package/templates/skills/_shared/phases/mock-example.md +56 -0
- package/templates/skills/{orc/references → _shared/phases}/plan-handoff.md +16 -3
- package/templates/skills/_shared/phases/planning.md +135 -0
- package/templates/skills/_shared/phases/preflight.md +98 -0
- package/templates/skills/_shared/phases/review.md +53 -0
- package/templates/skills/_shared/phases/scoring.md +65 -0
- package/templates/skills/{orc/references → _shared/phases}/security-checklist.md +12 -1
- package/templates/skills/_shared/phases/security.md +55 -0
- package/templates/skills/_shared/phases/ship.md +88 -0
- package/templates/skills/{orc/references/stop-and-resume.md → _shared/phases/stop-resume.md} +169 -160
- package/templates/skills/_shared/phases/summary.md +48 -0
- package/templates/skills/_shared/phases/testgen.md +51 -0
- package/templates/skills/{orc/references/trace-protocol.md → _shared/phases/trace.md} +49 -6
- package/templates/skills/_shared/phases/verify.md +70 -0
- package/templates/skills/{orc/references → _shared/phases}/wave-grouping.md +14 -2
- package/templates/skills/{orc/references → _shared/phases}/wiki-consult.md +13 -1
- package/templates/skills/_shared/read-ladder.md +48 -0
- package/templates/skills/_shared/wait.md +240 -0
- package/templates/skills/context-combiner/SKILL.md +214 -187
- package/templates/skills/orc/README.md +148 -150
- package/templates/skills/orc/SKILL.md +75 -358
- package/templates/skills/orc/config.md +137 -389
- package/templates/skills/orc/examples/full-run-mock.md +1 -1
- package/templates/skills/orc/references/effort-and-mode.md +16 -18
- package/templates/skills/orc/references/phases/intake.md +47 -0
- package/templates/skills/orc/references/phases/integration.md +19 -0
- package/templates/skills/orc/references/preflight-report.md +4 -4
- package/templates/skills/orc/references/ultra-mode.md +117 -123
- package/templates/skills/orc/schemas/planning-output.md +279 -279
- package/templates/skills/orc/subskills/orc-planner/SKILL.md +260 -264
- package/templates/skills/orc/subskills/orc-pr/stack-gate.md +4 -1
- package/templates/skills/orc-aftermath/SKILL.md +158 -136
- package/templates/skills/orc-analyze/SKILL.md +252 -220
- package/templates/skills/orc-analyze/references/branching.md +51 -51
- package/templates/skills/orc-analyze/references/thin-input.md +1 -1
- package/templates/skills/orc-analyze-mini/SKILL.md +128 -112
- package/templates/skills/orc-boundary/SKILL.md +249 -208
- package/templates/skills/orc-brainstorm/SKILL.md +377 -339
- package/templates/skills/orc-budget/SKILL.md +248 -225
- package/templates/skills/orc-challenge/README.md +1 -1
- package/templates/skills/orc-challenge/SKILL.md +298 -255
- package/templates/skills/orc-challenge/examples/council-full-roster.md +1 -1
- package/templates/skills/orc-claude/SKILL.md +221 -199
- package/templates/skills/orc-diy/README.md +2 -1
- package/templates/skills/orc-diy/SKILL.md +132 -68
- package/templates/skills/orc-diy/references/blocks/analyze.md +1 -1
- package/templates/skills/orc-diy/references/compile.md +21 -7
- package/templates/skills/orc-diy/references/flow-schema.md +2 -2
- package/templates/skills/orc-doc/SKILL.md +49 -7
- package/templates/skills/orc-explain/SKILL.md +24 -0
- package/templates/skills/orc-export/SKILL.md +31 -5
- package/templates/skills/orc-fast/SKILL.md +218 -185
- package/templates/skills/orc-grill/SKILL.md +238 -207
- package/templates/skills/orc-handoff/SKILL.md +223 -204
- package/templates/skills/orc-learn/SKILL.md +181 -156
- package/templates/skills/orc-mini/SKILL.md +47 -24
- package/templates/skills/orc-pact/SKILL.md +255 -218
- package/templates/skills/orc-pattern/SKILL.md +154 -124
- package/templates/skills/orc-poly/SKILL.md +242 -216
- package/templates/skills/orc-poly/references/gather.md +1 -1
- package/templates/skills/orc-pr-driver/SKILL.md +196 -167
- package/templates/skills/orc-pr-driver/references/orc-run-split.md +1 -1
- package/templates/skills/orc-pr-setup/SKILL.md +212 -184
- package/templates/skills/orc-quick/README.md +2 -2
- package/templates/skills/orc-quick/SKILL.md +51 -13
- package/templates/skills/orc-quick/references/dispatch-gate.md +2 -3
- package/templates/skills/orc-retro/SKILL.md +249 -222
- package/templates/skills/orc-retro/examples/retro-mock.md +171 -171
- package/templates/skills/orc-route/SKILL.md +188 -165
- package/templates/skills/orc-verify/SKILL.md +103 -84
- package/templates/skills/orc-wait/SKILL.md +163 -0
- package/templates/skills/orc-wiki/SKILL.md +60 -206
- package/templates/skills/orc-wiki/references/phases/phase-0.md +71 -0
- package/templates/skills/orc-wiki/references/phases/phase-1.md +35 -0
- package/templates/skills/orc-wiki/references/phases/phase-2.md +52 -0
- package/templates/skills/orc-wiki/references/phases/phase-3.md +57 -0
- package/templates/skills/orc-wiki/references/phases/phase-3c.md +36 -0
- package/templates/agents/orc-advisor-fable-5.md +0 -50
- package/templates/agents/orc-analyst-fable-5.md +0 -115
- package/templates/agents/orc-judge-fable-5.md +0 -79
- package/templates/agents/orc-planner-fable-5.md +0 -152
- package/templates/agents/orc-reviewer-fable-5.md +0 -57
- package/templates/skills/_shared/fable5-override.md +0 -56
- package/templates/skills/orc-diy/references/blocks/execution.md +0 -42
- package/templates/skills/orc-diy/references/blocks/mock-example.md +0 -22
- package/templates/skills/orc-diy/references/blocks/planning.md +0 -34
- package/templates/skills/orc-diy/references/blocks/review.md +0 -18
- package/templates/skills/orc-diy/references/blocks/scoring.md +0 -16
- package/templates/skills/orc-diy/references/blocks/security.md +0 -25
- package/templates/skills/orc-diy/references/blocks/ship.md +0 -25
- package/templates/skills/orc-diy/references/blocks/summary.md +0 -18
- package/templates/skills/orc-diy/references/blocks/testgen.md +0 -17
- package/templates/skills/orc-diy/references/blocks/trace.md +0 -28
- package/templates/skills/orc-diy/references/blocks/verify.md +0 -25
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,225 @@ Format: `### v<version> — <title> _(<date>)_`.
|
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
+
### v1.1.0 - the wait, and a window ORC can finally see _(2026-08-31)_
|
|
14
|
+
|
|
15
|
+
**Still on the unscoped `orc` package?** Do this once first — your `orc upgrade`
|
|
16
|
+
is the pre-v0.56.0 one and cannot install itself. Full detail in the CAUTION at
|
|
17
|
+
the top of this file.
|
|
18
|
+
|
|
19
|
+
- **Step 1 — release the command from the old package:** `npm uninstall -g orc`
|
|
20
|
+
- **Step 2 — install the current package:** `npm i -g @azure-id/orc`
|
|
21
|
+
- **Step 3 — re-apply it to your project:** `orc update`
|
|
22
|
+
|
|
23
|
+
**Do not use `npm i -g -f`.** Full detail in v0.56.0 below.
|
|
24
|
+
|
|
25
|
+
Until now the only thing in ORC that could see how full your 5-hour and 7-day
|
|
26
|
+
windows were was the statusline, which drew a string and threw the numbers away.
|
|
27
|
+
So a lane started a wave with no idea it was about to run out, and the wave
|
|
28
|
+
stopped in the middle.
|
|
29
|
+
|
|
30
|
+
- **`/orc-wait`** - a wall-clock pause that does not lose the run. Type
|
|
31
|
+
`/orc-wait 30` and ORC writes the hand-back, waits in detached hops, and picks
|
|
32
|
+
the run up where it stopped. **The waiting costs zero tokens** - a detached
|
|
33
|
+
command does it, and no model runs. It never dispatches an agent to wait,
|
|
34
|
+
because an agent would spend the very window you are waiting for.
|
|
35
|
+
- **Three modes, and they differ in one thing only: how much finishes first.**
|
|
36
|
+
`safe` finishes the current wave and loses nothing. `soft` stops at the next
|
|
37
|
+
turn but **forces** the checkpoint - and if that write fails it does not stop.
|
|
38
|
+
`hard` stops at the next turn with the hand-back alone.
|
|
39
|
+
- **`/orc-wait block <reason>`** - the veto. It tells ORC not to stop this run at
|
|
40
|
+
all. The reason is required, it is never written to your config, and it is
|
|
41
|
+
re-printed with its age at every gate it suppresses.
|
|
42
|
+
- **`orc usage check`** - one reader, three answers: `0` ok, `1` low, `2`
|
|
43
|
+
unknown. **The worst window decides.** A weekly window at 96% is not a green
|
|
44
|
+
light because the 5-hour one is at 20%.
|
|
45
|
+
- **`orc ui` gains a Wait panel** - your windows, a wait in progress, a standing
|
|
46
|
+
block and its age. It cannot start a wait: a wait lives in a Claude Code
|
|
47
|
+
session, and the panel never runs a lane.
|
|
48
|
+
- **Every lane supports it, in one release.** 24 spines carry the contract, each
|
|
49
|
+
naming what it checkpoints and where its safe point is - generated from one
|
|
50
|
+
registry, so a spine cannot disagree with the CLI.
|
|
51
|
+
|
|
52
|
+
> [!CAUTION]
|
|
53
|
+
> **`/orc-wait ... hard` can lose work.** It stops at the first moment ORC can
|
|
54
|
+
> act - it does not wait for the current wave, phase or gate to finish, and it
|
|
55
|
+
> dispatches nothing, so it writes `RESUME.md` and skips the checkpoint. What
|
|
56
|
+
> you can lose: a dispatch that was in flight (its file writes may still land,
|
|
57
|
+
> but its return is never validated), the checkpoint, and that phase's trace
|
|
58
|
+
> packet. Use `hard` when losing the current wave is cheaper than losing the
|
|
59
|
+
> window; use `soft` when you can spare a few seconds; use no keyword at all
|
|
60
|
+
> when you can wait for the wave to end.
|
|
61
|
+
>
|
|
62
|
+
> **A wait longer than one hour ends the prompt cache.** The first turn after it
|
|
63
|
+
> re-reads your whole context at full input price, exactly when your quota is
|
|
64
|
+
> lowest. When the context is large ORC stops and offers a fresh session
|
|
65
|
+
> instead - **it cannot clear its own context**, only offer the swap.
|
|
66
|
+
>
|
|
67
|
+
> **`/orc-wait block` moves the risk to you, deliberately.** It suppresses every
|
|
68
|
+
> computed stop for the rest of the run. If the window empties mid-wave, the
|
|
69
|
+
> wave stops in the middle and you keep the pieces.
|
|
70
|
+
>
|
|
71
|
+
> **Nothing here is on by default.** `usage_gate` ships `off` and
|
|
72
|
+
> `wait_default_mode` ships `ask`. A fresh install behaves exactly as it did
|
|
73
|
+
> before this release. You choose every stop.
|
|
74
|
+
|
|
75
|
+
**Five new config keys**, every default off or ask: `usage_gate` (`off`),
|
|
76
|
+
`usage_stop_pct` (`10`), `wait_default_mode` (`ask`), `wait_hop_minutes` (`30`),
|
|
77
|
+
`wait_max_hops` (`5`).
|
|
78
|
+
|
|
79
|
+
**One honest limit:** a reading is only as fresh as the last statusline render,
|
|
80
|
+
so during a long dispatch it goes stale. Anything older than 30 minutes reads as
|
|
81
|
+
`unknown`, and **unknown never stops a run**.
|
|
82
|
+
|
|
83
|
+
### v1.0.0 - config, phases and calls stop being prose _(2026-08-30)_
|
|
84
|
+
|
|
85
|
+
**Still on the unscoped `orc` package?** Do this once before anything else -
|
|
86
|
+
your `orc upgrade` is the pre-v0.56.0 one and it cannot install itself:
|
|
87
|
+
|
|
88
|
+
- **Step 1 - release the command from the old package:** `npm uninstall -g orc`
|
|
89
|
+
- **Step 2 - install the current package:** `npm i -g @azure-id/orc`
|
|
90
|
+
- **Step 3 - re-apply it to your project:** `orc update`
|
|
91
|
+
|
|
92
|
+
**Do not use `npm i -g -f`.** It overwrites the command file and leaves the
|
|
93
|
+
superseded package installed underneath, owning nothing and updated by nothing.
|
|
94
|
+
Full detail in v0.56.0 below.
|
|
95
|
+
|
|
96
|
+
**Nothing you configure changes meaning, and no command you run is renamed.**
|
|
97
|
+
The user-visible half of this release is three: a wider Opus 5 band in the score
|
|
98
|
+
table, a foreign worker that stalls twice now steps aside for the rest of the
|
|
99
|
+
run, and `orc diy init` starts on `opus-5-high` instead of `opus-4-8-high`.
|
|
100
|
+
Everything else is ORC finally reading its own payload the way it has been
|
|
101
|
+
telling you to read yours.
|
|
102
|
+
|
|
103
|
+
**Start with what it cost, because the framing was wrong.** This release was
|
|
104
|
+
planned as a deduplication, and it is not one. The payload went from **208 files
|
|
105
|
+
/ 26,507 lines to 291 files / 33,204 lines** — bigger on both counts. Of the
|
|
106
|
+
sixteen waves, four measured as the class they were declared (fewer lines) and
|
|
107
|
+
**most measured as C: correctness, at a small cost in lines**. The prose that
|
|
108
|
+
was copied 14-59 times did not disappear; it moved into one canonical file per
|
|
109
|
+
phase and the copies became pointers, and pointers plus a manifest cost more
|
|
110
|
+
bytes than the duplication did. What changed is not the size. **It is that there
|
|
111
|
+
is now exactly one place to fix each of these things, and a lint that fails when
|
|
112
|
+
a copy grows back.**
|
|
113
|
+
|
|
114
|
+
**Config stops being prose.** Every lane used to restate the config it reads and
|
|
115
|
+
re-derive the precedence around it, and `orc/SKILL.md` declared 8 keys while the
|
|
116
|
+
`/orc` directory referenced 32 - so the per-lane key list already existed and
|
|
117
|
+
was already 75% wrong. Config is now a **rank-ordered registry with declared
|
|
118
|
+
families**, and a lane asks ONE command what resolved:
|
|
119
|
+
|
|
120
|
+
- **`orc lane config <lane> [--json]`** answers "what did this lane's config
|
|
121
|
+
resolve to", with every shadow and inertness ALREADY WORDED. A lane never
|
|
122
|
+
merges `.claude/orc.config.yaml` itself again, and never re-derives a
|
|
123
|
+
precedence. **A rank below a resolved rank is not read at all.**
|
|
124
|
+
- **Six rank states, and they are the CLI's**: `resolved`, `partly-resolved`,
|
|
125
|
+
`not-read`, `inert`, `demoted`, `absent`. `absent` and `not-read` are
|
|
126
|
+
different facts - one rank was consulted and declined, the other was never
|
|
127
|
+
looked at - and rendering them the same way erases the difference between
|
|
128
|
+
"your setting did nothing" and "your setting was never read".
|
|
129
|
+
- A **two-way lint**: a key no lane reads is an error, and so is a lane naming a
|
|
130
|
+
key the CLI cannot write. Ten keys are permanently empty and are on a NAMED
|
|
131
|
+
allowlist - they are operating keys of the `orc extra` bridge, which a lane
|
|
132
|
+
never names - so an empty list is an ANSWER and not a to-do.
|
|
133
|
+
- The **config file is grouped by family**, ranked inside a contested one, with
|
|
134
|
+
the sentence that makes the grouping mean anything: *ranks compare only inside
|
|
135
|
+
a family.* Your existing `orc.config.yaml` is untouched - only the comments
|
|
136
|
+
around it move, and only on your next `orc config set`.
|
|
137
|
+
- The `fable5_*` role override is **removed**. It held exactly three keys, and
|
|
138
|
+
the retired-key mechanism reports them by name rather than silently ignoring
|
|
139
|
+
them.
|
|
140
|
+
|
|
141
|
+
**Phases stop being copied.** One canonical copy per phase in
|
|
142
|
+
`_shared/phases/`, and each lane spine becomes a **manifest** over that library:
|
|
143
|
+
|
|
144
|
+
- **`orc lane phases <lane> [--json]`** answers which shared phases a lane runs,
|
|
145
|
+
in what order, which layers to read, and when. A row names a FILE **or** a
|
|
146
|
+
HEADING - never both, never neither - and a two-way lint means neither a
|
|
147
|
+
missing row nor a phase-shaped heading nobody declared can survive a commit.
|
|
148
|
+
- **A manifest names a file, a layer and at most a heading. Never a line
|
|
149
|
+
number** - a stored line number is a wrong line number one edit later.
|
|
150
|
+
- **`orc-diy` became a consumer of that library** rather than a parallel copy of
|
|
151
|
+
it.
|
|
152
|
+
|
|
153
|
+
**Calls stop being restated.** Eleven CLI invocations were re-described 14-59
|
|
154
|
+
times each, every copy re-wording its own exit codes:
|
|
155
|
+
|
|
156
|
+
- **`orc lane calls [--all] [--json]`** is the one catalogue: the command, what
|
|
157
|
+
it answers, its exit codes, its cost, when to call it, **what a lane must do
|
|
158
|
+
when the answer is empty**, and what it must never do.
|
|
159
|
+
- `_shared/read-ladder.md` - "reading more is not understanding more", which ORC
|
|
160
|
+
has told you about your code since v0.4.0 - now covers reading **ORC's own
|
|
161
|
+
payload**, so a manifest of pointers does not become more round trips than the
|
|
162
|
+
prose it replaced.
|
|
163
|
+
|
|
164
|
+
**The three things that actually change behaviour.**
|
|
165
|
+
|
|
166
|
+
- **The score to model table is six bands and ends `opus-5-low [65,90)` ·
|
|
167
|
+
`opus-5-med [90,100]`.** Two bands in six now need an Opus 5 main session
|
|
168
|
+
where one in eight did. The `opus5_only` ladder is two bands, `[0,90)` low and
|
|
169
|
+
`[90,100]` medium, sharing that same round-90 edge.
|
|
170
|
+
- **A foreign worker that stalls twice in one run is DEMOTED** to the bottom of
|
|
171
|
+
its families for the rest of that run - or once a live attempt has been quiet
|
|
172
|
+
for `extra_demote_stale_min` minutes. **Two clocks, never merged**, each with
|
|
173
|
+
its own key and its own zero, and setting either to `0` disables that clock
|
|
174
|
+
and says so. It **writes no new measurement**: every fact comes from the
|
|
175
|
+
journal already on disk, the verdict is recomputed from disk on every read,
|
|
176
|
+
and the only thing stored is the human half - a promote or a hand demotion,
|
|
177
|
+
with its reason, deleted with the run. It never writes your config, never
|
|
178
|
+
auto-promotes, and never changes WHAT runs: same score, same declared files,
|
|
179
|
+
same acceptance criteria, same Claude agent. Two keys, `extra_demote_after`
|
|
180
|
+
and `extra_demote_stale_min`; a promote is a **watermark, not a mute**.
|
|
181
|
+
- **`orc diy init` now defaults `session_tier` to `opus-5-high`.** The old
|
|
182
|
+
default could not outrank the top two bands, so a wizard-built flow arrived
|
|
183
|
+
with a third of its ladder already collapsed onto one agent before you had
|
|
184
|
+
chosen anything. The clip itself was correct and announced - it is now
|
|
185
|
+
something you opt into by naming a lower tier. Existing configs are untouched.
|
|
186
|
+
|
|
187
|
+
**`orc ui` renders all of it, and decides none of it.**
|
|
188
|
+
|
|
189
|
+
- **Settings gains "Who decides what"** - the rank ladder for every contested
|
|
190
|
+
family, showing which rank ANSWERED and why every other one did not. The panel
|
|
191
|
+
never walks the ladder itself and never names a contested key.
|
|
192
|
+
- **Every setting row now names the lanes that read it**, so "I changed this,
|
|
193
|
+
so what did I just change?" has an answer on the same screen. An empty list is
|
|
194
|
+
an answer and keeps its row.
|
|
195
|
+
- **A new Lanes panel** with two tabs: the shared phases a lane runs, in order,
|
|
196
|
+
and the whole call catalogue with its exit codes. A lane that keeps its
|
|
197
|
+
pipeline in its own spine says so - a blank card would read as a failed load.
|
|
198
|
+
- **Extra ▸ Recovery gains the demotion row**: the counter (at zero too), both
|
|
199
|
+
clocks, the evidence, and **Promote, which requires a reason**. There is
|
|
200
|
+
deliberately no Demote button.
|
|
201
|
+
- **`orc doctor` gains `lane-keys-drifted`** - an installed spine out of step
|
|
202
|
+
with this CLI's config model, which is precisely the state in which a lane
|
|
203
|
+
falls back to resolving config itself and gets a shadowed key wrong, silently.
|
|
204
|
+
|
|
205
|
+
**The test suite, and an honest caveat.** `npm test` went from 596 to **669
|
|
206
|
+
tests** and from a single global concurrency to **pools by resource class**
|
|
207
|
+
(pure 14 / spawn 4 / net 2 / heavy 1) under one global cap. A flake that cost
|
|
208
|
+
four waves their gate was diagnosed: every `extra` test arms its fixture with a
|
|
209
|
+
real `orc extra ping`, and rung 1 of that ping is a hardcoded 3-second wall
|
|
210
|
+
clock in product code with no test seam - so on a loaded box a loopback answer
|
|
211
|
+
misses it, the ping falls through to the 20-second rung 2, and the assertion
|
|
212
|
+
fails at ~23 s on a different file every run. There is now one seam over every
|
|
213
|
+
probe budget; unset, shipped behaviour is byte-identical, and nothing in ORC
|
|
214
|
+
ever sets it. **The caveat that travels with that fix:** three consecutive green
|
|
215
|
+
full runs are the gate, not proof. The same box is green with the seam OFF, so
|
|
216
|
+
an idle run cannot tell a fixed flake from a quiet afternoon.
|
|
217
|
+
|
|
218
|
+
**Two things this release deliberately did NOT do**, both measured before being
|
|
219
|
+
refused:
|
|
220
|
+
|
|
221
|
+
- **`orc-diy/references/blocks/` was not deleted.** The plan said 448 lines
|
|
222
|
+
would go. Counted: 270 relocate, **178 stay**, 0 delete. Five of those blocks
|
|
223
|
+
have no counterpart anywhere in the payload, and 233 of the 448 lines are
|
|
224
|
+
composition prose describing what a phase becomes under each config value -
|
|
225
|
+
something no shared phase file contains, because `/orc` has no such choice to
|
|
226
|
+
express.
|
|
227
|
+
- **20 of 21 lane spines did not move their phase prose out.** The saving was
|
|
228
|
+
measured and refused: those lanes loop, everything genuinely shared had
|
|
229
|
+
already left, and relocating their own wording would have bought a round trip
|
|
230
|
+
per phase for the same bytes. Only `orc-wiki` qualified, and it moved.
|
|
231
|
+
|
|
13
232
|
### v0.56.1 - a worker that is alive and doing nothing _(2026-08-28)_
|
|
14
233
|
|
|
15
234
|
**Still on the unscoped `orc` package?** Do this once before anything else -
|
package/README-id.md
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
*Terima permintaan → pahami → rencanakan → beri nilai → kerjakan paralel → periksa → uji → kirim.*
|
|
8
8
|
|
|
9
9
|

|
|
10
|
-

|
|
11
11
|

|
|
12
12
|

|
|
13
13
|

|
|
14
14
|

|
|
15
15
|
|
|
16
|
-
**Versi terbaru:
|
|
16
|
+
**Versi terbaru: v1.0.0** · diperbarui 30-08-2026 · [daftar perubahan lengkap](CHANGELOG.md)
|
|
17
17
|
|
|
18
18
|
**Ada di npm: [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)** — `npm i -g @azure-id/orc`
|
|
19
19
|
|
|
@@ -619,113 +619,55 @@ Bacalah sebagai catatan putaran itu, bukan sebagai audit terkini:
|
|
|
619
619
|
**Riwayat lengkap: [CHANGELOG.md](CHANGELOG.md)** — atau `orc changelog`, yang
|
|
620
620
|
hanya mencetak yang lebih baru dari versi yang Anda punya.
|
|
621
621
|
|
|
622
|
-
###
|
|
622
|
+
### v1.0.0 - konfigurasi, fase, dan panggilan berhenti jadi prosa _(30-08-2026)_
|
|
623
623
|
|
|
624
|
-
**Masih memakai paket `orc` yang tanpa awalan?** Lakukan ini sekali dulu
|
|
624
|
+
**Masih memakai paket `orc` yang tanpa awalan?** Lakukan ini sekali dulu —
|
|
625
625
|
`orc upgrade` Anda adalah versi sebelum v0.56.0 dan tidak bisa memasang dirinya
|
|
626
|
-
sendiri
|
|
627
|
-
|
|
628
|
-
- **Langkah 1
|
|
629
|
-
- **Langkah 2
|
|
630
|
-
- **Langkah 3
|
|
631
|
-
|
|
632
|
-
**
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
- **`
|
|
645
|
-
|
|
646
|
-
apa
|
|
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
|
-
menolong.
|
|
672
|
-
|
|
673
|
-
- **`orc upgrade` mengusir paket lama SEBELUM mencoba sumber mana pun.**
|
|
674
|
-
Diumumkan, tidak pernah diam-diam. Pengenalannya lewat KEPEMILIKAN - paket
|
|
675
|
-
yang tidak mendaftarkan perintah `orc` tidak pernah disentuh.
|
|
676
|
-
- **Registry npm dicoba lebih dulu**, lalu tarball, lalu spesifikasi `github:`.
|
|
677
|
-
- **`--force` tetap ada untuk satu kasus yang cocok saja** - berkas perintah
|
|
678
|
-
yatim yang tidak dimiliki paket mana pun.
|
|
679
|
-
- **`orc doctor` melaporkan `legacy-global-package` dengan namanya.** Sengaja
|
|
680
|
-
tidak bisa diperbaiki `--fix`: jangkauan `--fix` hanya `.claude/` proyek ini.
|
|
681
|
-
|
|
682
|
-
### v0.55.1 — ORC sudah ada di npm _(27-08-2026)_
|
|
683
|
-
|
|
684
|
-
**ORC diterbitkan dengan nama [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc).**
|
|
685
|
-
Pemasangan lewat GitHub tetap jalan, dan isi paketnya tidak berubah sama sekali —
|
|
686
|
-
ini hanya soal cara memasangnya sekarang punya nama.
|
|
687
|
-
|
|
688
|
-
- **`npm i -g @azure-id/orc`** untuk memasang, dan
|
|
689
|
-
**`npm i -g @azure-id/orc@latest`** untuk memperbarui. `orc upgrade` sudah
|
|
690
|
-
melakukan keduanya sejak dulu dan tetap begitu.
|
|
691
|
-
- **Pemasangan dari GitHub sekarang jadi cadangan**, bukan cara utama — tetap ada
|
|
692
|
-
di bagian "Cara mulai", dilipat, untuk fork atau kalau Anda mengunci sebuah
|
|
693
|
-
branch.
|
|
694
|
-
|
|
695
|
-
### v0.51.0 — alat yang sudah Anda punya, dan koneksi yang membuktikan dirinya _(22-08-2026)_
|
|
696
|
-
|
|
697
|
-
**Koneksi `orc extra`.** Dua alat coding yang bisa diberi pekerjaan oleh ORC
|
|
698
|
-
adalah **program di komputer Anda sendiri**, bukan situs — jadi sekarang keduanya
|
|
699
|
-
jadi penyedia kelas satu, punya kotak hubungkan masing-masing, dan daftar model
|
|
700
|
-
yang dibangun dari apa yang benar-benar bisa dijangkau akun Anda.
|
|
701
|
-
|
|
702
|
-
- **Program bisa saja belum terpasang, dan panelnya mengatakan itu lebih dulu** —
|
|
703
|
-
empat keadaan, dihitung setiap kali, tidak pernah diingat. Alat yang belum
|
|
704
|
-
terpasang tidak diberi tombol yang tidak mungkin berhasil, dan `orc extra add`
|
|
705
|
-
menolak sambil menyebutkan perintah pemasangannya.
|
|
706
|
-
- **ORC membuka terminal Anda sendiri dan menjalankan pemasangannya di sana.**
|
|
707
|
-
Bukan pekerjaan tersembunyi di latar — di dalamnya, permintaan hak
|
|
708
|
-
administrator, kegagalan izin, unduhan 80 MB, dan tunggu empat puluh detik
|
|
709
|
-
semuanya terlihat sama: *tidak terjadi apa-apa*. Perintahnya tampil sebelum
|
|
710
|
-
tombolnya, jendelanya milik Anda, dan **ORC tidak pernah meminta hak
|
|
711
|
-
administrator**. Tidak ada terminal yang bisa dibuka? Anda tetap dapat
|
|
712
|
-
perintahnya untuk disalin.
|
|
713
|
-
- **Uji koneksi sekarang bertingkat**: programnya ada · cukup baru · sudah masuk
|
|
714
|
-
akun · model apa yang bisa dijangkau akun ini · dan, hanya kalau Anda minta,
|
|
715
|
-
**apakah pesan sungguhan benar-benar dijawab** — lengkap dengan waktu tempuh,
|
|
716
|
-
jawabannya, dan empat jenis hitungan token yang tidak pernah dicampur.
|
|
717
|
-
- **Model yang terdaftar bukan berarti model yang bekerja.**
|
|
718
|
-
`orc extra models <nama> --test <id>` adalah satu-satunya cara membedakannya.
|
|
719
|
-
- **Kedua alat lokal itu tidak memberi tahu model mana yang menjawab**, jadi ORC
|
|
720
|
-
menuliskan kalimat itu, bukan membiarkan kolom kosong.
|
|
721
|
-
- **`extra_enabled` tidak bisa dinyalakan sebelum ada yang menjawab** — dulu ia
|
|
722
|
-
akan terbaca NYALA padahal artinya MATI.
|
|
723
|
-
|
|
724
|
-
Sebelumnya: **v0.50.0 — pekerjaan yang berjalan di tempat lain** (`orc extra`),
|
|
725
|
-
**v0.49.1 — dewan penilai, dan `--json` yang berhenti membuang isinya**,
|
|
726
|
-
**v0.49.0 — dokumen itu folder, dan berkasnya hasil rakitan** (`/orc-doc`), dan
|
|
727
|
-
**v0.48.1 — satu berkas untuk satu hal, dan dokumen yang bisa diselesaikan**.
|
|
728
|
-
[Baca semuanya di daftar perubahan](CHANGELOG.md).
|
|
626
|
+
sendiri. Rincian lengkapnya ada di blok PERHATIAN di bagian atas berkas ini.
|
|
627
|
+
|
|
628
|
+
- **Langkah 1 — lepaskan perintahnya dari paket lama:** `npm uninstall -g orc`
|
|
629
|
+
- **Langkah 2 — pasang paket yang sekarang:** `npm i -g @azure-id/orc`
|
|
630
|
+
- **Langkah 3 — terapkan lagi ke proyek Anda:** `orc update`
|
|
631
|
+
|
|
632
|
+
**Tidak ada pengaturan yang berubah artinya, dan tidak ada perintah yang diganti
|
|
633
|
+
namanya.** Tiga hal benar-benar mengubah perilaku; sisanya adalah ORC yang
|
|
634
|
+
akhirnya membaca muatannya sendiri dengan cara yang selama ini ia ajarkan kepada
|
|
635
|
+
Anda untuk membaca kode Anda.
|
|
636
|
+
|
|
637
|
+
- **Tabel skor ke model berakhir di `opus-5-low [65,90)` · `opus-5-med
|
|
638
|
+
[90,100]`.** Dua dari enam pita kini ingin sesi utama Opus 5, dari sebelumnya
|
|
639
|
+
satu dari delapan.
|
|
640
|
+
- **Pekerja luar yang macet dua kali dalam satu run akan menepi** untuk sisa run
|
|
641
|
+
itu. Dua jam, tidak pernah digabung; ia tidak menulis pengukuran baru dan tidak
|
|
642
|
+
pernah menulis konfigurasi Anda; sebuah promote adalah tanda batas, bukan
|
|
643
|
+
membisukan, dan perlu alasan.
|
|
644
|
+
- **`orc diy init` kini berbawaan `opus-5-high`.** Bawaan yang lama diam-diam
|
|
645
|
+
meruntuhkan sepertiga atas tangga Anda ke satu agen sebelum Anda memilih
|
|
646
|
+
apa pun.
|
|
647
|
+
|
|
648
|
+
Bagian strukturalnya - **konfigurasi, fase, dan panggilan berhenti jadi prosa**:
|
|
649
|
+
|
|
650
|
+
- **`orc lane config <lane>`** menjawab konfigurasi sebuah lane sudah menjadi
|
|
651
|
+
apa, dengan setiap bayangan sudah dikalimatkan. Sebuah lane tidak pernah lagi
|
|
652
|
+
menggabungkan berkas konfigurasi sendiri, dan **peringkat di bawah peringkat
|
|
653
|
+
yang sudah menjawab tidak dibaca sama sekali**.
|
|
654
|
+
- **`orc lane phases <lane>`** dan **`orc lane calls --all`** melakukan hal yang
|
|
655
|
+
sama untuk pustaka fase bersama dan katalog panggilan CLI - masing-masing satu
|
|
656
|
+
salinan kanonis, dari sebelumnya 14-59 pengulangan per panggilan.
|
|
657
|
+
- **`orc ui` menampilkan semuanya**: tangga peringkat yang menunjukkan
|
|
658
|
+
pengaturan mana yang MENJAWAB, lane mana yang membaca tiap kunci, panel Lane
|
|
659
|
+
baru, dan baris penurunan di Extra ▸ Recovery beserta tombol Promote.
|
|
660
|
+
`orc doctor` mendapat `lane-keys-drifted`.
|
|
661
|
+
|
|
662
|
+
**Ini tidak membuat muatannya lebih kecil** - 208 berkas menjadi 291, 26.507
|
|
663
|
+
baris menjadi 33.204. Sebagian besar gelombang terukur sebagai kebenaran, bukan
|
|
664
|
+
penghapusan duplikasi. Yang berubah adalah kini ada satu tempat untuk memperbaiki
|
|
665
|
+
masing-masing hal ini, dan ada lint yang gagal saat sebuah salinan tumbuh
|
|
666
|
+
kembali. Dua penghapusan yang direncanakan **diukur lalu ditolak**, dan flake
|
|
667
|
+
yang membuat empat gelombang gagal akhirnya didiagnosis - dengan catatan jujur
|
|
668
|
+
bahwa tiga run hijau adalah gerbangnya, bukan buktinya.
|
|
669
|
+
|
|
670
|
+
**Entri lengkap: [CHANGELOG.md](CHANGELOG.md).**
|
|
729
671
|
|
|
730
672
|
---
|
|
731
673
|
|