@magnusekdahl/parallix 1.5.440 → 1.5.458

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/NOTICES CHANGED
@@ -1,4 +1,4 @@
1
- THIRD-PARTY NOTICES for @magnusekdahl/parallix 1.5.440
1
+ THIRD-PARTY NOTICES for @magnusekdahl/parallix 1.5.458
2
2
 
3
3
  @magnusekdahl/parallix itself is licensed under AGPL-3.0-or-later; see LICENSE.
4
4
 
package/README.md CHANGED
@@ -165,6 +165,8 @@ Both are optional integrations, and each one is wired independently of the other
165
165
 
166
166
  **Forgejo.** Review publication is off until you opt in. If you want its reviewer surface, `px setup` can bootstrap the review repository, agent tokens, and the `review` git remote; otherwise the branch/worktree workflow runs without Forgejo. Forgejo user accounts must already exist before that optional setup; see [`docs/forgejo-setup.md`](docs/forgejo-setup.md) for account creation, token layout, and running a local instance.
167
167
 
168
+ Historical review-state and review-event files are no longer imported; review resumes from the database-owned Review.
169
+
168
170
  ## Use cases
169
171
 
170
172
  The durable capability guide and confidence boundaries are in [`docs/use-cases.md`](docs/use-cases.md).
@@ -41,6 +41,10 @@
41
41
  "key": "prompts/review.md",
42
42
  "sha256": "06431c3f965935db27b254164d3bfa66aa7cc2a5602031f181dcc5e32f3e5739"
43
43
  },
44
+ {
45
+ "key": "prompts/repair.md",
46
+ "sha256": "18aeb66654f075f284a0ad934d5c71b5a9ff89426b5068c6b7af4e5be08381cf"
47
+ },
44
48
  {
45
49
  "key": "templates/mission-scaffold.md",
46
50
  "sha256": "64ceff9f8a45d1769c8e70b0545a554065ffd285aa33b862447cb2ac70d28093"
@@ -221,6 +225,10 @@
221
225
  "key": "migrations/0041-admission-resources.sql",
222
226
  "sha256": "eb04fe7a9e4c295f3b751c65b915580e897d22d4f771dd75e531295c92973ed0"
223
227
  },
228
+ {
229
+ "key": "migrations/0042-execution-activity.sql",
230
+ "sha256": "6d8778c163b19db959dfcbe801d2f6640bccc39bfc8bab6f1188a3d2a9ffc464"
231
+ },
224
232
  {
225
233
  "key": "decision/tokenizer-data.gz",
226
234
  "sha256": "c83abf9a2ab7966fbeec566cacb00c1aa48f6ac0ca66054fa7999d000c020012"
@@ -1,4 +1,4 @@
1
- 1ecb336caae5bbb1a2ad1a61b467ea1ca058d1b7ad2f5b200aa8d00d76dae1c0 asset-manifest.json
1
+ c39ad8da9770a1e4a6493cf28f30101ccb48bbf392de1d12ef68e32567d27d5e asset-manifest.json
2
2
  ec3ec505e42adc8cddc17651d7a1a85b6359a433e1e62f3c6c22a4896150187f config/agents.json
3
3
  6a4ec47387d1240e32967dc8e4ce54a15d69df2676b7a96ff72baafe996fef7d config/state-map.json
4
4
  c83abf9a2ab7966fbeec566cacb00c1aa48f6ac0ca66054fa7999d000c020012 decision/tokenizer-data.gz
@@ -46,21 +46,23 @@ d59c6e91e82e9cdd93fb2735209a396cfd9d68c73dbee18b55b4db68b00d44f1 migrations/003
46
46
  899d9d535e079ef2bd04cc1a52b24ab8fdb82195f1d6257218f0dc4827c20562 migrations/0039-workflow-operations.sql
47
47
  f600df1684fe3a7e8423090759a6578378e44a306a6498457e69eb72c858d902 migrations/0040-goal-check-carried-from.sql
48
48
  eb04fe7a9e4c295f3b751c65b915580e897d22d4f771dd75e531295c92973ed0 migrations/0041-admission-resources.sql
49
- 2f70f3dd38df28e87d241eca4809ef7034b9934805cf1df8df9afa33426e7ecc package.json
49
+ 6d8778c163b19db959dfcbe801d2f6640bccc39bfc8bab6f1188a3d2a9ffc464 migrations/0042-execution-activity.sql
50
+ f8a14db7c9f445d7abecf9cf55bce0303c2e0aaa09d4f4c97e2e127f4bce027b package.json
50
51
  e0f14f5d559391eccebd1a85da0c709c90ff74f04a5cb8809303f0d372a3bc86 prompts/act-on-review-core.md
51
52
  c3e7caaaaa110fd7da1b055a593d8f56a66cb8bb7bb70ccdb3f43250fba7e9d2 prompts/act-on-review.md
52
53
  352006d7edd95c47dd405d98b7ec1103b1705e9232e153e89637ddb4bf389655 prompts/draft-core.md
53
54
  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 prompts/draft.md
54
55
  de5ad6f1eef4b856e912865667cb738fc0716b707dd62068ef176f89f0bf3032 prompts/execute-core.md
55
56
  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 prompts/execute.md
57
+ 18aeb66654f075f284a0ad934d5c71b5a9ff89426b5068c6b7af4e5be08381cf prompts/repair.md
56
58
  f0c58cd3d9853de4e2715f85d6e43a99c2820e84b86bc0f8f1c54d82618c457b prompts/review-core.md
57
59
  06431c3f965935db27b254164d3bfa66aa7cc2a5602031f181dcc5e32f3e5739 prompts/review.md
58
- 6fb1d8c86234c5e20e0ccf5d3d173ea032f3c2f4401f2a7ef6ca2abbb24f223a px.mjs
59
- 681fdbca8ee8be6a627df49792bffa06cd242b72ad1f21707760e60d6af1a843 px.mjs.map
60
- 02af159e3844be3491716d8358ef915ec79c2f4ce87dde5182ab8fbf8b971e13 sbom.json
60
+ eaa35910e840dde09ba8837bc7fedce436e170b47a97436a527a6985352857d0 px.mjs
61
+ d32dc901cc501d3b12febed63b656974869169613072bfc4619b74ebeb30ae93 px.mjs.map
62
+ 4e636002cbe472f0714e44851bf9696fe0d44bed9ff4583d14bd617d6a2b1fd4 sbom.json
61
63
  64ceff9f8a45d1769c8e70b0545a554065ffd285aa33b862447cb2ac70d28093 templates/mission-scaffold.md
62
64
  35a828a2a248c396af77c4b3090d2cb1ec37858128a591df62398457f909618d web/assets/index-BLNC0e_y.css
63
- 1f33e00de49fdef61822ae6d90e6c1068eb1414099fdeb8f9243925f45a1390d web/assets/index-CldvmTYt.js
65
+ c5a03ebd14e136e740a36c14ce144c18f91bcd2ae307f08386d634fc1d9b2973 web/assets/index-CpXzuHrK.js
64
66
  844d5ef0608e16d8234ded7a0dd60eedeb2fe404ed62932df8ff26f03bbf6279 web/fonts/FONTS.txt
65
67
  ad3a6fb70cbc6264692395e7ed71de8bc8919f63e7fd194c6a5eb047d0f248ea web/fonts/OFL-Barlow-Condensed.txt
66
68
  a76abf002c49097d146e86740a3105a5d00450b1592e820a1109a8c5680cd697 web/fonts/OFL-JetBrains-Mono.txt
@@ -69,5 +71,5 @@ a76abf002c49097d146e86740a3105a5d00450b1592e820a1109a8c5680cd697 web/fonts/OFL-
69
71
  14425ba9c695763c1547f48a206b7aa60350a33ae23de09f0407877f3fcd89eb web/fonts/jetbrains-mono-latin-400.woff2
70
72
  cb182feeed4d798ff6961d3c79f7026279448fca0676438aaecb21f3fc39553a web/fonts/jetbrains-mono-latin-500.woff2
71
73
  d0d4e818808f2a0ba39b2b09d1989366f63494e295f003c7ef436697378507e8 web/fonts/jetbrains-mono-latin-700.woff2
72
- 254913d7bf587212951d7228f00a2705f661daab61a0118c4690b70caf07d0c9 web/index.html
73
- a125957f0208113603a04bbacdb70628b1d41bac80ea5d3ef2aa02a6a3af5d31 web/manifest.json
74
+ e6adcf80bb9a5af9a71b635c8a79ce034bd8c4e98defb599358b27cdc056b1ae web/index.html
75
+ 7b8cfd15cf19dabfb6397ba35f5b7a19f00bce8876238bc334c203f49720a0c1 web/manifest.json
@@ -0,0 +1,67 @@
1
+ DROP INDEX workflow_exclusive_mission;
2
+ UPDATE workflow_operations
3
+ SET phase = 'executing', record_json = json_set(record_json, '$.phase', 'executing')
4
+ WHERE phase IN ('preparing', 'waiting', 'running', 'checking');
5
+ UPDATE workflow_operations
6
+ SET record_json = json_set(record_json, '$.command', 'review:submit')
7
+ WHERE json_extract(record_json, '$.command') = 'handoff:record';
8
+ CREATE UNIQUE INDEX workflow_exclusive_mission ON workflow_operations(repository_id, mission_id)
9
+ WHERE phase IN ('accepted', 'executing', 'stopping');
10
+ -- This is live repair metadata, not an audit/version row. The value is the
11
+ -- workflow's internal non-gate marker; it must not be replayed as a shell check.
12
+ UPDATE mission_checkpoints
13
+ SET repair_json = json_set(repair_json, '$.command', 'review-preparation')
14
+ WHERE repair_json IS NOT NULL AND json_valid(repair_json)
15
+ AND json_extract(repair_json, '$.command') = 'px handoff';
16
+
17
+ -- Early review entry and verified submission are separate durable boundaries.
18
+ ALTER TABLE missions ADD COLUMN review_preparation_pending INTEGER NOT NULL DEFAULT 0
19
+ CHECK (review_preparation_pending IN (0, 1));
20
+
21
+ CREATE TABLE execution_activity (
22
+ repository_id TEXT NOT NULL,
23
+ mission_id TEXT NOT NULL,
24
+ snapshot_json TEXT NOT NULL,
25
+ PRIMARY KEY(repository_id, mission_id)
26
+ );
27
+
28
+ -- The cutover assumes no running operations. Preserve unresolved failure facts
29
+ -- as current snapshots without changing any original audit row or its identity.
30
+ -- A later supported start supersedes a blocker; diagnostic recovery does not.
31
+ WITH history AS MATERIALIZED (
32
+ SELECT id, event_data, created_at,
33
+ json_extract(event_data, '$.missionId') AS mission_id,
34
+ json_extract(event_data, '$.operationId') AS operation_id,
35
+ json_extract(event_data, '$.state') AS state,
36
+ json_extract(event_data, '$.phase') AS phase
37
+ FROM operational_history
38
+ WHERE event_type = 'mission.current-work' AND json_valid(event_data)
39
+ ), blockers AS (
40
+ SELECT h.* FROM history h
41
+ WHERE h.state = 'blocked' AND h.phase IN ('draft','execute','waiting','handoff','review','review-response','integrate')
42
+ AND NOT EXISTS (SELECT 1 FROM history later WHERE later.mission_id = h.mission_id
43
+ AND later.id > h.id AND later.state = 'running' AND later.phase <> 'recovery')
44
+ AND NOT EXISTS (SELECT 1 FROM history started WHERE started.mission_id = h.mission_id
45
+ AND started.state = 'running' AND started.phase <> 'recovery'
46
+ AND started.operation_id IS NOT NULL AND h.operation_id IS NOT NULL
47
+ AND started.operation_id <> h.operation_id
48
+ AND started.id = (SELECT MAX(id) FROM history newest WHERE newest.mission_id = h.mission_id
49
+ AND newest.state = 'running' AND newest.phase <> 'recovery'))
50
+ ), retained AS (
51
+ SELECT b.*, COALESCE(NULLIF(b.operation_id, ''), 'cutover-history-row:' || b.id) AS execution_id
52
+ FROM blockers b WHERE b.id = (SELECT MAX(id) FROM blockers latest WHERE latest.mission_id = b.mission_id)
53
+ )
54
+ INSERT INTO execution_activity (repository_id, mission_id, snapshot_json)
55
+ SELECT m.repository_id, r.mission_id, json_object(
56
+ 'missionId', r.mission_id, 'operationId', r.execution_id,
57
+ 'frames', json_array(json_object('sourceId', r.execution_id, 'event', json_set(r.event_data,
58
+ '$.operationId', r.execution_id, '$.phase', CASE r.phase WHEN 'handoff' THEN 'review' ELSE r.phase END,
59
+ '$.occurredAt', r.created_at, '$.processId', NULL,
60
+ '$.blockedReason', COALESCE(json_extract(r.event_data, '$.blockedReason'), 'operation cannot continue autonomously')))),
61
+ 'closedSources', json_array(), 'supersededOperations', json_array(),
62
+ 'retainedBlocker', NULL, 'terminal', NULL)
63
+ FROM retained r JOIN missions m ON m.id = r.mission_id;
64
+
65
+ -- Activity has one persistence owner after cutover.
66
+ UPDATE workflow_operations SET record_json = json_remove(record_json, '$.activities')
67
+ WHERE json_type(record_json, '$.activities') IS NOT NULL;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@magnusekdahl/parallix",
3
- "version": "1.5.440",
3
+ "version": "1.5.458",
4
4
  "type": "module"
5
5
  }
@@ -0,0 +1,112 @@
1
+ # Automatic repair prompts
2
+
3
+ ## repair
4
+
5
+ {{label}} — FRESH-CONTEXT DIAGNOSTIC REPAIR REQUIRED
6
+
7
+ Mission: {{slug}}
8
+ {{worktreeLine}}{{facts}}
9
+
10
+ Original failure evidence (this is not necessarily the root cause):
11
+ ---
12
+ {{originalDiagnostic}}
13
+ ---
14
+ Latest failure evidence (this is not necessarily the root cause):
15
+ ---
16
+ {{latestDiagnostic}}
17
+ ---
18
+
19
+ Classification: {{failureClass}} — {{dispatchAction}}
20
+ Recovery strategy: fresh-diagnostic ({{attempt}}/{{maxAttempts}})
21
+ Retry attempt: {{attempt}}/{{maxAttempts}}
22
+
23
+ {{evidenceRoute}}
24
+ {{authorityRoute}}
25
+
26
+ You have a fresh context. Re-diagnose the failure from the repository and exact evidence; do not assume either diagnostic identifies the root cause.
27
+ Before repair, reload px status {{slug}} --json for the locked goal, scope, success criteria, gates, review disposition and authorized repair/checkpoint obligations. Read applicable AGENTS.md repository rules and inspect the current branch revision and working-tree edits. If authority or evidence is missing, incomplete or stale, report that explicitly; do not invent retrieval or treat an old revision as current proof.
28
+ This dedicated repair prompt defines this launch; do not inherit prior execute/review conversation instructions or review-approval authority. Honor recorded operator decisions and the authorized mission behavior. Preserve locked gates and success criteria; investigate and repair failures rather than bypassing checks or claiming unverified success.
29
+ {{remedy}}
30
+ The failing check re-runs automatically after your fix; this bounce is only reported as fixed when that re-run passes.
31
+ Perform the repair and preserve valid commits and working-tree edits already in the mission worktree; do not reset, clean or silently recommit unrelated work. Commit tracked repair changes as required above. Only the harness rerunning this exact failing check can establish success.
32
+
33
+ ## authority
34
+
35
+ REPAIR AUTHORITY: These dedicated instructions govern this session, including resumed execute or act-on-review context. Preserve locked gates and success criteria. Test code and assertions are repairable within the authorized mission after investigating the behavior they protect.
36
+ Before changing a test, inspect its owning suite, nearby assertions and Git history to understand why the test exists. Trace what this mission changes through the production callers and compare the failure with the authorized behavior. If it exposes a product regression, fix the production code. If the authorized change supersedes the old expectation, update the test while preserving distinct safety and behavioral coverage. Make this decision yourself within the authorized mission, explain the evidence and product risks in the repair checkpoint, and verify the repaired behavior. A failing assertion or the need to edit a test is not a reason to request human attention. Escalate only an unresolved product decision or conflict with locked gates, scope or success criteria that you cannot resolve from the mission, recorded operator decisions and repository evidence; identify the conflicting requirements, investigated alternatives and behavioral consequences.
37
+ Run px checkpoint check --slug {{slug}} --json before declaring completion. Inspect ready and primaryStopReason. A recorded unresolved human-only contract blocker is the primary stop reason even when checkpoint evidence is incomplete: stop for the operator; do not fabricate proof, start repeated evidence-only repair, use record --force, or treat prose as resolution. Only an explicit operator decision can clear the recorded blocker.
38
+ Only a successful harness rerun of the authorized required check establishes repair success; an unrelated passing test or an agent claim does not.
39
+
40
+ ## checkpoint
41
+
42
+ Harness-created repair checkpoint: {{checkpointName}}; Version at launch: {{checkpointVersion}}.
43
+ Within the locked scope and success criteria, record verifiable evidence with px checkpoint record --name {{checkpointName}} --criterion "<exact affected success criterion>" --evidence "<verifiable reference and result>" --next "<specific next action>" for {{checkpointName}}, and the same command with --name <CP-N> for every other planned checkpoint (for example an original CP-3) still without recorded evidence. The write resolves its own current version. Retain valid earlier evidence for unaffected criteria without restating it; affected criteria need fresh verifiable evidence from this round. If the fix shows earlier evidence is no longer accurate, re-record that checkpoint with corrected fresh evidence for the criteria it affects. Every planned checkpoint needs evidence and every success criterion must be covered before review preparation. Complete every remaining planned checkpoint before review preparation. Do not edit locked scope or criteria, weaken or bypass gates, or self-approve: independent review stays the approver.
44
+
45
+ ## report
46
+
47
+ Only if that investigation establishes an unresolved conflict requiring a product decision outside your authority, run px checkpoint report-invalid-contract --name {{checkpointName}} --command "<exact failing command>" --diagnostic "<exact diagnostic>" --authority-reason "<investigated conflict requiring operator authority>" --proposed-correction "<operator correction>", then stop. The first report stops automatic repair retries and routes that unresolved decision to human review.
48
+
49
+ ## report-without-checkpoint
50
+
51
+ Only after establishing an unresolved conflict outside your authority, report it with command, diagnostic, authorityReason and proposedCorrection, then stop for human review.
52
+
53
+ ## repair-authority
54
+
55
+ Diagnose the actual cause from the failed check and its logs; do not assume it is a test or code path inside the original mission scope. Repair the cause wherever it lies within your authority (repository code, tests, configuration, the local environment, or runner configuration). Preserve locked gates and success criteria, mission deliverables and safety boundaries; do not suppress failures or reduce behavioral coverage merely to obtain a passing check. If the repair changes tracked files, commit it before the automatic re-verification: the re-run verifies the committed mission tree, so an uncommitted repair cannot be verified and is reported as still failing. A repair outside the repository needs no commit. If the cause is external and you cannot repair it (for example a model service or network dependency that is down), make no speculative changes: report the exact blocker with its evidence and stop, because another repair attempt cannot fix it.
56
+
57
+ ## mission-outcome
58
+
59
+ the locked goal and success criteria of {{slug}} (px status {{slug}}), delivered with this check passing
60
+
61
+ ## integration-cause
62
+
63
+ The integration gate (not the review gate) failed: the mission was reviewed and approved, then a red pre-integration gate rejected the finalized tree on the way to a human integration. Repair the integration failure, not a review finding.
64
+
65
+ ## gate
66
+
67
+ Start with the listed gate command in the listed worktree and the captured failure output. Do not substitute a broader verification command or integration suite to rediscover the failure. {{repairAuthority}}
68
+
69
+ ## hook
70
+
71
+ Make the Git hook pass when Parallix commits or rebases this mission. {{repairAuthority}}
72
+
73
+ ## rebase
74
+
75
+ Review shared conflicts semantically in the mission worktree. Preserve newer base behavior, completed work and unique mission intent; do not resurrect retired metadata or use blanket ours/theirs. Stage every resolved path and continue through successive pauses until Git reports no rebase and no unmerged paths. Stop on ambiguous intent or a human-only decision.
76
+
77
+ ## review-preparation
78
+
79
+ Fix the underlying issue so review preparation verification passes.
80
+
81
+ ## declaration
82
+
83
+ Stop and request an operator decision for this mechanically invalid declaration; do not replace your own locked check.
84
+
85
+ ## artifacts
86
+
87
+ Produce the complete {{role}} artifacts the workflow requires.
88
+
89
+ ## timeout
90
+
91
+ Produce {{output}} and report it through the normal review artifact or provider path.
92
+
93
+ ## history
94
+
95
+ Earlier agent runs of this mission are searchable with `px history search <pattern>` and `px history show <ref>` (bounded; cite the run: references).
96
+
97
+ ## evidence-read
98
+
99
+ Read the stdout/stderr files directly. Repository APIs (not CLI commands or callable agent tools; use the captured mission identity): listRecoveryEvidence({ cwd }) or lookupRecoveryEvidence({ cwd, incidentId: "{{incidentId}}" }).
100
+
101
+ ## reviewer-output
102
+
103
+ {{label}}
104
+ Reviewer output recovery. You have a fresh context. You remain the independent reviewer.
105
+ Retry attempt: {{attempt}}/{{maxAttempts}}
106
+ {{expectedOutput}}{{evidenceRoute}}
107
+ Mission: {{slug}}; attempt {{attempt}}/{{maxAttempts}}.
108
+ Original failure: {{originalDiagnostic}}
109
+ Latest failure: {{latestDiagnostic}}
110
+ Read px status {{slug}} --json and the current revision; complete the remaining independent review obligations.
111
+ Submit your verdict through px verdict approve or px verdict request-changes with the assigned reviewer actor. You have authority to approve a correct fix.
112
+ Read applicable AGENTS.md repository rules. Inspect the current branch revision and working-tree edits. If evidence is missing or stale, report it explicitly. This retry requires reviewer output only. Preserve the mission tree and report any workflow rejection with its cause and supported operator recovery action.