Merge pull request #594 from AIOSAI/dev
docs: README platform status update
This commit is contained in:
@@ -251,7 +251,7 @@ Each agent documents its own operational status in its branch README — what wo
|
||||
|
||||
- Python 3.10+
|
||||
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
|
||||
- Linux or WSL (primary supported platforms)
|
||||
- Linux, macOS, or WSL (all CI-tested)
|
||||
- `sudo` access optional (for `/usr/local/bin` symlinks — falls back to `~/.local/bin` without sudo)
|
||||
- API keys optional (OpenRouter/OpenAI — for optional add-on agents)
|
||||
|
||||
@@ -259,8 +259,8 @@ Each agent documents its own operational status in its branch README — what wo
|
||||
|
||||
These items have partial work done and are under ongoing testing:
|
||||
|
||||
- **macOS support** — setup and bootstrap work in progress ([#360](https://github.com/AIOSAI/AIPass/issues/360))
|
||||
- **Windows native** — CI passing, real-world testing ongoing
|
||||
- **macOS support** — CI green, full test suite passing ([#360](https://github.com/AIOSAI/AIPass/issues/360))
|
||||
- **Windows native** — CI green, full test suite passing
|
||||
- **Codex CLI** — hooks and AGENTS.md wired, needs end-to-end testing
|
||||
- **Gemini CLI** — hooks and GEMINI.md wired, needs end-to-end testing
|
||||
- **Fork contributor workflow** — improved error handling for fork-based PRs ([#329](https://github.com/AIOSAI/AIPass/issues/329))
|
||||
|
||||
@@ -199,6 +199,15 @@ def _claude_settings(aipass_home: str | None = None) -> str:
|
||||
event_hooks["UserPromptSubmit"] = prompt_hooks + event_hooks.get("UserPromptSubmit", [])
|
||||
|
||||
data: dict = {"hooks": event_hooks}
|
||||
|
||||
data["permissions"] = {
|
||||
"deny": [
|
||||
"Bash(rm -rf *)",
|
||||
"Bash(git push --force*)",
|
||||
"Bash(git reset --hard*)",
|
||||
],
|
||||
}
|
||||
|
||||
if aipass_home:
|
||||
data["env"] = {"AIPASS_HOME": aipass_home}
|
||||
return json.dumps(data, indent=2, ensure_ascii=False) + "\n"
|
||||
@@ -379,6 +388,24 @@ def init_project(target: Path, project_name: str | None = None) -> dict:
|
||||
init_py.write_text(f'"""{raw_name} — created with aipass init."""\n', encoding="utf-8")
|
||||
created.append(str(init_py))
|
||||
|
||||
# 10b. pyproject.toml — pytest config + package metadata
|
||||
pyproject_path = target / "pyproject.toml"
|
||||
if not pyproject_path.exists():
|
||||
pyproject_path.write_text(
|
||||
f'[project]\nname = "{package_name}"\nversion = "0.1.0"\nrequires-python = ">=3.10"\n\n'
|
||||
f'[tool.pytest.ini_options]\ntestpaths = ["src"]\npythonpath = ["src"]\n',
|
||||
encoding="utf-8",
|
||||
)
|
||||
created.append(str(pyproject_path))
|
||||
|
||||
# 10c. tests/ directory with conftest
|
||||
tests_dir = package_dir / "tests"
|
||||
if not tests_dir.exists():
|
||||
tests_dir.mkdir(parents=True)
|
||||
conftest = tests_dir / "conftest.py"
|
||||
conftest.write_text('"""Pytest fixtures for ' + raw_name + '."""\n', encoding="utf-8")
|
||||
created.append(str(tests_dir))
|
||||
|
||||
# 11. .venv symlink → AIPass shared runtime
|
||||
venv_link = target / ".venv"
|
||||
if not venv_link.exists() and aipass_home:
|
||||
|
||||
Reference in New Issue
Block a user