@xingular/harness 1.0.0 → 1.1.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/CHANGELOG.md +33 -5
- package/README.md +70 -19
- package/dist/cli.js +10321 -5785
- package/dist/sdk/agents/builtin.d.ts +2 -0
- package/dist/sdk/agents/builtin.js +34 -0
- package/dist/sdk/agents/narrow.d.ts +13 -0
- package/dist/sdk/agents/narrow.js +29 -0
- package/dist/sdk/agents/profiles.d.ts +80 -0
- package/dist/sdk/agents/profiles.js +221 -0
- package/dist/sdk/annotations/bridge.d.ts +42 -0
- package/dist/sdk/annotations/bridge.js +264 -0
- package/dist/sdk/annotations/capture.d.ts +116 -0
- package/dist/sdk/annotations/capture.js +308 -0
- package/dist/sdk/annotations/delivery.d.ts +72 -0
- package/dist/sdk/annotations/delivery.js +130 -0
- package/dist/sdk/annotations/inspect.d.ts +10 -0
- package/dist/sdk/annotations/inspect.js +33 -0
- package/dist/sdk/annotations/isolated.d.ts +6 -0
- package/dist/sdk/annotations/isolated.js +51 -0
- package/dist/sdk/annotations/pageScript.d.ts +28 -0
- package/dist/sdk/annotations/pageScript.js +570 -0
- package/dist/sdk/annotations/part.d.ts +10 -0
- package/dist/sdk/annotations/part.js +144 -0
- package/dist/sdk/annotations/queue.d.ts +4 -0
- package/dist/sdk/annotations/queue.js +40 -0
- package/dist/sdk/annotations/serverMethods.d.ts +3 -0
- package/dist/sdk/annotations/serverMethods.js +62 -0
- package/dist/sdk/annotations/store.d.ts +160 -0
- package/dist/sdk/annotations/store.js +386 -0
- package/dist/sdk/browser/index.d.ts +14 -3
- package/dist/sdk/browser/index.js +11 -4
- package/dist/sdk/browser/serverMethods.d.ts +3 -0
- package/dist/sdk/browser/serverMethods.js +7 -0
- package/dist/sdk/browser/session.d.ts +1 -0
- package/dist/sdk/browser/session.js +45 -9
- package/dist/sdk/cli.js +19 -11
- package/dist/sdk/core/bus.js +1 -1
- package/dist/sdk/core/env.d.ts +1 -1
- package/dist/sdk/core/env.js +1 -1
- package/dist/sdk/doctor/serverMethods.d.ts +3 -0
- package/dist/sdk/doctor/serverMethods.js +8 -0
- package/dist/sdk/harness.d.ts +15 -0
- package/dist/sdk/harness.js +44 -5
- package/dist/sdk/history/recall.js +8 -8
- package/dist/sdk/history/serverMethods.d.ts +3 -0
- package/dist/sdk/history/serverMethods.js +8 -0
- package/dist/sdk/hub/cli.d.ts +1 -1
- package/dist/sdk/hub/cli.js +1 -1
- package/dist/sdk/hub/schema.d.ts +1 -1
- package/dist/sdk/hub/serverMethods.d.ts +3 -0
- package/dist/sdk/hub/serverMethods.js +11 -0
- package/dist/sdk/index.d.ts +10 -0
- package/dist/sdk/index.js +7 -0
- package/dist/sdk/mcp/connections.js +14 -7
- package/dist/sdk/mcp/serverMethods.d.ts +3 -0
- package/dist/sdk/mcp/serverMethods.js +22 -0
- package/dist/sdk/plugins/builtin.d.ts +1 -0
- package/dist/sdk/plugins/builtin.js +128 -33
- package/dist/sdk/plugins/builtinRegistry.d.ts +53 -0
- package/dist/sdk/plugins/builtinRegistry.js +49 -0
- package/dist/sdk/plugins/cli.d.ts +1 -1
- package/dist/sdk/plugins/cli.js +4 -3
- package/dist/sdk/prompt/compile.d.ts +5 -2
- package/dist/sdk/prompt/compile.js +25 -8
- package/dist/sdk/refine/cli.d.ts +1 -1
- package/dist/sdk/refine/cli.js +2 -2
- package/dist/sdk/refine/serverMethods.d.ts +3 -0
- package/dist/sdk/refine/serverMethods.js +20 -0
- package/dist/sdk/server/methods.js +9 -86
- package/dist/sdk/server/params.d.ts +4 -0
- package/dist/sdk/server/params.js +11 -0
- package/dist/sdk/sessions/contracts.d.ts +17 -0
- package/dist/sdk/sessions/contracts.js +42 -3
- package/dist/sdk/sessions/planMode.d.ts +5 -2
- package/dist/sdk/sessions/planMode.js +12 -3
- package/dist/sdk/sessions/reasoningSummaries.d.ts +2 -2
- package/dist/sdk/sessions/reasoningSummaries.js +3 -3
- package/dist/sdk/sessions/registry.d.ts +1 -0
- package/dist/sdk/sessions/registry.js +4 -1
- package/dist/sdk/sessions/runIndex.js +7 -7
- package/dist/sdk/sessions/runStore.js +3 -1
- package/dist/sdk/sessions/runner.js +2 -2
- package/dist/sdk/sessions/sessions.d.ts +17 -5
- package/dist/sdk/sessions/sessions.js +79 -12
- package/dist/sdk/sessions/sideQuestionServerMethods.d.ts +3 -0
- package/dist/sdk/sessions/sideQuestionServerMethods.js +19 -0
- package/dist/sdk/sessions/sideQuestions.d.ts +66 -0
- package/dist/sdk/sessions/sideQuestions.js +290 -0
- package/dist/sdk/sessions/subagentServerMethods.d.ts +3 -0
- package/dist/sdk/sessions/subagentServerMethods.js +41 -0
- package/dist/sdk/sessions/subagentService.d.ts +13 -2
- package/dist/sdk/sessions/subagentService.js +34 -16
- package/dist/sdk/sessions/subagents.d.ts +9 -1
- package/dist/sdk/sessions/subagents.js +19 -0
- package/dist/sdk/terminal/browser.d.ts +62 -0
- package/dist/sdk/terminal/browser.js +41 -0
- package/dist/sdk/terminal/browserControl.d.ts +29 -0
- package/dist/sdk/terminal/browserControl.js +186 -0
- package/dist/sdk/terminal/commandHelp.d.ts +17 -0
- package/dist/sdk/terminal/commandHelp.js +20 -0
- package/dist/sdk/terminal/controller.d.ts +7 -1
- package/dist/sdk/terminal/controller.js +34 -2
- package/dist/sdk/terminal/opentui/subagentsWidget.d.ts +28 -0
- package/dist/sdk/terminal/opentui/subagentsWidget.js +52 -0
- package/dist/sdk/terminal/piExtension.js +33 -48
- package/dist/sdk/terminal/socket.d.ts +6 -3
- package/dist/sdk/terminal/socket.js +40 -9
- package/dist/sdk/terminal/standalone.d.ts +2 -0
- package/dist/sdk/terminal/standalone.js +50 -10
- package/dist/sdk/terminal/subagentMonitor.d.ts +38 -0
- package/dist/sdk/terminal/subagentMonitor.js +121 -0
- package/dist/sdk/terminal/terminals.d.ts +42 -6
- package/dist/sdk/terminal/terminals.js +359 -18
- package/dist/sdk/terminal/trajectory.js +2 -2
- package/dist/sdk/terminal/tui/annotateCommand.d.ts +3 -0
- package/dist/sdk/terminal/tui/annotateCommand.js +22 -0
- package/dist/sdk/terminal/tui/commandPages.d.ts +5 -1
- package/dist/sdk/terminal/tui/commandPages.js +54 -6
- package/dist/sdk/terminal/tui/commands.d.ts +8 -4
- package/dist/sdk/terminal/tui/commands.js +181 -58
- package/dist/sdk/terminal/tui/dialogGeometry.d.ts +2 -2
- package/dist/sdk/terminal/tui/dialogGeometry.js +4 -2
- package/dist/sdk/terminal/tui/dialogs.d.ts +6 -1
- package/dist/sdk/terminal/tui/dialogs.js +9 -2
- package/dist/sdk/terminal/tui/modelPicker.js +1 -6
- package/dist/sdk/terminal/tui/page.d.ts +3 -0
- package/dist/sdk/terminal/tui/pageOverlay.js +17 -6
- package/dist/sdk/terminal/tui/pages/accountsPage.d.ts +26 -4
- package/dist/sdk/terminal/tui/pages/accountsPage.js +264 -36
- package/dist/sdk/terminal/tui/pages/agentsPage.d.ts +74 -0
- package/dist/sdk/terminal/tui/pages/agentsPage.js +190 -0
- package/dist/sdk/terminal/tui/pages/annotatePage.d.ts +94 -0
- package/dist/sdk/terminal/tui/pages/annotatePage.js +341 -0
- package/dist/sdk/terminal/tui/pages/browserPage.d.ts +87 -0
- package/dist/sdk/terminal/tui/pages/browserPage.js +738 -0
- package/dist/sdk/terminal/tui/pages/doctorPage.d.ts +2 -0
- package/dist/sdk/terminal/tui/pages/doctorPage.js +103 -15
- package/dist/sdk/terminal/tui/pages/notesPage.d.ts +75 -0
- package/dist/sdk/terminal/tui/pages/notesPage.js +201 -0
- package/dist/sdk/terminal/tui/pages/settingsPage.d.ts +8 -0
- package/dist/sdk/terminal/tui/pages/settingsPage.js +16 -1
- package/dist/sdk/terminal/tui/pages/subagentsPage.d.ts +23 -0
- package/dist/sdk/terminal/tui/pages/subagentsPage.js +70 -0
- package/dist/sdk/terminal/tui/pages/trajectoryPage.d.ts +12 -5
- package/dist/sdk/terminal/tui/pages/trajectoryPage.js +156 -83
- package/dist/sdk/terminal/tui/pages/worktreesPage.d.ts +72 -0
- package/dist/sdk/terminal/tui/pages/worktreesPage.js +203 -0
- package/dist/sdk/terminal/tui/planMode.d.ts +1 -1
- package/dist/sdk/terminal/tui/planMode.js +1 -1
- package/dist/sdk/terminal/tui/pluginCommands.d.ts +14 -0
- package/dist/sdk/terminal/tui/pluginCommands.js +27 -0
- package/dist/sdk/terminal/tui/questions.d.ts +2 -0
- package/dist/sdk/terminal/tui/runtime.js +4 -2
- package/dist/sdk/terminal/tui/settingsModel.d.ts +2 -0
- package/dist/sdk/terminal/tui/settingsModel.js +32 -2
- package/dist/sdk/terminal/tui/sideQuestion.d.ts +26 -26
- package/dist/sdk/terminal/tui/sideQuestion.js +131 -98
- package/dist/sdk/terminal/tui/ui.d.ts +2 -0
- package/dist/sdk/terminal/tui/ui.js +1 -0
- package/dist/sdk/tools/askUser.js +26 -8
- package/dist/sdk/tools/checklist.js +2 -2
- package/dist/sdk/tools/harnessTools.d.ts +2 -0
- package/dist/sdk/tools/harnessTools.js +1 -1
- package/dist/sdk/tools/spawnSubagent.js +13 -4
- package/dist/sdk/web/part.d.ts +10 -0
- package/dist/sdk/web/part.js +6 -0
- package/dist/sdk/web/serverMethods.d.ts +3 -0
- package/dist/sdk/web/serverMethods.js +7 -0
- package/dist/sdk/wiki/serverMethods.d.ts +3 -0
- package/dist/sdk/wiki/serverMethods.js +26 -0
- package/dist/sdk/worktrees/cli.d.ts +11 -0
- package/dist/sdk/worktrees/cli.js +146 -0
- package/dist/sdk/worktrees/copy.d.ts +9 -0
- package/dist/sdk/worktrees/copy.js +111 -0
- package/dist/sdk/worktrees/git.d.ts +16 -0
- package/dist/sdk/worktrees/git.js +81 -0
- package/dist/sdk/worktrees/serverMethods.d.ts +3 -0
- package/dist/sdk/worktrees/serverMethods.js +30 -0
- package/dist/sdk/worktrees/service.d.ts +73 -0
- package/dist/sdk/worktrees/service.js +483 -0
- package/dist/sdk/worktrees/setup.d.ts +23 -0
- package/dist/sdk/worktrees/setup.js +65 -0
- package/dist/sdk/worktrees/types.d.ts +91 -0
- package/dist/sdk/worktrees/types.js +1 -0
- package/dist/sdk/world/cli.d.ts +2 -2
- package/dist/sdk/world/cli.js +6 -6
- package/dist/sdk/world/world.d.ts +3 -1
- package/dist/sdk/world/world.js +8 -9
- package/dist/terminal-opentui.js +14540 -7374
- package/dist/terminal-pi.js +285 -666
- package/docs/README.md +22 -2
- package/docs/architecture/00-overview.md +28 -16
- package/docs/architecture/02-sessions-and-runs.md +72 -15
- package/docs/architecture/03-variants.md +10 -2
- package/docs/architecture/04-prompt.md +26 -6
- package/docs/architecture/06-plugins-and-capabilities.md +39 -3
- package/docs/architecture/07-tools-and-gate.md +21 -6
- package/docs/architecture/09-accounts-and-connectors.md +8 -0
- package/docs/architecture/10-server-protocol.md +111 -2
- package/docs/architecture/11-terminal.md +185 -5
- package/docs/architecture/12-storage.md +15 -1
- package/docs/architecture/13-world-tools.md +28 -6
- package/docs/architecture/14-surfaces-and-parity.md +89 -0
- package/docs/architecture/README.md +15 -4
- package/docs/architecture/proposals/PROP-0006-run-checklist.md +4 -2
- package/docs/architecture/proposals/PROP-0013-resource-browser.md +58 -0
- package/docs/architecture/proposals/PROP-0014-fullscreen-browser-tabs.md +58 -0
- package/docs/architecture/proposals/PROP-0015-one-capability-surface.md +88 -0
- package/docs/architecture/proposals/PROP-0016-managed-worktrees.md +156 -0
- package/docs/architecture/proposals/PROP-0017-page-annotations.md +127 -0
- package/docs/architecture/proposals/PROP-0018-annotation-queue-and-app-targets.md +179 -0
- package/docs/architecture/proposals/PROP-0019-contextual-side-questions.md +122 -0
- package/docs/architecture/proposals/PROP-0020-builtin-feature-plugins.md +105 -0
- package/docs/architecture/proposals/PROP-0021-command-namespaces-and-duplicates.md +99 -0
- package/docs/architecture/proposals/PROP-0022-plan-only-questions.md +102 -0
- package/docs/architecture/proposals/PROP-0023-xagent-cli-name.md +61 -0
- package/docs/architecture/proposals/PROP-0024-question-sketch-previews.md +130 -0
- package/docs/architecture/proposals/PROP-0025-contextual-question-wireframes.md +49 -0
- package/docs/architecture/proposals/PROP-0026-connected-sketch-display.md +94 -0
- package/docs/architecture/proposals/PROP-0027-xingular-agent-product-identity.md +60 -0
- package/docs/architecture/proposals/PROP-0028-normalize-question-wireframes.md +55 -0
- package/docs/architecture/proposals/PROP-0029-agent-profiles.md +124 -0
- package/docs/architecture/proposals/PROP-0030-subagent-title.md +86 -0
- package/docs/architecture/proposals/README.md +25 -0
- package/docs/decisions/ADR-0009-xharness-command.md +6 -5
- package/docs/decisions/ADR-0014-public-release-baseline.md +3 -2
- package/docs/decisions/ADR-0015-resource-browser.md +28 -0
- package/docs/decisions/ADR-0016-fullscreen-browser-tabs.md +31 -0
- package/docs/decisions/ADR-0017-one-capability-surface.md +34 -0
- package/docs/decisions/ADR-0018-builtin-feature-plugins.md +35 -0
- package/docs/decisions/ADR-0019-managed-git-worktrees.md +31 -0
- package/docs/decisions/ADR-0020-page-annotations.md +37 -0
- package/docs/decisions/ADR-0021-required-command-namespaces.md +40 -0
- package/docs/decisions/ADR-0022-plan-only-question-tools.md +34 -0
- package/docs/decisions/ADR-0023-contextual-side-question-runs.md +35 -0
- package/docs/decisions/ADR-0024-xagent-command.md +40 -0
- package/docs/decisions/ADR-0025-question-choice-sketches.md +49 -0
- package/docs/decisions/ADR-0026-contextual-question-wireframes.md +58 -0
- package/docs/decisions/ADR-0027-connected-sketch-display.md +60 -0
- package/docs/decisions/ADR-0028-xingular-agent-product-identity.md +56 -0
- package/docs/decisions/ADR-0029-normalized-question-wireframe-borders.md +33 -0
- package/docs/decisions/ADR-0030-agent-profiles.md +43 -0
- package/docs/doctor.md +10 -4
- package/docs/features/README.md +26 -0
- package/docs/features/interfaces/README.md +1 -1
- package/docs/future-work.md +48 -0
- package/docs/parity.md +78 -0
- package/docs/releases/1.0.0.md +2 -2
- package/docs/releases/4.0.0.md +46 -0
- package/docs/releases/README.md +20 -15
- package/docs/study/00-index.md +5 -0
- package/docs/study/autonomous-engineering-sources.md +277 -0
- package/docs/study/autonomy-sources.md +147 -0
- package/docs/study/proactive-autonomy.md +408 -0
- package/docs/study/tui-resource-browser.md +78 -0
- package/docs/terminal-tui.md +325 -93
- package/package.json +3 -3
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0027
|
|
3
|
+
title: Project structural ASCII sketch lines into connected terminal borders
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-24
|
|
6
|
+
updated: 2026-10-24
|
|
7
|
+
related: [PROP-0026, ADR-0026, ADR-0029, INV-RUN-3, INV-PAR-1, INV-PAR-2]
|
|
8
|
+
supersedes: null
|
|
9
|
+
superseded_by: null
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ADR-0027 — Project structural ASCII sketch lines into connected terminal borders
|
|
13
|
+
|
|
14
|
+
**Design accepted by the product owner on 2026-10-24** with “yes, fix it” after screenshot review.
|
|
15
|
+
This foundation presentation change is implemented and verified in isolated production fixtures;
|
|
16
|
+
see [retained evidence](../evidence/terminal-connected-sketches/README.md).
|
|
17
|
+
|
|
18
|
+
## Context
|
|
19
|
+
|
|
20
|
+
ASCII `+|-` table frames appear disconnected in the terminal, and bare hyphen dividers do not
|
|
21
|
+
reach the preview frame. ADR-0026's absolute literal-render promise prevents correcting those
|
|
22
|
+
structural lines without a documented exception. Raw ASCII persistence and shared host metadata
|
|
23
|
+
remain appropriate; the problem is terminal typography, not the question contract.
|
|
24
|
+
|
|
25
|
+
## Decision
|
|
26
|
+
|
|
27
|
+
Adopt [PROP-0026](../architecture/proposals/PROP-0026-connected-sketch-display.md). The terminal
|
|
28
|
+
preview in `src/terminal/opentui/sketchPanel.ts` uses a bounded structural display projection:
|
|
29
|
+
|
|
30
|
+
- Recognized ASCII table-border rows and enclosed vertical table edges become connected
|
|
31
|
+
box-drawing glyphs. Internal framed tables retain their original widths and positions.
|
|
32
|
+
- Bare standalone hyphen divider rows expand to the larger of the panel viewport width and the
|
|
33
|
+
original sketch's widest line, joining the outer single-line preview frame with `├` and `┤`.
|
|
34
|
+
- No global substitution: prose, content operators and ordinary pipes remain literal. Unrecognized
|
|
35
|
+
rows remain literal. Whitespace and geometry remain unchanged except for recognized structural
|
|
36
|
+
border glyphs and standalone-divider expansion, subject to the high-confidence boundary-cell
|
|
37
|
+
repair separately specified by [ADR-0029](ADR-0029-normalized-question-wireframe-borders.md).
|
|
38
|
+
- Keep bounded two-axis panning, with no wrapping, reflow, truncation or markup interpretation.
|
|
39
|
+
Focus, selection, navigation and answers do not change.
|
|
40
|
+
|
|
41
|
+
The validated source remains at most 80 printable ASCII columns by 24 lines. Persist that source
|
|
42
|
+
literally, including whitespace; never save projected Unicode or divider expansion. No wire/schema
|
|
43
|
+
or answer change is introduced. Hosts may retain literal previews of the same source. INV-PAR-1/2
|
|
44
|
+
require equivalent capability and accepted metadata, not identical structural typography.
|
|
45
|
+
|
|
46
|
+
## Consequences
|
|
47
|
+
|
|
48
|
+
This amends only ADR-0026's terminal literal-render requirement and cross-surface typography
|
|
49
|
+
promise; its bounds, raw persistence, layout and answer decisions remain in force. No migration or
|
|
50
|
+
host code change is needed. Reverting the display projection does not affect saved events.
|
|
51
|
+
Historical decisions and verification evidence remain unchanged.
|
|
52
|
+
|
|
53
|
+
## Verification status
|
|
54
|
+
|
|
55
|
+
The [PROP-0026 verification](../evidence/terminal-connected-sketches/README.md) covers structural
|
|
56
|
+
recognition, content preservation, four terminal sizes, resizing/panning, original ASCII persistence
|
|
57
|
+
and unchanged answers, alongside Harness and host checks. The later [ADR-0029 verification](../evidence/terminal-wireframe-normalization/README.md)
|
|
58
|
+
covers title-bearing rules and bounded repair of missing or displaced frame edges. Prior PROP-0025
|
|
59
|
+
evidence remains a record of the old presentation. Fixture verification is not owner visual
|
|
60
|
+
acceptance, an every-font guarantee or evidence of live-model diagram quality.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0028
|
|
3
|
+
title: Use Xingular Agent as the default Harness product identity
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-24
|
|
6
|
+
updated: 2026-10-24
|
|
7
|
+
related: [PROP-0027, INV-BND-2, 00-overview.md, 04-prompt.md, 11-terminal.md]
|
|
8
|
+
supersedes: null
|
|
9
|
+
superseded_by: null
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ADR-0028 — Use Xingular Agent as the default Harness product identity
|
|
13
|
+
|
|
14
|
+
The product owner accepted [PROP-0027](../architecture/proposals/PROP-0027-xingular-agent-product-identity.md)
|
|
15
|
+
on 2026-10-24.
|
|
16
|
+
|
|
17
|
+
## Context
|
|
18
|
+
|
|
19
|
+
The standalone terminal is Harness-owned, but its welcome and Harness-authored prompt identity used
|
|
20
|
+
the default product name `Xingular Harness`. The requested product identity is `Xingular Agent`,
|
|
21
|
+
with a terminal welcome that presents an orange `X` mark and blue `A G E N T` label. Changing the
|
|
22
|
+
default affects product identity text beyond the welcome, including compiled prompts and Wiki text;
|
|
23
|
+
embedding hosts may need their own name.
|
|
24
|
+
|
|
25
|
+
## Decision
|
|
26
|
+
|
|
27
|
+
Adopt PROP-0027:
|
|
28
|
+
|
|
29
|
+
- Set `DEFAULT_PRODUCT_NAME` to `Xingular Agent`; continue honoring an explicit `productName` from
|
|
30
|
+
an embedding host.
|
|
31
|
+
- Revise `INV-BND-2` to permit the exact canonical product identity `Xingular Agent` as the
|
|
32
|
+
default. Continue to prohibit application concepts, application-specific behavior and other
|
|
33
|
+
application names in Harness code and person/model-visible text.
|
|
34
|
+
- Format a multiword product name in the empty welcome as the first letter of its first word in the
|
|
35
|
+
orange block mark and the remaining word(s), letter-spaced, in blue. Thus the default shows `X`
|
|
36
|
+
and `A G E N T`. A single-word name remains the mark without a subline.
|
|
37
|
+
- Keep the centered greeting, tagline, `/help` hint, model/thinking status, composer and status bar;
|
|
38
|
+
use the existing orange and blue theme accents without adding tokens or changing other surfaces.
|
|
39
|
+
|
|
40
|
+
## Consequences
|
|
41
|
+
|
|
42
|
+
- Consumers that omit `productName` see `Xingular Agent` in Harness-authored product identity
|
|
43
|
+
text. Consumers that supply their own name are unchanged.
|
|
44
|
+
- Existing prompt packs, runs and Wiki notes are not rewritten; newly compiled prompt identity and
|
|
45
|
+
new Wiki text use the default in effect at creation time.
|
|
46
|
+
- No capability, API, storage layout or wire schema changes.
|
|
47
|
+
|
|
48
|
+
## Verification status
|
|
49
|
+
|
|
50
|
+
Implemented and verified on 2026-10-24.
|
|
51
|
+
|
|
52
|
+
- Harness: `npm run typecheck`, `npm test` (143 files passed; 3 skipped), `npm run build`, and
|
|
53
|
+
`npm run prove` passed. Focused PTY verification passed at 40x20, 80x24 and 120x40, including
|
|
54
|
+
the `/help` transition.
|
|
55
|
+
- Xingular Agent: `npm run typecheck`, `npm test` (566 renderer and 67 sidecar tests passed),
|
|
56
|
+
`npm run check:layers`, and `cd src-tauri && cargo test` passed.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0029
|
|
3
|
+
title: Normalize high-confidence question wireframe borders in the terminal preview
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-24
|
|
6
|
+
updated: 2026-10-24
|
|
7
|
+
related: [PROP-0028, ADR-0026, ADR-0027, INV-PAR-1, INV-PAR-2]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ADR-0029 — Normalize high-confidence question wireframe borders in the terminal preview
|
|
11
|
+
|
|
12
|
+
## Context
|
|
13
|
+
|
|
14
|
+
The terminal displays bounded, model-authored ASCII sketches. The existing connected-glyph projection misses text-bearing top rules and rows with missing or misaligned side edges. The raw source remains the right shared contract, but its terminal display needs a narrowly constrained frame-repair rule.
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
Adopt [PROP-0028](../architecture/proposals/PROP-0028-normalize-question-wireframes.md). The terminal may normalize only high-confidence, explicitly framed sketch boundaries:
|
|
19
|
+
|
|
20
|
+
- Recognize title-bearing border rows and establish outer columns from matched frame rules.
|
|
21
|
+
- Align a boundary character only across whitespace, or fill a missing boundary cell only where it is whitespace.
|
|
22
|
+
- Preserve interior text, nested frame geometry, ambiguous rows, and ordinary content literally; no global symbol replacement.
|
|
23
|
+
- Keep the source ASCII byte-for-byte in persistence and retain the existing question schema, answer payload, viewport and panning behavior.
|
|
24
|
+
|
|
25
|
+
Hosts may continue rendering the same source literally. This decision changes terminal typography only; it adds no capability or host contract.
|
|
26
|
+
|
|
27
|
+
## Consequences
|
|
28
|
+
|
|
29
|
+
A valid framed sketch can display connected corners and continuous vertical edges even when its source omitted or misplaced a boundary glyph. Repairs are projection-only and deliberately conservative; ambiguous or content-conflicting rows remain untouched. No migration is required.
|
|
30
|
+
|
|
31
|
+
## Verification
|
|
32
|
+
|
|
33
|
+
Use structural unit fixtures and isolated production PTY runs at compact and wide terminal sizes. Verify the displayed topology, panning/resizing, and byte-for-byte source and answer preservation. This does not claim that every emulator/font renders box glyphs identically or that live-model sketches always describe the intended design.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0030
|
|
3
|
+
title: Agent profiles, one checklist per agent, and the subagent roster under the status line
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-24
|
|
6
|
+
updated: 2026-10-24
|
|
7
|
+
related: [PROP-0029, PROP-0006, ADR-0003, INV-RUN-2, INV-CAP-1, INV-PAR-1]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ADR-0030 — Agent profiles, one checklist per agent, and the subagent roster under the status line
|
|
11
|
+
|
|
12
|
+
## Context
|
|
13
|
+
|
|
14
|
+
People want to start subagents of a known kind, such as a worker that edits and an explorer that
|
|
15
|
+
only reads, and to follow their progress from the terminal. Subagents were copies of the parent
|
|
16
|
+
or instruction-only c5 definitions, the terminal did not register the checklist tool, and the
|
|
17
|
+
roster sat above the composer with a heading and no indication of each child's kind or progress.
|
|
18
|
+
|
|
19
|
+
## Decision
|
|
20
|
+
|
|
21
|
+
- Adopt [PROP-0029](../architecture/proposals/PROP-0029-agent-profiles.md): agent profiles are
|
|
22
|
+
Markdown files (built-in, `<data root>/agents/`, `<project>/.xingular/agents/`, then c5 names)
|
|
23
|
+
that a spawn resolves by name. A profile narrows tools and plugins and may choose a variant,
|
|
24
|
+
model and effort. It never widens the parent's capabilities.
|
|
25
|
+
- Progress stays **one checklist per run** (PROP-0006). The parent's list is the plan the person
|
|
26
|
+
watches. Each child keeps its own list, and the roster shows its `n of m tasks`. There is no
|
|
27
|
+
shared, claimable task pool.
|
|
28
|
+
- The terminal registers `checklist_write`, shows each write as a checklist block, and the prompt's
|
|
29
|
+
Progress group asks the model to keep it current because the person follows work from it.
|
|
30
|
+
- The roster sits under the status line after one blank line, with no heading. Each row reads: status
|
|
31
|
+
mark, profile name in its colour, session name, tasks.
|
|
32
|
+
|
|
33
|
+
## Consequences
|
|
34
|
+
|
|
35
|
+
Profiles are a foundation feature, not variant data: refinement does not change them. A project
|
|
36
|
+
can carry profiles in its repository. The App gets the same capability through `agents.*` and
|
|
37
|
+
`RunRecord.profile`; it has no Agents screen yet (parity `planned`).
|
|
38
|
+
|
|
39
|
+
## Verification
|
|
40
|
+
|
|
41
|
+
Unit tests for profiles, narrowing, spawn, the monitor, the roster and the Agents page;
|
|
42
|
+
`npm run prove`; and a loopback PTY run that checks the blank row under the status line, the row
|
|
43
|
+
order, and the profile colours.
|
package/docs/doctor.md
CHANGED
|
@@ -15,11 +15,17 @@ domain”. MCP checks connect/list only. Browser checks use a disposable headles
|
|
|
15
15
|
offline synthetic page; configured CDP attachment is blocked. Computer input is blocked unless the
|
|
16
16
|
host supplies a disposable diagnostic surface; the current desktop host supplies readiness only.
|
|
17
17
|
|
|
18
|
+
The report keeps mode, progress, account/model and status counts visible above the findings. Wide
|
|
19
|
+
layouts use aligned Status, Check, Category and Verification columns; evidence and any next step
|
|
20
|
+
appear beneath each finding. Narrow layouts stack those fields. Status colors follow the active
|
|
21
|
+
theme: pass is green, warning/blocked amber, fail red, disabled dim and unverified muted.
|
|
22
|
+
|
|
18
23
|
`r` refreshes local readiness, `t` retries a selected local check, `c` cancels, and Escape closes
|
|
19
|
-
and cancels pending work.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
and
|
|
24
|
+
and cancels pending work. Use Up/Down to scroll by line, PgUp/PgDn or the mouse wheel to scroll by
|
|
25
|
+
page, and Home/End to jump to the first/last finding. Completed findings survive cancellation. Every finding includes
|
|
26
|
+
evidence and, where useful, a next step. Doctor never signs in, switches accounts, installs, grants
|
|
27
|
+
access, or repairs settings. Findings and jobs are retained in memory until shutdown; live run
|
|
28
|
+
records and usage remain in normal Harness storage.
|
|
23
29
|
|
|
24
30
|
## Embedding
|
|
25
31
|
|
package/docs/features/README.md
CHANGED
|
@@ -16,5 +16,31 @@ binding and defines the contracts and invariants.
|
|
|
16
16
|
| Integrations | Application extension points, plugins, connected apps and Hub | [Integrations](integrations/README.md) |
|
|
17
17
|
| Interfaces | Node embedding, standalone terminal and JSON-lines server | [Interfaces](interfaces/README.md) |
|
|
18
18
|
|
|
19
|
+
## Built-in plugin ownership
|
|
20
|
+
|
|
21
|
+
PROP-0020 groups Harness-managed feature plugins by responsibility. These labels are an architecture
|
|
22
|
+
taxonomy only; they are not runtime plugin categories or public metadata. Foundation-owned
|
|
23
|
+
infrastructure remains the security and lifecycle boundary around each feature.
|
|
24
|
+
|
|
25
|
+
| Category | Features |
|
|
26
|
+
|---|---|
|
|
27
|
+
| Foundation | Accounts, sessions, run recording, prompt/variant validation, gate, plugin loading/trust/attachments, resource browser, server and terminal framework |
|
|
28
|
+
| World | Web tools, browser tools and page annotations; generic isolated browser engine stays in Foundation |
|
|
29
|
+
| Memory | Wiki, history and trajectory |
|
|
30
|
+
| Automation | Subagents, ask-user, checklist, lessons and refinement |
|
|
31
|
+
| Integrations | Connected apps/MCP and Hub |
|
|
32
|
+
| Operations | Doctor and worktrees |
|
|
33
|
+
|
|
34
|
+
See [06 Plugins and capabilities](../architecture/06-plugins-and-capabilities.md#built-in-ownership-taxonomy-prop-0020) for the binding ownership boundary.
|
|
35
|
+
|
|
36
|
+
## Planned: Agent Modes
|
|
37
|
+
|
|
38
|
+
An **Agent Mode** selects one overall work style at a time; plugins remain stackable strategies and
|
|
39
|
+
contributions. The first planned mode is **Router Agent Mode**: the user works through one continuous
|
|
40
|
+
chat and browser experience with a router agent that proactively plans, delegates across persistent
|
|
41
|
+
subagent threads, and receives their messages. This is a future direction, not an implemented
|
|
42
|
+
capability. See [FW-0001](../future-work.md#fw-0001-agent-modes-starting-with-router-agent-mode) for
|
|
43
|
+
the backlog entry and required architecture decisions.
|
|
44
|
+
|
|
19
45
|
**Harness Variant (HV)** is the short name used in these feature pages. The architecture
|
|
20
46
|
specification uses the canonical term *variant*.
|
|
@@ -17,7 +17,7 @@ for host-provided extension points.
|
|
|
17
17
|
|
|
18
18
|
## Standalone terminal
|
|
19
19
|
|
|
20
|
-
`
|
|
20
|
+
`xagent` provides the Harness-owned OpenTUI terminal over a persistent Pi session. An embedding
|
|
21
21
|
application may host the terminal in its own PTY; the Harness owns the terminal UI and session
|
|
22
22
|
behavior, while the host owns PTY and process supervision.
|
|
23
23
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Future feature backlog
|
|
2
|
+
|
|
3
|
+
This backlog records candidate directions. An entry here does not change the binding architecture,
|
|
4
|
+
approve implementation, or describe an available feature. A change to an architecture contract,
|
|
5
|
+
invariant, layer boundary, extension point, or storage layout still requires a reviewed proposal.
|
|
6
|
+
|
|
7
|
+
## FW-0001: Agent Modes, starting with Router Agent Mode
|
|
8
|
+
|
|
9
|
+
**Status:** Candidate; future architecture proposal required before implementation.
|
|
10
|
+
|
|
11
|
+
### Concept
|
|
12
|
+
|
|
13
|
+
An **Agent Mode** selects one overall work style, with only one mode active at a time. Plugins remain
|
|
14
|
+
stackable strategies and contributions that can be used within a mode; they do not select the
|
|
15
|
+
agent's overall work style.
|
|
16
|
+
|
|
17
|
+
The first planned mode is **Router Agent Mode**. The user interacts with one user-facing agent through
|
|
18
|
+
one continuous chat and browser experience. That router proactively plans and delegates work across
|
|
19
|
+
persistent subagent threads, receives their messages, and coordinates the overall work while the user
|
|
20
|
+
can continue sending messages.
|
|
21
|
+
|
|
22
|
+
### Intended ownership
|
|
23
|
+
|
|
24
|
+
This is intended as a Harness foundation capability. The current architecture describes subagents as
|
|
25
|
+
child runs and assigns persistent teams, broader orchestration, and the application's shared UI to
|
|
26
|
+
the embedding application ([02 Sessions and runs](architecture/02-sessions-and-runs.md), [feature-gap
|
|
27
|
+
review](study/feature-gap-review.md)). This backlog entry proposes revisiting that boundary; it does
|
|
28
|
+
not change it.
|
|
29
|
+
|
|
30
|
+
### Decisions required before a proposal
|
|
31
|
+
|
|
32
|
+
- Define the mode selection scope and lifetime, including how one active mode applies to sessions,
|
|
33
|
+
runs, and child agents.
|
|
34
|
+
- Define persistent subagent thread identity, history, communication, delegation, recovery, and
|
|
35
|
+
resource limits while preserving the run's account, variant, capability, and gate guarantees.
|
|
36
|
+
- Define how the router receives worker messages and incorporates them while accepting continued
|
|
37
|
+
user input in one conversation.
|
|
38
|
+
- Define how the single chat and browser experience maps to the Harness terminal, server protocol,
|
|
39
|
+
and embedding hosts, including which UI responsibilities remain with the host.
|
|
40
|
+
- Identify the storage, run-event, and public API changes needed to support the mode and migrate or
|
|
41
|
+
coexist with current run-scoped subagents.
|
|
42
|
+
|
|
43
|
+
### Next step
|
|
44
|
+
|
|
45
|
+
When implementation is scheduled, write a formal architecture proposal from the proposal template,
|
|
46
|
+
identify every affected contract and invariant, and obtain acceptance before changing code or binding
|
|
47
|
+
specification pages. Record a lasting accepted architecture choice in an ADR. Until then, Agent Mode
|
|
48
|
+
and Router Agent Mode are planning terms only; no runtime behavior or public interface is implied.
|
package/docs/parity.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Capability parity register
|
|
2
|
+
|
|
3
|
+
**Status:** descriptive register, as of 2026-10-24. The binding rules are
|
|
4
|
+
[14 Surfaces and parity](architecture/14-surfaces-and-parity.md) (`INV-PAR-1`–`INV-PAR-4`).
|
|
5
|
+
|
|
6
|
+
Every capability a person can use is a Harness capability. The standalone terminal (`xagent`)
|
|
7
|
+
is the reference front end; a host such as the App presents the same capabilities with a richer
|
|
8
|
+
UI. This page lists each capability, where the Harness owns it, how each front end shows it, and
|
|
9
|
+
whether both pass. A gap has an ID (`PAR-NNN`) until it is closed.
|
|
10
|
+
|
|
11
|
+
Host-only surfaces (presentation a terminal cannot show, `INV-PAR-4`) are not listed here; each
|
|
12
|
+
host keeps its own register. The App's is
|
|
13
|
+
[`App/docs/architecture/app-only-surfaces.md`](../../App/docs/architecture/app-only-surfaces.md).
|
|
14
|
+
|
|
15
|
+
Status: **parity** (both surfaces pass), **terminal only**, **host only** (a gap), **planned**,
|
|
16
|
+
**host-backed** (needs a host object; terminal fallback named).
|
|
17
|
+
|
|
18
|
+
## Register
|
|
19
|
+
|
|
20
|
+
| Capability | Harness owner | Method or tool | Terminal surface | App surface | Status | Gap |
|
|
21
|
+
|---|---|---|---|---|---|---|
|
|
22
|
+
| Sessions and turns | `sessions/` | `sessions.run`, `terminal.*` | the terminal itself | Solo chat | parity | — |
|
|
23
|
+
| Plan mode | `sessions/planMode.ts` | `plan: true` | `/plan`, Shift+Tab, plan card | plan request, PlanCard | parity | — |
|
|
24
|
+
| Bash command mode | `sessions/sessions.ts` | `initialBashCommand` | `!command` | `!command` in the composer | parity | — |
|
|
25
|
+
| Side questions | `sessions/sideQuestions.ts` | `sideQuestions.start/read/interrupt`; terminal `terminal.sideQuestions.*` | `/btw` contextual dock with scroll and copy | side-question dock through the shared service | parity | — |
|
|
26
|
+
| Approvals and standing approvals | `sessions/approvals.ts` | `approvals.*` | decision dock, `/permissions` | approvals dock, settings | parity | — |
|
|
27
|
+
| Questions (`ask_user`) | `tools/askUser.ts` | `ask_user`; terminal `ask_user_question` | plan-mode dock: strict aligned columns, bounded body scroll, 80×24 source sketch viewport; connected structural projection with high-confidence boundary normalization (PROP-0026, PROP-0028) | plan-mode form accepts the same 80×24 ASCII source contract with literal preview and accessible overflow; no typography change required | parity; terminal projection verified in isolated fixtures | — |
|
|
28
|
+
| Subagents | `sessions/subagentService.ts` | `spawn_subagent` (requires `title`, PROP-0030), `subagents.*` | `/subagents` page and live rows under the status line (mark, profile, parent-set title, `n of m tasks`) | reply trajectory | parity | — |
|
|
29
|
+
| Agent profiles | `agents/profiles.ts` | `spawn_subagent { agent }`, `agents.list/get/create/remove`; terminal `terminal.agents.*` | `/agents` page: browse, create, edit in `$EDITOR`, copy, delete | not shown; `RunRecord.profile` available | terminal done; App planned | PAR-010 |
|
|
30
|
+
| Run checklist | `tools/checklist.ts` | `checklist_write`, `runs.checklist`; terminal `checklist` telemetry | registered in terminal sessions and their subagents; each write shows as a checklist block in the transcript; a subagent row shows its `n of m tasks` | not shown | terminal done; App planned | PAR-001 |
|
|
31
|
+
| Continuation of a stopped run | `sessions/continuation.ts` | `continueFrom`, `runs.continuation` | not offered (`/resume` reopens history only) | not offered | planned | PAR-003 |
|
|
32
|
+
| Accounts | `accounts/` | `accounts.*` | `/accounts` | Accounts | parity | — |
|
|
33
|
+
| Models and effort | `accounts/choices.ts` | — | `/model`, `/effort` | composer pickers | parity | — |
|
|
34
|
+
| Skills | `plugins/`, `tools/dispatch.ts` | `skill_load` | `$name`, `/skill:name`, browser Skills tab | Capability, composer | parity | — |
|
|
35
|
+
| Plugins and Hub | `plugins/`, `hub/` | `plugins.*`, `hub.*` | resource browser | Capability | parity | — |
|
|
36
|
+
| Connected apps (MCP) | `mcp/` | `connections.*`, broker tools | resource browser Connections tab | Connections | parity | — |
|
|
37
|
+
| Web search and page reading | `web/` | `web_search`, `web_fetch` | world tools | world tools | parity | — |
|
|
38
|
+
| Isolated browser | `browser/` | `browser_*` | world tools, headed on request, `/settings` Browser tab | App WebKit tabs (host-backed) | host-backed | — |
|
|
39
|
+
| Page annotations | `annotations/` (PROP-0017, PROP-0018) | `annotations.*`, `annotations.capture.*`, `page_notes_*` | `/plugin:annotate` pane (inspector, queue, app windows over DevTools or the page bridge), `/plugin:notes` | website tab Annotate panel (inspector, queue to the focused thread, app windows through `annotations.capture.*`) | parity in the working tree; native WKWebView gestures unaccepted | PAR-011 |
|
|
40
|
+
| Managed worktrees | `worktrees/` (PROP-0016) | `worktrees.*` | `--worktree`, `/worktree`, `xagent worktree` | working group **Create worktree** (`worktrees.create`) | partial | PAR-012 |
|
|
41
|
+
| Wiki notes (model tools) | `wiki/`, `tools/` | `wiki_*` | `xagent-wiki` shell command only | tools | host only | PAR-002 |
|
|
42
|
+
| History and trajectory (model tools) | `history/` | `history_*`, `trajectory_*` | shell command, `/trajectory` page | tools, trajectory views | host only | PAR-002 |
|
|
43
|
+
| Wiki browsing | `wiki/` | `wiki.*` | none | Wiki | host only | PAR-005 |
|
|
44
|
+
| Variants and refinement | `variant/`, `refine/` | `harnesses.*`, `refine.*` | browser Variant tab (read-only), `xagent refine` | Harness screen | host only | PAR-004 |
|
|
45
|
+
| Output trim and budget guard plugins | `plugins/firstParty.ts` | — | not loaded in terminals | loaded | host only | PAR-006 |
|
|
46
|
+
| Doctor | `doctor/` | `doctor.*` | `/doctor` | diagnostics | parity | — |
|
|
47
|
+
| Run inspection | `sessions/runStore.ts` | `runs.*` | `/trajectory`, `/log` | run views, analytics | parity | — |
|
|
48
|
+
| Session catalog (sessions per folder) | — | — | per-folder history | Solo thread list | planned | PAR-008 |
|
|
49
|
+
| Folder choice and recent folders | `core/projects.ts` | — | launch folder only | working groups | planned | PAR-009 |
|
|
50
|
+
| Computer control | — | `computer_*` (host tools) | unavailable, with reason | macOS bridge (host-backed) | host-backed | PAR-007 |
|
|
51
|
+
| Shared files vault | — | `files_*` (host tools) | none | Files | host only | PAR-007 |
|
|
52
|
+
|
|
53
|
+
The terminal-only display amendments [PROP-0026](architecture/proposals/PROP-0026-connected-sketch-display.md)
|
|
54
|
+
and [PROP-0028](architecture/proposals/PROP-0028-normalize-question-wireframes.md) permit connected
|
|
55
|
+
structural glyphs, frame-attached standalone dividers, and high-confidence boundary normalization
|
|
56
|
+
through whitespace while retaining literal ASCII persistence and unchanged answers. The App may
|
|
57
|
+
keep its literal preview. This does not reopen the expanded metadata contract verified under
|
|
58
|
+
PAR-013. Isolated production PTY evidence verifies bounded fixture topology, not every emulator/font
|
|
59
|
+
or live-model sketch quality.
|
|
60
|
+
|
|
61
|
+
## Gaps
|
|
62
|
+
|
|
63
|
+
| ID | Gap | Planned change |
|
|
64
|
+
|---|---|---|
|
|
65
|
+
| PAR-001 | Checklist absent from the App | The terminal registers the tool and renders a checklist block; the App renders it too. |
|
|
66
|
+
| PAR-002 | Wiki, history and trajectory reach terminal models only through a shell command | Register the harness tools in terminal sessions; retire the shell commands (drift D-4). |
|
|
67
|
+
| PAR-003 | Continuation unused | `/resume` lists interrupted runs and continues one with `continueFrom`; the App offers Continue. |
|
|
68
|
+
| PAR-004 | Refinement and adoption only in the App | Variant tab actions: start, candidates, adopt, trust. |
|
|
69
|
+
| PAR-005 | Wiki browsing only in the App | A `/wiki` page over `wiki.*`. |
|
|
70
|
+
| PAR-006 | First-party hook plugins not loaded in terminals | Load them through the terminal's trusted selection. |
|
|
71
|
+
| PAR-007 | Host tools without a Harness owner | Decide each: computer control stays host-backed (terminal shows unavailable); the files vault becomes a Harness capability or is dropped. |
|
|
72
|
+
| PAR-008 | Separate session catalogs | A Harness session catalog per folder, read by both front ends (needs a proposal). |
|
|
73
|
+
| PAR-009 | Folder choice | Built on PAR-008: recent folders in both front ends. |
|
|
74
|
+
| PAR-010 | Agent profiles absent from the App | An Agents screen over `agents.*`, and the profile name and colour on subagent rows (PROP-0029). |
|
|
75
|
+
| PAR-011 | Page annotations | Harness, terminal and App source done (PROP-0017, PROP-0018, 2026-10-24): the App calls `annotations.*`, imports its old notes once, uses the `page_notes_*` tools, and has the Annotate panel. Open: acceptance of the inspector and selection gestures in the running App's WKWebView. |
|
|
76
|
+
| PAR-012 | Managed worktrees | Harness and terminal done (PROP-0016). The App creates through `worktrees.create`; its groups do not yet offer hand off, prune, restore or managed worktrees per thread. |
|
|
77
|
+
| PAR-014 | Connected terminal sketch display | Closed by [PROP-0026 verification](evidence/terminal-connected-sketches/README.md) and extended by [PROP-0028 verification](evidence/terminal-wireframe-normalization/README.md): production PTY fixtures cover connected corners/tees, title-bearing rules, missing and whitespace-shifted side edges, internal table widths, frame-attached dividers, resize/panning and unchanged raw persistence/answers. Harness and host checks passed. Host literal rendering remains permitted; no host implementation change was required. This is fixture verification, not an every-font or live-model guarantee. |
|
|
78
|
+
| PAR-013 | Expanded question wireframes and terminal layout | Closed by [PROP-0025 verification](evidence/terminal-question-wireframes/README.md): four-size production PTY acceptance covers aligned compact columns, body scrolling, pinned controls, Shift+arrow sketch panning and live resizing. Host contracts accept 80×24 literal ASCII sketches (1,943 bytes); six isolated browser tests include exact-boundary content, accessible overflow and unchanged selection/answers. This is controlled fixture acceptance, not live-provider or native Tauri evidence. |
|
package/docs/releases/1.0.0.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
This release establishes @xingular/harness@1.0.0 as the stable baseline and retains the xharness
|
|
4
4
|
command. It intentionally resets the earlier development numbering; historical tags and published
|
|
5
|
-
versions remain unchanged.
|
|
6
|
-
|
|
5
|
+
versions remain unchanged. The npm registry published 1.0.0 as the stable baseline; this file
|
|
6
|
+
remains its release notes.
|
|
7
7
|
|
|
8
8
|
## Included
|
|
9
9
|
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Xingular Harness 4.0.0
|
|
2
|
+
|
|
3
|
+
This major release builds on the published 1.0.0 baseline. It extends Harness-owned terminal
|
|
4
|
+
surfaces and adds generic worktree and page-annotation capabilities; it also changes the built-in
|
|
5
|
+
terminal command namespace, documented below. Earlier published versions remain available.
|
|
6
|
+
|
|
7
|
+
## Included
|
|
8
|
+
|
|
9
|
+
- Managed Git worktrees for sessions and the terminal, with leases, guarded setup scripts, handoff,
|
|
10
|
+
pruning, restoration, and bounded snapshots that preserve uncommitted work.
|
|
11
|
+
- Page annotations and queued notes, including capture, review, resolution, sharing, and delivery
|
|
12
|
+
through Harness methods and terminal `/plugin:annotate` and `/plugin:notes` pages.
|
|
13
|
+
- A unified terminal resource browser with persistent full-screen sections for browser tabs,
|
|
14
|
+
plugins, skills, connectors, variants, and other Harness resources.
|
|
15
|
+
- A full-screen `/trajectory` Runs/Events browser with searchable event details, selected-event
|
|
16
|
+
JSON, and a responsive split-pane layout.
|
|
17
|
+
- Additional terminal controls for browser settings, plugin settings, and subagent activity.
|
|
18
|
+
- Fix Node 22 SQLite parameter binding in recall and run indexes, and guard worktree Git calls
|
|
19
|
+
against early child-process exits while writing input.
|
|
20
|
+
- Updated architecture and parity documentation for Harness capabilities and their terminal and
|
|
21
|
+
host surfaces.
|
|
22
|
+
|
|
23
|
+
## Installation and requirements
|
|
24
|
+
|
|
25
|
+
Use `npm install --global @xingular/harness@4.0.0`, then `xagent`. Node 22.19 or later is required.
|
|
26
|
+
The interactive terminal also requires Bun; release CI uses Node 22.19.0 and Bun 1.4.2. Browser
|
|
27
|
+
operation requires an installed compatible browser or a deliberately configured endpoint. Model
|
|
28
|
+
credentials are configured inside an isolated Harness account.
|
|
29
|
+
|
|
30
|
+
## Compatibility
|
|
31
|
+
|
|
32
|
+
The new server methods are additive. The published executable is `xagent`, replacing the earlier
|
|
33
|
+
`xharness` candidate command without a compatibility alias; scripts using that candidate name must
|
|
34
|
+
be updated. Required built-in plugin commands use unprefixed names:
|
|
35
|
+
`/subagents`, `/trajectory`, `/doctor`, and `/worktree`. Optional built-in and third-party extension
|
|
36
|
+
commands use `/plugin:<command>`; the optional page-annotation commands remain `/plugin:notes` and
|
|
37
|
+
`/plugin:annotate`. Update scripts and keybindings that used the earlier candidate's prefixed forms
|
|
38
|
+
for required commands. Existing session, variant, account, plugin, and browser contracts remain in
|
|
39
|
+
place. Install this exact version or use the `latest` tag; historical versions remain available.
|
|
40
|
+
|
|
41
|
+
## Verification scope
|
|
42
|
+
|
|
43
|
+
The Harness CI suite, standalone proof, App typecheck/tests/layer check/Rust tests, and App UI
|
|
44
|
+
consistency check must pass for the reviewed release candidate. The release tag workflow separately
|
|
45
|
+
builds and smoke-tests the exact tarball on its supported operating systems before publishing it
|
|
46
|
+
with npm provenance.
|
package/docs/releases/README.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# Release procedure
|
|
2
2
|
|
|
3
|
-
1. Review and commit completed Harness changes on release
|
|
4
|
-
separately. Preserve old tags and exclude outputs, external references
|
|
3
|
+
1. Review and commit completed Harness changes on the active release branch. Review App
|
|
4
|
+
compatibility changes separately. Preserve old tags and exclude outputs, external references,
|
|
5
|
+
and caches.
|
|
5
6
|
2. Run npm run ci and the required App checks on unrestricted macOS/Linux runners. Install Bun
|
|
6
7
|
1.4.2 and use Node 22.19.0 for the release build. Do not waive failing checks.
|
|
7
8
|
3. Run npm run release:pack. The unique output folder contains the candidate tarball, inventory,
|
|
@@ -9,10 +10,11 @@
|
|
|
9
10
|
dependency installation and packaged SDK/server/terminal checks. --offline reuses the checkout's
|
|
10
11
|
installed dependency tree and is only a local smoke check, not fresh-install acceptance.
|
|
11
12
|
4. Run npm run release:preflight. Verify npm scope ownership and trusted-publisher settings for
|
|
12
|
-
tanntnny/xingular-harness
|
|
13
|
-
automatically.
|
|
13
|
+
tanntnny/xingular-harness and workflow release.yml, with direct publishing enabled. No login is
|
|
14
|
+
started automatically. An already-used target version or unreachable registry blocks publication.
|
|
14
15
|
5. Present the exact commit, candidate inventory/hash, notes and check results for approval. Pushing
|
|
15
|
-
|
|
16
|
+
the matching v<version> tag triggers publication; do not push it before this approval. Preserve
|
|
17
|
+
historical tags.
|
|
16
18
|
6. After approval, push the reviewed commits and tag. The workflow runs both OS checks, packages
|
|
17
19
|
and tests one candidate, then publishes that same tarball with OIDC provenance and --tag latest.
|
|
18
20
|
No local publishing token is needed. It verifies registry integrity/provenance and creates a
|
|
@@ -22,15 +24,18 @@ A published version cannot be replaced. Corrections require a later version. Thi
|
|
|
22
24
|
intentional 1.0.0 reset does not rewrite historical decisions or claim an ordering above older
|
|
23
25
|
2.x–5.x development versions. Publication status and local evidence belong in the candidate report.
|
|
24
26
|
|
|
25
|
-
##
|
|
27
|
+
## 4.0.0 candidate preparation
|
|
26
28
|
|
|
27
|
-
Local
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
Local checks on the candidate source passed: Harness `npm run ci` (typecheck, 134 test files with
|
|
30
|
+
1,004 passing tests and 3 skipped, plus the standalone proof); App typecheck, `npm test` (566 renderer
|
|
31
|
+
tests, 47 sidecar tests, and 7 dev-signing tests passed with 1 skipped), layer check, and Rust tests
|
|
32
|
+
(168 passed, 1 ignored); and App UI consistency. The registry lists 1.0.0 as `latest` and 4.0.0 as
|
|
33
|
+
unused. The clean-tree release preflight passed. Exact-tarball packaging and a fresh-install smoke
|
|
34
|
+
test passed, including the packaged SDK, types, CLI, server and isolated terminal. The tagged
|
|
35
|
+
preflight, two-OS CI, and exact-tarball smoke are enforced by the release workflow. The npm
|
|
36
|
+
trusted-publisher configuration for `tanntnny/xingular-harness` and `release.yml` requires
|
|
37
|
+
package-owner verification; `npm login` does not verify that setting.
|
|
33
38
|
|
|
34
|
-
The release
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
The release workflow runs its full CI and exact-tarball smoke test on both Ubuntu and macOS before
|
|
40
|
+
publishing. Branch upload and the matching release-tag push are separate GitHub side effects; only
|
|
41
|
+
the tag triggers publication. No local test failure is waived by this note.
|
package/docs/study/00-index.md
CHANGED
|
@@ -11,6 +11,11 @@ written and the claim moves to checked behavior. Cite material as
|
|
|
11
11
|
|
|
12
12
|
## Focused notes
|
|
13
13
|
|
|
14
|
+
- [Proactive autonomy and three feature directions](proactive-autonomy.md) — scheduled initiative,
|
|
15
|
+
a human-readable agenda, UI repair, cleanup and product experiments; fresh
|
|
16
|
+
[proactive-system evidence](autonomy-sources.md) and
|
|
17
|
+
[autonomous-engineering evidence](autonomous-engineering-sources.md). Research hypotheses,
|
|
18
|
+
not an accepted architecture change.
|
|
14
19
|
- [`/btw` side-question comparison](btw-comparison.md) — this terminal, the App-owned
|
|
15
20
|
side question, and checked-out external implementations.
|
|
16
21
|
- [Harness feature-gap review](feature-gap-review.md) — task/goal management, long-running work,
|