From c8d30df05dd395ae65cb7eb47c87108d6808d587 Mon Sep 17 00:00:00 2001 From: Hare Date: Wed, 10 Jun 2026 18:53:17 +0900 Subject: [PATCH] ticket: record lua profile api review --- .yoi/tickets/00001KTR6D3C5/item.md | 2 +- .yoi/tickets/00001KTR6D3C5/thread.md | 31 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/.yoi/tickets/00001KTR6D3C5/item.md b/.yoi/tickets/00001KTR6D3C5/item.md index 22a0e721..9a4c97df 100644 --- a/.yoi/tickets/00001KTR6D3C5/item.md +++ b/.yoi/tickets/00001KTR6D3C5/item.md @@ -2,7 +2,7 @@ title: 'Lua Profileに組み込みyoi APIとimport/extendを追加する' state: 'inprogress' created_at: '2026-06-10T07:19:31Z' -updated_at: '2026-06-10T09:36:53Z' +updated_at: '2026-06-10T09:53:05Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-10T08:04:05Z' diff --git a/.yoi/tickets/00001KTR6D3C5/thread.md b/.yoi/tickets/00001KTR6D3C5/thread.md index 5999f704..1adf63cc 100644 --- a/.yoi/tickets/00001KTR6D3C5/thread.md +++ b/.yoi/tickets/00001KTR6D3C5/thread.md @@ -117,3 +117,34 @@ Notes: - Import support is currently explicit for `builtin:default`; broad user/project selector import can be added as a follow-up if desired, but this covers the requested builtin composition surface and preserves authority boundaries. --- + + + +## Review: approve + +Branch-local review verdict: approve + +Blockers: none. + +Evidence: +- Diff from `develop` merge-base touches only `crates/manifest/src/profile.rs` and `resources/profiles/default.lua`. +- Global `yoi` is available for filesystem and embedded builtin Profiles. +- `require("yoi")`, `require("yoi.profile")`, `require("yoi.models")`, and local `require("shared")` behavior are covered by tests and preserved. +- `yoi.profile.import("builtin:default")` evaluates the builtin default Lua as a raw Profile artifact, not a resolved Manifest. +- `yoi.profile.extend("builtin:default", overrides)` recursively merges objects and replaces non-object values; final artifacts still pass through existing Profile validation. +- Runtime-bound field contamination is rejected by a `pod` override test; existing validation tests continue covering `scope.allow` / `scope.deny` and absolute path boundaries. +- Bundled `resources/profiles/default.lua` uses global `yoi` style. + +Validation run by reviewer: +- `cargo test -p manifest profile --lib` passed (22 passed). +- `cargo check -p manifest` passed. +- `git diff --check $(git merge-base HEAD develop)..HEAD` passed. +- `nix build .#yoi` passed. + +Non-blocking notes: +- Import/extend currently supports `builtin:default` and alias `default`; this matches the recorded known scope note. +- List replacement does not have a dedicated assertion, but implementation treats JSON arrays as non-object values and therefore replaces them. + +This is branch-local review evidence; final main-branch approval/close belongs to merge-completion. + +---