@pennyfarthing/core 10.3.1 → 10.4.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/README.md +3 -3
- package/package.json +1 -1
- package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/init.js +3 -0
- package/packages/core/dist/cli/commands/init.js.map +1 -1
- package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/update.js +62 -122
- package/packages/core/dist/cli/commands/update.js.map +1 -1
- package/packages/core/dist/cli/commands/version-sentinel.test.d.ts +18 -0
- package/packages/core/dist/cli/commands/version-sentinel.test.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/version-sentinel.test.js +120 -0
- package/packages/core/dist/cli/commands/version-sentinel.test.js.map +1 -0
- package/packages/core/dist/cli/utils/manifest.d.ts +1 -0
- package/packages/core/dist/cli/utils/manifest.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/manifest.js.map +1 -1
- package/packages/core/dist/cli/utils/migrations.d.ts +88 -0
- package/packages/core/dist/cli/utils/migrations.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/migrations.js +105 -0
- package/packages/core/dist/cli/utils/migrations.js.map +1 -0
- package/packages/core/dist/cli/utils/migrations.test.d.ts +23 -0
- package/packages/core/dist/cli/utils/migrations.test.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/migrations.test.js +319 -0
- package/packages/core/dist/cli/utils/migrations.test.js.map +1 -0
- package/packages/core/dist/cli/utils/version-sentinel.d.ts +32 -0
- package/packages/core/dist/cli/utils/version-sentinel.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/version-sentinel.js +49 -0
- package/packages/core/dist/cli/utils/version-sentinel.js.map +1 -0
- package/packages/core/dist/workflow/context-watch.d.ts +81 -0
- package/packages/core/dist/workflow/context-watch.d.ts.map +1 -0
- package/packages/core/dist/workflow/context-watch.js +236 -0
- package/packages/core/dist/workflow/context-watch.js.map +1 -0
- package/packages/core/dist/workflow/context-watch.test.d.ts +2 -0
- package/packages/core/dist/workflow/context-watch.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/context-watch.test.js +747 -0
- package/packages/core/dist/workflow/context-watch.test.js.map +1 -0
- package/pennyfarthing-dist/agents/dev.md +47 -0
- package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/version_sentinel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/version_sentinel.py +104 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/archive_epic.py +9 -1
- package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_version_sentinel.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/test_version_sentinel.py +126 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-watch.test.js","sourceRoot":"","sources":["../../src/workflow/context-watch.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,53 @@ The simplest code that passes the tests IS the right code. Every abstraction you
|
|
|
17
17
|
**Shipping beats perfection. Wire it up, make it work, move on.**
|
|
18
18
|
</minimalist-discipline>
|
|
19
19
|
|
|
20
|
+
<critical>
|
|
21
|
+
## Pre-Edit Topology Check
|
|
22
|
+
|
|
23
|
+
**Before editing ANY file, verify against repos.yaml topology loaded in your prime context.**
|
|
24
|
+
|
|
25
|
+
### Rules
|
|
26
|
+
|
|
27
|
+
1. **Check `never_edit` zones.** If the target path matches a `never_edit` glob, STOP. These are symlinks, build output, or dependencies.
|
|
28
|
+
2. **Check repo ownership.** Match the target path against each repo's `owns` globs to confirm you're editing in the correct repo. Orchestrator files stay in the orchestrator repo; framework files go through `pennyfarthing/`.
|
|
29
|
+
3. **Trace symlinks.** If a path is in the `symlinks` map, edit the **source** (right side), not the symlink (left side). Edits to symlink targets silently write to the wrong git repo.
|
|
30
|
+
|
|
31
|
+
### Worked Examples
|
|
32
|
+
|
|
33
|
+
**Mistake 1: Editing a symlinked `.pennyfarthing/` path**
|
|
34
|
+
```
|
|
35
|
+
BAD: Edit .pennyfarthing/agents/dev.md
|
|
36
|
+
→ This is a symlink to pennyfarthing/pennyfarthing-dist/agents/dev.md
|
|
37
|
+
→ Your edit lands in the pennyfarthing repo but you think you're in the orchestrator
|
|
38
|
+
FIX: Edit pennyfarthing/pennyfarthing-dist/agents/dev.md directly
|
|
39
|
+
WHY: repos.yaml symlinks: { .pennyfarthing/agents: pennyfarthing/pennyfarthing-dist/agents }
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Mistake 2: Editing inside `node_modules/`**
|
|
43
|
+
```
|
|
44
|
+
BAD: Edit node_modules/@pennyfarthing/core/pennyfarthing-dist/scripts/core/find-root.sh
|
|
45
|
+
→ This gets overwritten on next install
|
|
46
|
+
FIX: Edit pennyfarthing/pennyfarthing-dist/scripts/core/find-root.sh, then rebuild
|
|
47
|
+
WHY: repos.yaml never_edit: [node_modules/**] (both repos)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Mistake 3: Editing the wrong repo's files**
|
|
51
|
+
```
|
|
52
|
+
BAD: From pennyfarthing repo, edit sprint/current-sprint.yaml
|
|
53
|
+
→ sprint/** is owned by the orchestrator repo
|
|
54
|
+
FIX: Switch to the orchestrator repo root, then edit sprint/current-sprint.yaml
|
|
55
|
+
WHY: repos.yaml orchestrator.owns: [sprint/**], not pennyfarthing.owns
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Mistake 4: Editing build output**
|
|
59
|
+
```
|
|
60
|
+
BAD: Edit packages/cyclist/dist/index.js
|
|
61
|
+
→ Build artifacts are regenerated and your changes are lost
|
|
62
|
+
FIX: Edit packages/cyclist/src/index.ts, then run pnpm build
|
|
63
|
+
WHY: repos.yaml never_edit: [packages/*/dist/**]
|
|
64
|
+
```
|
|
65
|
+
</critical>
|
|
66
|
+
|
|
20
67
|
<critical>
|
|
21
68
|
**HANDOFF REQUIRES MARKER OUTPUT.** After `handoff` subagent returns:
|
|
22
69
|
Run `handoff-marker.sh {next_agent}` as ABSOLUTE LAST ACTION, output result, EXIT.
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"""Version sentinel detection for auto-update in prime.
|
|
2
|
+
|
|
3
|
+
MSSCI-14698: Reads .pennyfarthing/.installed-version sentinel and compares
|
|
4
|
+
against current package version. On mismatch, signals that auto-update
|
|
5
|
+
is needed.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import json
|
|
11
|
+
from dataclasses import dataclass
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
SENTINEL_FILENAME = ".installed-version"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@dataclass
|
|
19
|
+
class VersionCheckResult:
|
|
20
|
+
"""Result of version mismatch check."""
|
|
21
|
+
|
|
22
|
+
needs_update: bool
|
|
23
|
+
installed_version: str | None
|
|
24
|
+
package_version: str
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def read_sentinel_version(project_root: Path) -> str | None:
|
|
28
|
+
"""Read version from .pennyfarthing/.installed-version sentinel.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
project_root: Project root directory
|
|
32
|
+
|
|
33
|
+
Returns:
|
|
34
|
+
Version string, or None if sentinel doesn't exist or is empty
|
|
35
|
+
"""
|
|
36
|
+
sentinel_path = project_root / ".pennyfarthing" / SENTINEL_FILENAME
|
|
37
|
+
|
|
38
|
+
if not sentinel_path.exists():
|
|
39
|
+
return None
|
|
40
|
+
|
|
41
|
+
content = sentinel_path.read_text().strip()
|
|
42
|
+
return content or None
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def get_package_version(project_root: Path) -> str:
|
|
46
|
+
"""Get the current package version from VERSION file or package.json.
|
|
47
|
+
|
|
48
|
+
Checks VERSION file first (plain text), then falls back to package.json.
|
|
49
|
+
|
|
50
|
+
Args:
|
|
51
|
+
project_root: Project root directory
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
Version string
|
|
55
|
+
|
|
56
|
+
Raises:
|
|
57
|
+
FileNotFoundError: If no version source found
|
|
58
|
+
"""
|
|
59
|
+
# Try VERSION file first
|
|
60
|
+
version_file = project_root / "VERSION"
|
|
61
|
+
if version_file.exists():
|
|
62
|
+
version = version_file.read_text().strip()
|
|
63
|
+
if version:
|
|
64
|
+
return version
|
|
65
|
+
|
|
66
|
+
# Fall back to package.json
|
|
67
|
+
package_json = project_root / "package.json"
|
|
68
|
+
if package_json.exists():
|
|
69
|
+
data = json.loads(package_json.read_text())
|
|
70
|
+
version = data.get("version", "")
|
|
71
|
+
if version:
|
|
72
|
+
return version
|
|
73
|
+
|
|
74
|
+
raise FileNotFoundError(
|
|
75
|
+
f"No VERSION file or package.json found in {project_root}"
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def check_version_mismatch(
|
|
80
|
+
project_root: Path,
|
|
81
|
+
*,
|
|
82
|
+
package_version: str | None = None,
|
|
83
|
+
) -> VersionCheckResult:
|
|
84
|
+
"""Compare sentinel version against package version.
|
|
85
|
+
|
|
86
|
+
Args:
|
|
87
|
+
project_root: Project root directory
|
|
88
|
+
package_version: Override package version (for testing).
|
|
89
|
+
If None, reads from VERSION file.
|
|
90
|
+
|
|
91
|
+
Returns:
|
|
92
|
+
VersionCheckResult with needs_update flag
|
|
93
|
+
"""
|
|
94
|
+
if package_version is None:
|
|
95
|
+
package_version = get_package_version(project_root)
|
|
96
|
+
|
|
97
|
+
installed = read_sentinel_version(project_root)
|
|
98
|
+
needs_update = installed != package_version
|
|
99
|
+
|
|
100
|
+
return VersionCheckResult(
|
|
101
|
+
needs_update=needs_update,
|
|
102
|
+
installed_version=installed,
|
|
103
|
+
package_version=package_version,
|
|
104
|
+
)
|
|
Binary file
|
|
Binary file
|
|
@@ -65,7 +65,11 @@ def ensure_archive_file(project_root: Path | None = None) -> Path:
|
|
|
65
65
|
|
|
66
66
|
sprint_name = sprint_info.get("jira_sprint_name", "Unknown Sprint")
|
|
67
67
|
sprint_id = sprint_info.get("jira_sprint_id", "")
|
|
68
|
+
sprint_number = sprint_info.get("number", "")
|
|
68
69
|
goal = sprint_info.get("goal", "")
|
|
70
|
+
start_date = sprint_info.get("start_date", "")
|
|
71
|
+
end_date = sprint_info.get("end_date", "")
|
|
72
|
+
status = sprint_info.get("status", "active")
|
|
69
73
|
|
|
70
74
|
template = f"""# Sprint {sprint_name} - Completed Work
|
|
71
75
|
# Jira Sprint ID: {sprint_id}
|
|
@@ -73,9 +77,13 @@ def ensure_archive_file(project_root: Path | None = None) -> Path:
|
|
|
73
77
|
|
|
74
78
|
sprint:
|
|
75
79
|
name: "{sprint_name}"
|
|
80
|
+
number: {sprint_number}
|
|
76
81
|
jira_sprint_id: {sprint_id}
|
|
77
82
|
jira_sprint_name: "{sprint_name}"
|
|
78
83
|
goal: {goal}
|
|
84
|
+
start_date: {start_date}
|
|
85
|
+
end_date: {end_date}
|
|
86
|
+
status: {status}
|
|
79
87
|
|
|
80
88
|
completed_epics:
|
|
81
89
|
# Epic shard files live in sprint/archive/epic-{{ref}}.yaml
|
|
@@ -183,7 +191,7 @@ def is_epic_complete(epic: dict[str, Any]) -> tuple[bool, list[str]]:
|
|
|
183
191
|
incomplete = []
|
|
184
192
|
for story in stories:
|
|
185
193
|
story_status = story.get("status", "backlog")
|
|
186
|
-
if story_status not in ("done", "completed", "cancelled"):
|
|
194
|
+
if story_status not in ("done", "completed", "canceled", "cancelled"):
|
|
187
195
|
incomplete.append(story.get("id", "unknown"))
|
|
188
196
|
|
|
189
197
|
return len(incomplete) == 0, incomplete
|
|
Binary file
|
package/pennyfarthing_scripts/tests/__pycache__/test_version_sentinel.cpython-314-pytest-9.0.2.pyc
ADDED
|
Binary file
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"""Tests for MSSCI-14698: Version sentinel detection in prime.
|
|
2
|
+
|
|
3
|
+
Story 98-1: pf agent start (prime) compares .pennyfarthing/.installed-version
|
|
4
|
+
sentinel against package version. On mismatch, triggers auto-update.
|
|
5
|
+
|
|
6
|
+
Acceptance Criteria tested here:
|
|
7
|
+
- AC3: pf agent start (prime) compares sentinel version against package version
|
|
8
|
+
- AC4: On version mismatch, auto-runs pennyfarthing update --auto
|
|
9
|
+
- AC6: Missing sentinel file treated as version mismatch (triggers update)
|
|
10
|
+
|
|
11
|
+
(AC1, AC2, AC5 tested in TypeScript: packages/core/src/cli/commands/version-sentinel.test.ts)
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
from unittest.mock import patch, MagicMock
|
|
16
|
+
|
|
17
|
+
import pytest
|
|
18
|
+
|
|
19
|
+
# Module to be implemented
|
|
20
|
+
from pennyfarthing_scripts.prime.version_sentinel import (
|
|
21
|
+
read_sentinel_version,
|
|
22
|
+
get_package_version,
|
|
23
|
+
check_version_mismatch,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class TestReadSentinelVersion:
|
|
28
|
+
"""Tests for reading the sentinel file."""
|
|
29
|
+
|
|
30
|
+
def test_reads_version_from_sentinel_file(self, tmp_path: Path) -> None:
|
|
31
|
+
"""AC3: Should read version from .pennyfarthing/.installed-version."""
|
|
32
|
+
pf_dir = tmp_path / ".pennyfarthing"
|
|
33
|
+
pf_dir.mkdir()
|
|
34
|
+
sentinel = pf_dir / ".installed-version"
|
|
35
|
+
sentinel.write_text("10.3.1\n")
|
|
36
|
+
|
|
37
|
+
version = read_sentinel_version(tmp_path)
|
|
38
|
+
assert version == "10.3.1"
|
|
39
|
+
|
|
40
|
+
def test_returns_none_when_sentinel_missing(self, tmp_path: Path) -> None:
|
|
41
|
+
"""AC6: Missing sentinel file should return None."""
|
|
42
|
+
pf_dir = tmp_path / ".pennyfarthing"
|
|
43
|
+
pf_dir.mkdir()
|
|
44
|
+
# No .installed-version file
|
|
45
|
+
|
|
46
|
+
version = read_sentinel_version(tmp_path)
|
|
47
|
+
assert version is None
|
|
48
|
+
|
|
49
|
+
def test_returns_none_when_pennyfarthing_dir_missing(self, tmp_path: Path) -> None:
|
|
50
|
+
"""AC6: Missing .pennyfarthing/ directory should return None."""
|
|
51
|
+
version = read_sentinel_version(tmp_path)
|
|
52
|
+
assert version is None
|
|
53
|
+
|
|
54
|
+
def test_trims_whitespace(self, tmp_path: Path) -> None:
|
|
55
|
+
"""Should handle extra whitespace in sentinel file."""
|
|
56
|
+
pf_dir = tmp_path / ".pennyfarthing"
|
|
57
|
+
pf_dir.mkdir()
|
|
58
|
+
sentinel = pf_dir / ".installed-version"
|
|
59
|
+
sentinel.write_text(" 10.3.1 \n")
|
|
60
|
+
|
|
61
|
+
version = read_sentinel_version(tmp_path)
|
|
62
|
+
assert version == "10.3.1"
|
|
63
|
+
|
|
64
|
+
def test_returns_none_for_empty_file(self, tmp_path: Path) -> None:
|
|
65
|
+
"""Should return None for empty sentinel file."""
|
|
66
|
+
pf_dir = tmp_path / ".pennyfarthing"
|
|
67
|
+
pf_dir.mkdir()
|
|
68
|
+
sentinel = pf_dir / ".installed-version"
|
|
69
|
+
sentinel.write_text("")
|
|
70
|
+
|
|
71
|
+
version = read_sentinel_version(tmp_path)
|
|
72
|
+
assert version is None
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class TestCheckVersionMismatch:
|
|
76
|
+
"""Tests for version comparison and auto-update triggering."""
|
|
77
|
+
|
|
78
|
+
def test_no_mismatch_when_versions_match(self, tmp_path: Path) -> None:
|
|
79
|
+
"""AC3: No mismatch when sentinel matches package version."""
|
|
80
|
+
pf_dir = tmp_path / ".pennyfarthing"
|
|
81
|
+
pf_dir.mkdir()
|
|
82
|
+
sentinel = pf_dir / ".installed-version"
|
|
83
|
+
sentinel.write_text("10.3.1\n")
|
|
84
|
+
|
|
85
|
+
result = check_version_mismatch(tmp_path, package_version="10.3.1")
|
|
86
|
+
assert result.needs_update is False
|
|
87
|
+
|
|
88
|
+
def test_mismatch_when_versions_differ(self, tmp_path: Path) -> None:
|
|
89
|
+
"""AC3/AC4: Mismatch when sentinel differs from package version."""
|
|
90
|
+
pf_dir = tmp_path / ".pennyfarthing"
|
|
91
|
+
pf_dir.mkdir()
|
|
92
|
+
sentinel = pf_dir / ".installed-version"
|
|
93
|
+
sentinel.write_text("10.2.0\n")
|
|
94
|
+
|
|
95
|
+
result = check_version_mismatch(tmp_path, package_version="10.3.1")
|
|
96
|
+
assert result.needs_update is True
|
|
97
|
+
assert result.installed_version == "10.2.0"
|
|
98
|
+
assert result.package_version == "10.3.1"
|
|
99
|
+
|
|
100
|
+
def test_mismatch_when_sentinel_missing(self, tmp_path: Path) -> None:
|
|
101
|
+
"""AC6: Missing sentinel file treated as version mismatch."""
|
|
102
|
+
pf_dir = tmp_path / ".pennyfarthing"
|
|
103
|
+
pf_dir.mkdir()
|
|
104
|
+
# No sentinel file
|
|
105
|
+
|
|
106
|
+
result = check_version_mismatch(tmp_path, package_version="10.3.1")
|
|
107
|
+
assert result.needs_update is True
|
|
108
|
+
assert result.installed_version is None
|
|
109
|
+
|
|
110
|
+
def test_mismatch_when_pennyfarthing_dir_missing(self, tmp_path: Path) -> None:
|
|
111
|
+
"""AC6: Missing .pennyfarthing/ directory treated as mismatch."""
|
|
112
|
+
result = check_version_mismatch(tmp_path, package_version="10.3.1")
|
|
113
|
+
assert result.needs_update is True
|
|
114
|
+
assert result.installed_version is None
|
|
115
|
+
|
|
116
|
+
def test_result_includes_both_versions(self, tmp_path: Path) -> None:
|
|
117
|
+
"""Result should include both installed and package version for reporting."""
|
|
118
|
+
pf_dir = tmp_path / ".pennyfarthing"
|
|
119
|
+
pf_dir.mkdir()
|
|
120
|
+
sentinel = pf_dir / ".installed-version"
|
|
121
|
+
sentinel.write_text("10.2.0\n")
|
|
122
|
+
|
|
123
|
+
result = check_version_mismatch(tmp_path, package_version="10.3.1")
|
|
124
|
+
assert result.installed_version == "10.2.0"
|
|
125
|
+
assert result.package_version == "10.3.1"
|
|
126
|
+
assert result.needs_update is True
|