okstra 0.212.1 → 0.212.2
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/package.json
CHANGED
package/runtime/BUILD.json
CHANGED
|
@@ -228,6 +228,9 @@ class ExecutionMutationAudit:
|
|
|
228
228
|
and not any(_is_within(path, root) for root in before.artifact_observation_roots)
|
|
229
229
|
}
|
|
230
230
|
artifact_changed -= unobserved
|
|
231
|
+
artifact_changed = {
|
|
232
|
+
path for path in artifact_changed if not _is_okstra_os_metadata(path)
|
|
233
|
+
}
|
|
231
234
|
scratch_changed = _changed_keys(
|
|
232
235
|
before.scratch_digests, after.scratch_digests
|
|
233
236
|
)
|
|
@@ -782,6 +785,20 @@ def _source_changes(
|
|
|
782
785
|
_OKSTRA_ARTIFACT_SUBTREE = ".okstra"
|
|
783
786
|
|
|
784
787
|
|
|
788
|
+
def _is_okstra_os_metadata(path: str) -> bool:
|
|
789
|
+
"""`.okstra/` 아래 Finder 메타데이터(`.DS_Store`, AppleDouble `._*`).
|
|
790
|
+
|
|
791
|
+
소스 쪽은 레포의 `.gitignore` 가 이런 파일을 면제한다(`_ignored_paths`). okstra 가
|
|
792
|
+
소유한 `.okstra/` 에는 그 면제가 닿지 않는데, 여기서 이 파일은 어느 워커의
|
|
793
|
+
산출물도 아니다(2026-10-06, fontsninja-v3-site dev-11126 implementation 007:
|
|
794
|
+
폴더를 연 Finder 가 쓴 `qa/.DS_Store` 로 완주한 executor 가 버려졌다).
|
|
795
|
+
"""
|
|
796
|
+
name = path.rsplit("/", 1)[-1]
|
|
797
|
+
return _is_within(path, _OKSTRA_ARTIFACT_SUBTREE) and (
|
|
798
|
+
name == ".DS_Store" or name.startswith("._")
|
|
799
|
+
)
|
|
800
|
+
|
|
801
|
+
|
|
785
802
|
def _artifact_policy_failures(
|
|
786
803
|
snapshot: MutationSnapshot,
|
|
787
804
|
policies: Sequence[WritePolicy],
|
|
@@ -179,7 +179,11 @@ def _directive_context_note(state: WizardState, directive: str) -> str:
|
|
|
179
179
|
"""
|
|
180
180
|
if not directive.startswith(MANAGER_CONTEXT_DIRECTIVE_PREFIX):
|
|
181
181
|
return ""
|
|
182
|
-
|
|
182
|
+
# manager 가 쓰는 directive 는 경로 한 줄이지만, 사람이 그 뒤에 문장을 이어 붙인다
|
|
183
|
+
# ("…context.md. Re-plan scope added …"). 경로는 접두 뒤 첫 토큰이다.
|
|
184
|
+
rest = directive[len(MANAGER_CONTEXT_DIRECTIVE_PREFIX):].split()
|
|
185
|
+
token = rest[0].rstrip(".,;:") if rest else ""
|
|
186
|
+
path = Path(token).expanduser()
|
|
183
187
|
labels = _p(state.workspace_root, "directive_pick")["labels"]
|
|
184
188
|
if not path.is_file():
|
|
185
189
|
return labels["context_missing"].format(path=path)
|