@rockysoft/opencode-hybrid-workflow 1.0.0 → 1.0.1
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/README.md +5 -5
- package/docs/CHANGELOG.md +5 -0
- package/package.json +1 -1
- package/tui.js +22 -15
package/README.md
CHANGED
|
@@ -125,7 +125,7 @@ Confirm installation of Playwright and Firefox.
|
|
|
125
125
|
|
|
126
126
|

|
|
127
127
|
|
|
128
|
-
Each reviewer gets an isolated browser for a captured frontend and disposable API fixtures. Ask the agent to add [repeatable browser checks](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.
|
|
128
|
+
Each reviewer gets an isolated browser for a captured frontend and disposable API fixtures. Ask the agent to add [repeatable browser checks](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.1/docs/browser-evidence.md). Live backend testing stays with your application's integration tests.
|
|
129
129
|
|
|
130
130
|

|
|
131
131
|
|
|
@@ -175,10 +175,10 @@ Remove the old plugin entries from `opencode.json` and `cli.json` before adding
|
|
|
175
175
|
|
|
176
176
|
</details>
|
|
177
177
|
|
|
178
|
-
[Advanced configuration](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.
|
|
178
|
+
[Advanced configuration](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.1/docs/configuration.md) · [MIT license](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.1/LICENSE) · [Third-party notices](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.1/THIRD_PARTY_NOTICES.md)
|
|
179
179
|
|
|
180
|
-
For deterministic Vitest projects, see [faster verification](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.
|
|
180
|
+
For deterministic Vitest projects, see [faster verification](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.1/docs/verification.md). Full checks remain the default; eligible projects automatically choose full checks when measured optimization overhead is higher.
|
|
181
181
|
|
|
182
|
-
[Repeatable browser checks](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.
|
|
182
|
+
[Repeatable browser checks](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.1/docs/browser-evidence.md) capture changed frontend states once for both reviewers, while keeping their independent inspections and approval decisions.
|
|
183
183
|
|
|
184
|
-
[Engineering handoffs](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.
|
|
184
|
+
[Engineering handoffs](https://cdn.jsdelivr.net/npm/@rockysoft/opencode-hybrid-workflow@1.0.1/docs/engineering-handoffs.md) give implementation agents concrete responsibility and state ownership. Reviewers check the code against the plan; small changes keep existing patterns, with no file-length limits or extra planning phase.
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Release notes
|
|
2
2
|
|
|
3
|
+
## 1.0.1
|
|
4
|
+
|
|
5
|
+
- Refresh usage sidebar settings immediately after saving Hybrid setup, including reviewer models, effort, reviewer count and telemetry location. No restart is needed for these sidebar changes.
|
|
6
|
+
- Discard reads from the previous settings so late results cannot replace the refreshed display.
|
|
7
|
+
|
|
3
8
|
## 1.0.0
|
|
4
9
|
|
|
5
10
|
- Carry reviewed project ownership hints into subsequent tasks, with project/source bindings and automatic invalidation when files change. Hints never replace source inspection or approval.
|
package/package.json
CHANGED
package/tui.js
CHANGED
|
@@ -17,7 +17,26 @@ import { legacyTotals } from './sidebar/legacy-totals.mjs';
|
|
|
17
17
|
export default Plugin.define({
|
|
18
18
|
id: 'Hybrid-Workflow',
|
|
19
19
|
setup(context) {
|
|
20
|
-
|
|
20
|
+
function usageSource() {
|
|
21
|
+
const config = readSettings(context.options);
|
|
22
|
+
const settings = {
|
|
23
|
+
...config,
|
|
24
|
+
efforts: {
|
|
25
|
+
astra: config.codex?.variant ?? config.codex?.effort ?? 'default',
|
|
26
|
+
opus: config.claude?.variant ?? config.claude?.effort ?? 'default'
|
|
27
|
+
},
|
|
28
|
+
models: {
|
|
29
|
+
astra: config.codex?.model,
|
|
30
|
+
opus: config.claude?.model
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
settings,
|
|
35
|
+
read: createReader(settings)
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const [source, setSource] = createSignal(usageSource());
|
|
39
|
+
const preferences = createSettingsUI(context, () => setSource(usageSource()));
|
|
21
40
|
context.keymap.layer(() => ({
|
|
22
41
|
mode: 'global',
|
|
23
42
|
commands: [{
|
|
@@ -44,19 +63,6 @@ export default Plugin.define({
|
|
|
44
63
|
const firstRun = setTimeout(() => {
|
|
45
64
|
void preferences.show(true);
|
|
46
65
|
}, 750);
|
|
47
|
-
const config = readSettings(context.options);
|
|
48
|
-
const settings = {
|
|
49
|
-
...config,
|
|
50
|
-
efforts: {
|
|
51
|
-
astra: config.codex?.variant ?? config.codex?.effort ?? 'default',
|
|
52
|
-
opus: config.claude?.variant ?? config.claude?.effort ?? 'default'
|
|
53
|
-
},
|
|
54
|
-
models: {
|
|
55
|
-
astra: config.codex?.model,
|
|
56
|
-
opus: config.claude?.model
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
const read = createReader(settings);
|
|
60
66
|
const [saved, update] = context.storage.store('totals', {
|
|
61
67
|
initial: legacyTotals(context.app.channel)
|
|
62
68
|
});
|
|
@@ -66,6 +72,7 @@ export default Plugin.define({
|
|
|
66
72
|
const location = createMemo(() => context.data.session.get(props.sessionID)?.location);
|
|
67
73
|
createEffect(() => {
|
|
68
74
|
const directory = location()?.directory;
|
|
75
|
+
const read = source().read;
|
|
69
76
|
let disposed = false,
|
|
70
77
|
busy = false;
|
|
71
78
|
setSnapshot(null);
|
|
@@ -190,7 +197,7 @@ export default Plugin.define({
|
|
|
190
197
|
_$setProp(_el$11, "flexDirection", "column");
|
|
191
198
|
_$insertNode(_el$12, _el$13);
|
|
192
199
|
_$insertNode(_el$13, _el$14);
|
|
193
|
-
_$insert(_el$13, () => card.model ?? settings.models[card.who], _el$14);
|
|
200
|
+
_$insert(_el$13, () => card.model ?? source().settings.models[card.who], _el$14);
|
|
194
201
|
_$insert(_el$13, () => card.effort, null);
|
|
195
202
|
_$insertNode(_el$15, _el$16);
|
|
196
203
|
_$insert(_el$15, () => number(card.total), _el$16);
|