Skip to content

Commit e457970

Browse files
committed
fix(codex): use config identity for publish actor
1 parent 4ba10a2 commit e457970

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

platform-integrations/codex/plugins/evolve-lite/skills/publish/scripts/publish.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,15 @@ def main():
6565
sys.exit(1)
6666

6767
entity = markdown_to_entity(src_path)
68+
config = load_config(str(evolve_dir.resolve().parent))
69+
identity = config.get("identity", {})
70+
effective_user = args.user or (identity.get("user") if isinstance(identity, dict) else None)
71+
6872
entity["visibility"] = "public"
69-
if args.user:
70-
entity["owner"] = args.user
73+
if effective_user:
74+
entity["owner"] = effective_user
7175
entity["published_at"] = datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
72-
config = load_config(str(evolve_dir.resolve().parent))
73-
source = _resolve_source(config, args.user)
76+
source = _resolve_source(config, effective_user)
7477
if source:
7578
entity["source"] = source
7679

@@ -90,7 +93,7 @@ def main():
9093
audit_append(
9194
project_root=str(evolve_dir.resolve()) if evolve_dir.name != ".evolve" else str(evolve_dir.resolve().parent),
9295
action="publish",
93-
actor=args.user or "unknown",
96+
actor=effective_user or "unknown",
9497
entity=args.entity,
9598
)
9699

tests/platform_integrations/test_codex_sharing.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def test_publish_stamps_source_from_public_repo_remote(self, temp_project_dir):
128128
content = (temp_project_dir / ".evolve" / "public" / "guideline" / "my-tip.md").read_text()
129129
assert "source: alice/evolve-guidelines" in content
130130

131-
def test_publish_uses_identity_user_as_source_fallback(self, temp_project_dir):
131+
def test_publish_uses_identity_user_as_owner_source_and_audit_fallback(self, temp_project_dir):
132132
guideline_dir = temp_project_dir / ".evolve" / "entities" / "guideline"
133133
guideline_dir.mkdir(parents=True)
134134
(guideline_dir / "my-tip.md").write_text("---\ntype: guideline\n---\n\nPrefer composition over inheritance.\n")
@@ -142,7 +142,10 @@ def test_publish_uses_identity_user_as_source_fallback(self, temp_project_dir):
142142
)
143143

144144
content = (temp_project_dir / ".evolve" / "public" / "guideline" / "my-tip.md").read_text()
145+
assert "owner: alice" in content
145146
assert "source: alice" in content
147+
entry = json.loads((temp_project_dir / ".evolve" / "audit.log").read_text().strip())
148+
assert entry["actor"] == "alice"
146149

147150
def test_publish_fails_when_entity_not_found(self, temp_project_dir):
148151
result = run_script(

0 commit comments

Comments
 (0)