<feed xmlns='http://www.w3.org/2005/Atom'>
<title>winagent-sandbox-mcp.git/tests/Agent.Core.Tests/OllamaClientTests.cs, branch main</title>
<subtitle>Windows-native MCP agent sandbox for Ollama with LPAC, NTFS ACL, Job Objects, and WFP. 
</subtitle>
<id>https://git.takashi-2521.com/winagent-sandbox-mcp.git/atom?h=main</id>
<link rel='self' href='https://git.takashi-2521.com/winagent-sandbox-mcp.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/winagent-sandbox-mcp.git/'/>
<updated>2026-08-11T15:21:23+00:00</updated>
<entry>
<title>fix: implement native Ollama thinking semantics</title>
<updated>2026-08-11T15:21:23+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-08-11T15:21:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/winagent-sandbox-mcp.git/commit/?id=98b6a2aeedd591058c1d81e401d24f3ded162926'/>
<id>urn:sha1:98b6a2aeedd591058c1d81e401d24f3ded162926</id>
<content type='text'>
Model Ollama chat thinking separately from final content, preserve it only across assistant tool-call continuation, and keep private reasoning out of user results, session context, and logs.

Accept native boolean and low/medium/high/max think values, normalize YAML booleans, and serialize explicit overrides using the native top-level chat field.

Stop forcing think=false for structured planning, skill selection, and context summaries; corrected retries now retain the configured thinking mode.

Update the specification, design, audit report, and requirement traceability for OLL-14.

Add request/response, configuration, observability, retry, and tool-continuation coverage. Verified with 92 passing Agent.Core tests and a deepseek-v4-flash:cloud think:true MCP operational run.
</content>
</entry>
<entry>
<title>feat(tools): add dir internal tool for directory operations</title>
<updated>2026-08-10T10:38:55+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-08-10T10:38:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/winagent-sandbox-mcp.git/commit/?id=e8b625e22f343d75e1b50d1634b4ab06899d060b'/>
<id>urn:sha1:e8b625e22f343d75e1b50d1634b4ab06899d060b</id>
<content type='text'>
新規Internal Tool `dir` を追加し、ディレクトリの作成・削除・一覧取得を
可能にした。file_editの拡張ではなく独立toolとして実装し、LLMが
「ディレクトリ操作はdir tool」と直感的に判断できるようにした。

追加した機能:
- dir tool (6番目のInternal Tool、MCP非公開)
  - mkdir: Write capability要求、Directory.CreateDirectory()で親ディレクトリも含めて作成
  - rmdir: Delete capability要求、空ディレクトリのみ削除（非空はToolValidationExceptionで拒否）
  - list: Read capability要求、直下エントリ一覧を返す

設計判断:
- file_edit拡張ではなく新規toolとした理由: ツール名から機能が推測しやすく、
  LLMが直感的に選択できるため
- rmdirを空ディレクトリのみに制限した理由: rollback時の内容復元の複雑さを排除、
  MemoryBackupLimit超過リスクなし、安全側
- mkdir/rmdirは既存のPathPolicy/ACL/Journal/Recovery枠組みを利用
- root継承ACE方式のため新規作成ディレクトリは自動的に親のACEを継承、追加ACL操作不要

変更対象:
- InternalToolCatalog.cs: dir定義追加 (5→6 tool)
- InternalToolDispatcher.cs: FakeInternalToolBackendの効果判定にdir追加
- InternalToolValidator.cs: dir用コメント追記
- WindowsToolBackend.cs: DirectoryOp()メソッド実装
- TransactionalFileEditor.cs: Mkdir()/Rmdir() transaction +
  DirectoryMkdirTransaction/DirectoryRmdirTransaction クラス追加
- RecoveryManager.cs: dir.mkdir/dir.rmdir crash recovery追加
- Specifications.md: FS-06追加
- Design.md: 6群表更新、§7.6 dir追加、5群→6群参照更新

テスト:
- InternalToolTests.cs: dir単体テスト、catalog 6群検証、malformed args拒否
- SecurityPolicyTests.cs: mkdir/rmdir/list/許可外deny テスト追加
- PromptAndRuntimeTests.cs: tool count 5→6
- OllamaClientTests.cs: tool catalog配列長 5→6

検証結果:
- Release build: 警告0、エラー0
- Planner tests: 10/10 PASS、skip 0
- Core tests: 56/56 PASS、skip 0
- MCP経由での動作確認: mkdir/list/rmdir/file_edit すべて正常
- Python実行確認: dir mkdir + file_edit + process_run でfib(1)〜fib(10)が正常出力
- Release Bundle publish済み

既知の運用上の知見:
- uv venvのpyvenv.cfgのhomeがjunctionを指す場合、CanonicalPath.Resolveが
  reparse pointとして拒否する。実体パスへ書き換えるか、実体ディレクトリを
  agent.yamlのread/executeに追加する必要がある
- venvのpython.exeはuv trampolineで子プロセスを生成するため、
  sandboxのchild-process制限で拒否される。pyvenv.cfgが指す実体python.exeを
  直接起動する必要がある
</content>
</entry>
<entry>
<title>feat: AI Agent Sandbox MCP Server v1を実装</title>
<updated>2026-08-09T12:08:20+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-08-09T12:08:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/winagent-sandbox-mcp.git/commit/?id=b07b41cd435991cd254957af79055080c85b346e'/>
<id>urn:sha1:b07b41cd435991cd254957af79055080c85b346e</id>
<content type='text'>
Specifications、Design、ImplementationPlanの優先順位を整理し、単一Task実行モデル、typed option優先、設定可能なresource上限、local Ollamaを必須とするRelease Gateを文書化。

.NET 10/C# 14の5 production project、3 test project、E2E Clientを構築。typed YAML、en/ja locale、fixed/user prompt、stdioおよびloopback限定Streamable HTTP、agent_run/agent_status、Session、Ollama text/tool/Vision、TaskGraphとtoken accountingを実装。

Windows sandboxとしてfixed AppContainer、canonical/reparse検査、能力別ACL、path+SHA-256 executable approval、child-process restriction、Job Object、task journal、atomic file transaction、crash recoveryを実装。WFPのIPv4/IPv6 default denyとexact allow、dynamic session、temporary loopback exemption、管理者/BFE診断を追加。

Security/Recovery test、MCP/Ollama integration test、stdio/HTTP Operational E2E、Release Bundle生成・checksum・manifest・fresh extraction検査を追加。Requirement TraceabilityとPhase 0〜11の進捗、初回セットアップ可能なREADMEを整備。

Debug/Release/publish/objをrepository rootのbuild/へ集約し、旧project-local bin/objへの依存を除去。artifacts/とbuild/をGit管理外に設定し、clean checkoutでもsolution buildからE2E Clientまで生成可能にした。
</content>
</entry>
</feed>
