Skip to content

feat: initialize project with uv, hatchling, and src layout#62

Merged
Aureliolo merged 2 commits intomainfrom
feat/m0-foundation
Feb 27, 2026
Merged

feat: initialize project with uv, hatchling, and src layout#62
Aureliolo merged 2 commits intomainfrom
feat/m0-foundation

Conversation

@Aureliolo
Copy link
Copy Markdown
Owner

Summary

  • Initialize uv as package manager with lockfile (uv.lock)
  • Set up Hatchling as build backend
  • Create src layout (src/ai_company/) with all 12 domain modules from DESIGN_SPEC.md Section 15.3: config, core, engine, communication, memory, providers, tools, security, budget, api, cli, templates
  • Add nested sub-packages: api/routes/, cli/commands/
  • Create test directory structure: tests/unit/, tests/integration/, tests/e2e/
  • Add PEP 561 py.typed marker for type-checking support
  • Add comprehensive Python .gitignore
  • Target Python >=3.14
  • Create empty docs/ and config/ directories for future use
  • Update README.md with current tech stack and status

Test plan

  • uv sync succeeds (uv.lock is valid)
  • uv run python -c "import ai_company; print(ai_company.__version__)" prints 0.1.0
  • 15 __init__.py files exist in src/
  • py.typed marker exists
  • All 12 domain modules present in src/ai_company/
  • .venv/ is gitignored

Closes #19, closes #20

🤖 Generated with Claude Code

Set up foundation for ai-company:
- uv as package manager with uv.lock
- Hatchling as build backend
- src layout (src/ai_company/) with all domain modules
- Test directory structure (unit/integration/e2e)
- PEP 561 py.typed marker
- Python >=3.14
- Comprehensive .gitignore for Python projects

Closes #19, closes #20
Copilot AI review requested due to automatic review settings February 27, 2026 16:02
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 27, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2b722e0 and 75b6f05.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • README.md
  • pyproject.toml

📝 Walkthrough

Summary by CodeRabbit

  • Chores

    • Added project initialization, packaging configuration, and a Python project ignore file.
    • Added package metadata including initial version information.
  • Documentation

    • Updated project status to "M0: Tooling & Infrastructure in progress."
    • Revised Tech Stack: bumped planned Python target to 3.14+, annotated many items as "(planned)", and noted planned build tooling and package manager.

Walkthrough

Adds project scaffolding: a Python .gitignore, a new pyproject.toml (Hatchling build backend, Python >=3.14), README updates to tooling/status, and initializes src/ai_company/__init__.py with a __version__ variable.

Changes

Cohort / File(s) Summary
Project configuration & documentation
pyproject.toml, README.md, .gitignore
Adds pyproject metadata (project name, dynamic version path, license BUSL-1.1, Python >=3.14, Hatchling build backend), updates README status and tech stack items to reflect tooling (uv, Hatchling, planned items), and introduces a Python-focused .gitignore with common patterns (bytecode, venvs, build artifacts, IDE and OS files).
Package initialization
src/ai_company/__init__.py
Creates package initializer with module docstring and public __version__ = "0.1.0".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the primary changes: initializing the project with uv package manager, Hatchling build backend, and src layout structure.
Description check ✅ Passed The description is comprehensive and directly related to the changeset, detailing all major changes and including a test plan with verification steps.
Linked Issues check ✅ Passed The PR successfully implements all acceptance criteria from issues #19 and #20: uv package manager evaluation and setup, pyproject.toml configuration, src/ai_company structure with 12 domain modules, test directories, documentation directories, and .gitignore configuration.
Out of Scope Changes check ✅ Passed All changes are aligned with linked issues #19 and #20. The README.md update reflects the current tech stack status and is directly related to project initialization objectives. No out-of-scope changes detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/m0-foundation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request lays the foundational groundwork for the 'AI Company' project by establishing its core structure and development tooling. It integrates modern Python package management with uv and a robust build system using Hatchling, alongside a standard src directory layout. These changes are crucial for setting up a consistent and maintainable development environment, enabling efficient dependency management and project builds from the outset.

Highlights

  • Project Setup and Build System: Configured the project's metadata and build system using pyproject.toml, specifying hatchling as the build backend and setting the required Python version to 3.14+.
  • Package Management: Initialized uv as the package manager, generating a uv.lock file to manage project dependencies efficiently.
  • Source Code Layout: Established the standard src directory layout by creating the src/ai_company/__init__.py file, marking the beginning of the main package.
  • Development Environment Configuration: Added a comprehensive .gitignore file to ensure common development artifacts, virtual environments, and IDE-specific files are excluded from version control.
  • Documentation Update: Updated the README.md to reflect the project's current 'M0: Tooling & Infrastructure' status and to include the newly adopted tech stack components like uv and Hatchling.
Changelog
  • .gitignore
    • Added a new .gitignore file.
    • Included patterns for Python caches, build artifacts, virtual environments, IDE files, and uv specific files.
  • README.md
    • Updated project status from "Design phase" to "M0: Tooling & Infrastructure in progress".
    • Revised target Python version from 3.12+ to 3.14+.
    • Added uv and Hatchling to the "Tech Stack" section.
    • Clarified planned technologies with "(planned)" suffix.
  • pyproject.toml
    • Added a new pyproject.toml file.
    • Defined project metadata such as name, version, description, license, and authors.
    • Set requires-python to >=3.14.
    • Configured hatchling as the build system and specified src/ai_company as the package.
  • src/ai_company/init.py
    • Added a new __init__.py file.
    • Included a module docstring and defined __version__ = "0.1.0".
  • uv.lock
    • Added a new uv.lock file.
    • Specified requires-python = ">=3.14".
    • Included an entry for the ai-company package.
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request initializes the project with a modern Python setup using uv and hatchling, a src layout, and a comprehensive .gitignore. My review focuses on improving the configuration for better maintainability and team collaboration. I've suggested removing a typo from the .gitignore, reconsidering which files to ignore for better environment consistency, and centralizing the package version to prevent duplication and potential sync issues.

# Python
__pycache__/
*.py[cod]
*$py.class
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The pattern *$py.class appears to be a typo. It was likely intended to be *.py.class for ignoring Jython compiled files. Since this project targets CPython 3.14+, this pattern is unnecessary. I recommend removing this line to keep the .gitignore file clean and relevant to the project's technology stack.

.DS_Store

# uv
.python-version
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The .python-version file is used by tools like pyenv to lock the project's Python interpreter version. It is standard practice to commit this file to version control to ensure all developers use the same Python environment, preventing potential "it works on my machine" issues. I suggest removing this entry from .gitignore to allow the file to be tracked.

pyproject.toml Outdated
@@ -0,0 +1,22 @@
[project]
name = "ai-company"
version = "0.1.0"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The package version is hardcoded in both pyproject.toml and src/ai_company/__init__.py. This duplication can lead to inconsistencies. A better approach is to make src/ai_company/__init__.py the single source of truth by using hatch's dynamic versioning feature.

To do this, first replace this line with dynamic = ["version"].

Then, add the following section to your pyproject.toml file:

[tool.hatch.version]
path = "src/ai_company/__init__.py"
Suggested change
version = "0.1.0"
dynamic = ["version"]

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pyproject.toml`:
- Around line 1-22: Add an in-repo decision record describing the
package-manager evaluation and final choice (referencing pyproject.toml and the
README mention of "uv"); create an ADR or markdown in docs/ (or a README
section) that lists the alternatives considered (poetry, pip-tools, pdm, etc.),
the evaluation criteria, concise pros/cons for each, the
benchmarking/compatibility notes you ran, and the final rationale for selecting
"uv" so the repository satisfies objective `#19` deliverable. Ensure the file is
named clearly (e.g., ADR or "package-manager-decision.md"), links to the
pyproject.toml configuration, and includes the date and author.

In `@README.md`:
- Around line 28-34: Update the README Tech Stack line listing FastAPI,
Pydantic, Typer to indicate these are planned (consistent with other entries);
specifically modify the item that currently reads "Python 3.14+ with FastAPI,
Pydantic, Typer" to include "planned" (e.g., append "(planned)" or prefix each
dependency with "(planned)") so it matches the convention used for LiteLLM,
Mem0, MCP, Vue 3 and PostgreSQL; ensure the change references the same entry
containing "FastAPI, Pydantic, Typer" so readers know those tools are not yet
integrated.

ℹ️ Review info

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8669a09 and 2b722e0.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (25)
  • .gitignore
  • README.md
  • config/.gitkeep
  • docs/.gitkeep
  • pyproject.toml
  • src/ai_company/__init__.py
  • src/ai_company/api/__init__.py
  • src/ai_company/api/routes/__init__.py
  • src/ai_company/budget/__init__.py
  • src/ai_company/cli/__init__.py
  • src/ai_company/cli/commands/__init__.py
  • src/ai_company/communication/__init__.py
  • src/ai_company/config/__init__.py
  • src/ai_company/core/__init__.py
  • src/ai_company/engine/__init__.py
  • src/ai_company/memory/__init__.py
  • src/ai_company/providers/__init__.py
  • src/ai_company/py.typed
  • src/ai_company/security/__init__.py
  • src/ai_company/templates/__init__.py
  • src/ai_company/tools/__init__.py
  • tests/__init__.py
  • tests/e2e/__init__.py
  • tests/integration/__init__.py
  • tests/unit/__init__.py
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Agent
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2026-01-24T16:33:29.354Z
Learnt from: CR
Repo: Aureliolo/story-factory PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-24T16:33:29.354Z
Learning: Applies to README.md : Update README.md for significant feature changes

Applied to files:

  • README.md
🔇 Additional comments (3)
src/ai_company/__init__.py (1)

1-3: Clean package bootstrap with explicit public version.

Docstring and version export are concise and aligned with the project initialization goals.

.gitignore (1)

1-47: Solid baseline ignore rules for Python + uv workflow.

This covers the expected local/build/test artifacts and keeps the repository clean.

README.md (1)

24-27: Status update is clear and appropriately scoped to M0.

Good call linking the current milestone to DESIGN_SPEC.md for context.

Based on learnings: Applies to README.md : Update README.md for significant feature changes.

Comment on lines +1 to +22
[project]
name = "ai-company"
version = "0.1.0"
description = "Framework for orchestrating autonomous AI agents within a virtual company structure"
readme = "README.md"
license = "BUSL-1.1"
requires-python = ">=3.14"
authors = [{ name = "Aurelio" }]
keywords = ["ai", "agents", "llm", "orchestration", "company"]
classifiers = [
"Development Status :: 2 - Pre-Alpha",
"Programming Language :: Python :: 3.14",
"Typing :: Typed",
]
dependencies = []

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["src/ai_company"]
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Searching markdown/docs for package-manager evaluation evidence..."
rg -n --type=md -C2 'uv|poetry|pip-tools|pdm|package manager|decision|ADR' 2>/dev/null || echo "No matches found in markdown files"

echo
echo "Potential ADR/decision files:"
fd -HI -t f '(?i)adr|decision' 2>/dev/null || echo "No ADR/decision files found"

echo
echo "Checking for docs or docs-related directories:"
fd -HI -t d 'docs?|adr' 2>/dev/null | head -20 || echo "No docs directories found"

echo
echo "Looking for README or DECISIONS files:"
git ls-files | grep -iE '(readme|decisions|architecture|adr)' || echo "No relevant files found via git"

Repository: Aureliolo/ai-company

Length of output: 6168


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Contents of docs/ directory:"
find docs/ -type f 2>/dev/null | head -20

echo
echo "Searching within docs/ for package-manager mentions:"
rg -n 'uv|poetry|pip-tools|pdm|package.?manager' docs/ 2>/dev/null || echo "No package-manager references found in docs/"

echo
echo "Looking for any ADR or decision content in docs/:"
find docs/ -type f \( -name "*.md" -o -name "*.txt" \) -exec basename {} \; 2>/dev/null | sort -u

Repository: Aureliolo/ai-company

Length of output: 256


Document the package-manager evaluation decision in-repo (objective #19 deliverable).

pyproject.toml reflects the chosen tooling and uv is mentioned in README.md, but no recorded comparison or evaluation of alternatives exists in the repository. The docs/ directory is empty, and no ADR or decision record documents why uv was selected over poetry, pip-tools, pdm, or other candidates. Add this artifact (README section, docs/ADR, or equivalent) to fulfill the evaluation requirement.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pyproject.toml` around lines 1 - 22, Add an in-repo decision record
describing the package-manager evaluation and final choice (referencing
pyproject.toml and the README mention of "uv"); create an ADR or markdown in
docs/ (or a README section) that lists the alternatives considered (poetry,
pip-tools, pdm, etc.), the evaluation criteria, concise pros/cons for each, the
benchmarking/compatibility notes you ran, and the final rationale for selecting
"uv" so the repository satisfies objective `#19` deliverable. Ensure the file is
named clearly (e.g., ADR or "package-manager-decision.md"), links to the
pyproject.toml configuration, and includes the date and author.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR establishes the foundational Python project structure for the ai-company framework, addressing issues #19 and #20. It sets up uv as the package manager, Hatchling as the build backend, and implements the src layout with all 12 domain modules specified in DESIGN_SPEC.md Section 15.3.

Changes:

  • Initialized uv package manager with lockfile and Hatchling build backend
  • Created complete src layout with all 12 domain modules (config, core, engine, communication, memory, providers, tools, security, budget, api, cli, templates)
  • Set up test directory structure (unit/, integration/, e2e/) and added PEP 561 py.typed marker
  • Added comprehensive Python .gitignore and updated README.md with current tech stack
  • Created placeholder directories for docs/ and config/

Reviewed changes

Copilot reviewed 3 out of 26 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
pyproject.toml Project metadata, build system configuration with Hatchling, and Python version requirements
uv.lock Package manager lockfile for uv with Python version constraint
src/ai_company/init.py Package initialization with version string
src/ai_company/*/init.py Empty module initializers for all 12 domain modules
src/ai_company/py.typed PEP 561 marker for type-checking support
tests/*/init.py Test directory structure initialization
.gitignore Comprehensive Python project exclusions including uv-specific entries
README.md Updated tech stack and status information
docs/.gitkeep, config/.gitkeep Placeholder directories for future use

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

version = "0.1.0"
description = "Framework for orchestrating autonomous AI agents within a virtual company structure"
readme = "README.md"
license = "BUSL-1.1"
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The license field format may not be following the correct standard. For non-standard licenses like BUSL-1.1, you should use a table format with 'text' field pointing to the LICENSE file instead of a string identifier, as BUSL-1.1 is not in the official SPDX license list. The correct format would be: license = {text = "Business Source License 1.1"}. Alternatively, since you have a LICENSE file, you could use: license = {file = "LICENSE"}.

Suggested change
license = "BUSL-1.1"
license = { file = "LICENSE" }

Copilot uses AI. Check for mistakes.
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["src/ai_company"]
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hatchling packages configuration is incorrect for src layout. When using a src layout, the packages field should be just "ai_company" not "src/ai_company". Hatchling automatically looks in the src directory. This current configuration will cause the package to be nested incorrectly as src.ai_company instead of ai_company.

Suggested change
packages = ["src/ai_company"]
packages = ["ai_company"]

Copilot uses AI. Check for mistakes.
…rkers

- Use Hatchling dynamic versioning (single source of truth in __init__.py)
- Mark FastAPI, Pydantic, Typer as "(planned)" in README tech stack
@Aureliolo Aureliolo merged commit 39005f9 into main Feb 27, 2026
1 check was pending
@Aureliolo Aureliolo deleted the feat/m0-foundation branch February 27, 2026 16:22
Aureliolo added a commit that referenced this pull request Mar 10, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.1.1](ai-company-v0.1.0...ai-company-v0.1.1)
(2026-03-10)


### Features

* add autonomy levels and approval timeout policies
([#42](#42),
[#126](#126))
([#197](#197))
([eecc25a](eecc25a))
* add CFO cost optimization service with anomaly detection, reports, and
approval decisions
([#186](#186))
([a7fa00b](a7fa00b))
* add code quality toolchain (ruff, mypy, pre-commit, dependabot)
([#63](#63))
([36681a8](36681a8))
* add configurable cost tiers and subscription/quota-aware tracking
([#67](#67))
([#185](#185))
([9baedfa](9baedfa))
* add container packaging, Docker Compose, and CI pipeline
([#269](#269))
([435bdfe](435bdfe)),
closes [#267](#267)
* add coordination error taxonomy classification pipeline
([#146](#146))
([#181](#181))
([70c7480](70c7480))
* add cost-optimized, hierarchical, and auction assignment strategies
([#175](#175))
([ce924fa](ce924fa)),
closes [#173](#173)
* add design specification, license, and project setup
([8669a09](8669a09))
* add env var substitution and config file auto-discovery
([#77](#77))
([7f53832](7f53832))
* add FastestStrategy routing + vendor-agnostic cleanup
([#140](#140))
([09619cb](09619cb)),
closes [#139](#139)
* add HR engine and performance tracking
([#45](#45),
[#47](#47))
([#193](#193))
([2d091ea](2d091ea))
* add issue auto-search and resolution verification to PR review skill
([#119](#119))
([deecc39](deecc39))
* add memory retrieval, ranking, and context injection pipeline
([#41](#41))
([873b0aa](873b0aa))
* add pluggable MemoryBackend protocol with models, config, and events
([#180](#180))
([46cfdd4](46cfdd4))
* add pluggable MemoryBackend protocol with models, config, and events
([#32](#32))
([46cfdd4](46cfdd4))
* add pluggable PersistenceBackend protocol with SQLite implementation
([#36](#36))
([f753779](f753779))
* add progressive trust and promotion/demotion subsystems
([#43](#43),
[#49](#49))
([3a87c08](3a87c08))
* add retry handler, rate limiter, and provider resilience
([#100](#100))
([b890545](b890545))
* add SecOps security agent with rule engine, audit log, and ToolInvoker
integration ([#40](#40))
([83b7b6c](83b7b6c))
* add shared org memory and memory consolidation/archival
([#125](#125),
[#48](#48))
([4a0832b](4a0832b))
* design unified provider interface
([#86](#86))
([3e23d64](3e23d64))
* expand template presets, rosters, and add inheritance
([#80](#80),
[#81](#81),
[#84](#84))
([15a9134](15a9134))
* implement agent runtime state vs immutable config split
([#115](#115))
([4cb1ca5](4cb1ca5))
* implement AgentEngine core orchestrator
([#11](#11))
([#143](#143))
([f2eb73a](f2eb73a))
* implement basic tool system (registry, invocation, results)
([#15](#15))
([c51068b](c51068b))
* implement built-in file system tools
([#18](#18))
([325ef98](325ef98))
* implement communication foundation — message bus, dispatcher, and
messenger ([#157](#157))
([8e71bfd](8e71bfd))
* implement company template system with 7 built-in presets
([#85](#85))
([cbf1496](cbf1496))
* implement conflict resolution protocol
([#122](#122))
([#166](#166))
([e03f9f2](e03f9f2))
* implement core entity and role system models
([#69](#69))
([acf9801](acf9801))
* implement crash recovery with fail-and-reassign strategy
([#149](#149))
([e6e91ed](e6e91ed))
* implement engine extensions — Plan-and-Execute loop and call
categorization
([#134](#134),
[#135](#135))
([#159](#159))
([9b2699f](9b2699f))
* implement enterprise logging system with structlog
([#73](#73))
([2f787e5](2f787e5))
* implement graceful shutdown with cooperative timeout strategy
([#130](#130))
([6592515](6592515))
* implement hierarchical delegation and loop prevention
([#12](#12),
[#17](#17))
([6be60b6](6be60b6))
* implement LiteLLM driver and provider registry
([#88](#88))
([ae3f18b](ae3f18b)),
closes [#4](#4)
* implement LLM decomposition strategy and workspace isolation
([#174](#174))
([aa0eefe](aa0eefe))
* implement meeting protocol system
([#123](#123))
([ee7caca](ee7caca))
* implement message and communication domain models
([#74](#74))
([560a5d2](560a5d2))
* implement model routing engine
([#99](#99))
([d3c250b](d3c250b))
* implement parallel agent execution
([#22](#22))
([#161](#161))
([65940b3](65940b3))
* implement per-call cost tracking service
([#7](#7))
([#102](#102))
([c4f1f1c](c4f1f1c))
* implement personality injection and system prompt construction
([#105](#105))
([934dd85](934dd85))
* implement single-task execution lifecycle
([#21](#21))
([#144](#144))
([c7e64e4](c7e64e4))
* implement subprocess sandbox for tool execution isolation
([#131](#131))
([#153](#153))
([3c8394e](3c8394e))
* implement task assignment subsystem with pluggable strategies
([#172](#172))
([c7f1b26](c7f1b26)),
closes [#26](#26)
[#30](#30)
* implement task decomposition and routing engine
([#14](#14))
([9c7fb52](9c7fb52))
* implement Task, Project, Artifact, Budget, and Cost domain models
([#71](#71))
([81eabf1](81eabf1))
* implement tool permission checking
([#16](#16))
([833c190](833c190))
* implement YAML config loader with Pydantic validation
([#59](#59))
([ff3a2ba](ff3a2ba))
* implement YAML config loader with Pydantic validation
([#75](#75))
([ff3a2ba](ff3a2ba))
* initialize project with uv, hatchling, and src layout
([39005f9](39005f9))
* initialize project with uv, hatchling, and src layout
([#62](#62))
([39005f9](39005f9))
* Litestar REST API, WebSocket feed, and approval queue (M6)
([#189](#189))
([29fcd08](29fcd08))
* make TokenUsage.total_tokens a computed field
([#118](#118))
([c0bab18](c0bab18)),
closes [#109](#109)
* parallel tool execution in ToolInvoker.invoke_all
([#137](#137))
([58517ee](58517ee))
* testing framework, CI pipeline, and M0 gap fixes
([#64](#64))
([f581749](f581749))
* wire all modules into observability system
([#97](#97))
([f7a0617](f7a0617))


### Bug Fixes

* address Greptile post-merge review findings from PRs
[#170](https://github.com/Aureliolo/ai-company/issues/170)-[#175](https://github.com/Aureliolo/ai-company/issues/175)
([#176](#176))
([c5ca929](c5ca929))
* address post-merge review feedback from PRs
[#164](https://github.com/Aureliolo/ai-company/issues/164)-[#167](https://github.com/Aureliolo/ai-company/issues/167)
([#170](#170))
([3bf897a](3bf897a)),
closes [#169](#169)
* enforce strict mypy on test files
([#89](#89))
([aeeff8c](aeeff8c))
* harden Docker sandbox, MCP bridge, and code runner
([#50](#50),
[#53](#53))
([d5e1b6e](d5e1b6e))
* harden git tools security + code quality improvements
([#150](#150))
([000a325](000a325))
* harden subprocess cleanup, env filtering, and shutdown resilience
([#155](#155))
([d1fe1fb](d1fe1fb))
* incorporate post-merge feedback + pre-PR review fixes
([#164](#164))
([c02832a](c02832a))
* pre-PR review fixes for post-merge findings
([#183](#183))
([26b3108](26b3108))
* strengthen immutability for BaseTool schema and ToolInvoker boundaries
([#117](#117))
([7e5e861](7e5e861))


### Performance

* harden non-inferable principle implementation
([#195](#195))
([02b5f4e](02b5f4e)),
closes [#188](#188)


### Refactoring

* adopt NotBlankStr across all models
([#108](#108))
([#120](#120))
([ef89b90](ef89b90))
* extract _SpendingTotals base class from spending summary models
([#111](#111))
([2f39c1b](2f39c1b))
* harden BudgetEnforcer with error handling, validation extraction, and
review fixes
([#182](#182))
([c107bf9](c107bf9))
* harden personality profiles, department validation, and template
rendering ([#158](#158))
([10b2299](10b2299))
* pre-PR review improvements for ExecutionLoop + ReAct loop
([#124](#124))
([8dfb3c0](8dfb3c0))
* split events.py into per-domain event modules
([#136](#136))
([e9cba89](e9cba89))


### Documentation

* add ADR-001 memory layer evaluation and selection
([#178](#178))
([db3026f](db3026f)),
closes [#39](#39)
* add agent scaling research findings to DESIGN_SPEC
([#145](#145))
([57e487b](57e487b))
* add CLAUDE.md, contributing guide, and dev documentation
([#65](#65))
([55c1025](55c1025)),
closes [#54](#54)
* add crash recovery, sandboxing, analytics, and testing decisions
([#127](#127))
([5c11595](5c11595))
* address external review feedback with MVP scope and new protocols
([#128](#128))
([3b30b9a](3b30b9a))
* expand design spec with pluggable strategy protocols
([#121](#121))
([6832db6](6832db6))
* finalize 23 design decisions (ADR-002)
([#190](#190))
([8c39742](8c39742))
* update project docs for M2.5 conventions and add docs-consistency
review agent
([#114](#114))
([99766ee](99766ee))


### Tests

* add e2e single agent integration tests
([#24](#24))
([#156](#156))
([f566fb4](f566fb4))
* add provider adapter integration tests
([#90](#90))
([40a61f4](40a61f4))


### CI/CD

* add Release Please for automated versioning and GitHub Releases
([#278](#278))
([a488758](a488758))
* bump actions/checkout from 4 to 6
([#95](#95))
([1897247](1897247))
* bump actions/upload-artifact from 4 to 7
([#94](#94))
([27b1517](27b1517))
* harden CI/CD pipeline
([#92](#92))
([ce4693c](ce4693c))
* split vulnerability scans into critical-fail and high-warn tiers
([#277](#277))
([aba48af](aba48af))


### Maintenance

* add /worktree skill for parallel worktree management
([#171](#171))
([951e337](951e337))
* add design spec context loading to research-link skill
([8ef9685](8ef9685))
* add post-merge-cleanup skill
([#70](#70))
([f913705](f913705))
* add pre-pr-review skill and update CLAUDE.md
([#103](#103))
([92e9023](92e9023))
* add research-link skill and rename skill files to SKILL.md
([#101](#101))
([651c577](651c577))
* bump aiosqlite from 0.21.0 to 0.22.1
([#191](#191))
([3274a86](3274a86))
* bump pyyaml from 6.0.2 to 6.0.3 in the minor-and-patch group
([#96](#96))
([0338d0c](0338d0c))
* bump ruff from 0.15.4 to 0.15.5
([a49ee46](a49ee46))
* fix M0 audit items
([#66](#66))
([c7724b5](c7724b5))
* pin setup-uv action to full SHA
([#281](#281))
([4448002](4448002))
* post-audit cleanup — PEP 758, loggers, bug fixes, refactoring, tests,
hookify rules
([#148](#148))
([c57a6a9](c57a6a9))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Aureliolo added a commit that referenced this pull request Mar 11, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.1.0](v0.0.0...v0.1.0)
(2026-03-11)


### Features

* add autonomy levels and approval timeout policies
([#42](#42),
[#126](#126))
([#197](#197))
([eecc25a](eecc25a))
* add CFO cost optimization service with anomaly detection, reports, and
approval decisions
([#186](#186))
([a7fa00b](a7fa00b))
* add code quality toolchain (ruff, mypy, pre-commit, dependabot)
([#63](#63))
([36681a8](36681a8))
* add configurable cost tiers and subscription/quota-aware tracking
([#67](#67))
([#185](#185))
([9baedfa](9baedfa))
* add container packaging, Docker Compose, and CI pipeline
([#269](#269))
([435bdfe](435bdfe)),
closes [#267](#267)
* add coordination error taxonomy classification pipeline
([#146](#146))
([#181](#181))
([70c7480](70c7480))
* add cost-optimized, hierarchical, and auction assignment strategies
([#175](#175))
([ce924fa](ce924fa)),
closes [#173](#173)
* add design specification, license, and project setup
([8669a09](8669a09))
* add env var substitution and config file auto-discovery
([#77](#77))
([7f53832](7f53832))
* add FastestStrategy routing + vendor-agnostic cleanup
([#140](#140))
([09619cb](09619cb)),
closes [#139](#139)
* add HR engine and performance tracking
([#45](#45),
[#47](#47))
([#193](#193))
([2d091ea](2d091ea))
* add issue auto-search and resolution verification to PR review skill
([#119](#119))
([deecc39](deecc39))
* add mandatory JWT + API key authentication
([#256](#256))
([c279cfe](c279cfe))
* add memory retrieval, ranking, and context injection pipeline
([#41](#41))
([873b0aa](873b0aa))
* add pluggable MemoryBackend protocol with models, config, and events
([#180](#180))
([46cfdd4](46cfdd4))
* add pluggable MemoryBackend protocol with models, config, and events
([#32](#32))
([46cfdd4](46cfdd4))
* add pluggable output scan response policies
([#263](#263))
([b9907e8](b9907e8))
* add pluggable PersistenceBackend protocol with SQLite implementation
([#36](#36))
([f753779](f753779))
* add progressive trust and promotion/demotion subsystems
([#43](#43),
[#49](#49))
([3a87c08](3a87c08))
* add retry handler, rate limiter, and provider resilience
([#100](#100))
([b890545](b890545))
* add SecOps security agent with rule engine, audit log, and ToolInvoker
integration ([#40](#40))
([83b7b6c](83b7b6c))
* add shared org memory and memory consolidation/archival
([#125](#125),
[#48](#48))
([4a0832b](4a0832b))
* design unified provider interface
([#86](#86))
([3e23d64](3e23d64))
* expand template presets, rosters, and add inheritance
([#80](#80),
[#81](#81),
[#84](#84))
([15a9134](15a9134))
* implement agent runtime state vs immutable config split
([#115](#115))
([4cb1ca5](4cb1ca5))
* implement AgentEngine core orchestrator
([#11](#11))
([#143](#143))
([f2eb73a](f2eb73a))
* implement AuditRepository for security audit log persistence
([#279](#279))
([94bc29f](94bc29f))
* implement basic tool system (registry, invocation, results)
([#15](#15))
([c51068b](c51068b))
* implement built-in file system tools
([#18](#18))
([325ef98](325ef98))
* implement communication foundation — message bus, dispatcher, and
messenger ([#157](#157))
([8e71bfd](8e71bfd))
* implement company template system with 7 built-in presets
([#85](#85))
([cbf1496](cbf1496))
* implement conflict resolution protocol
([#122](#122))
([#166](#166))
([e03f9f2](e03f9f2))
* implement core entity and role system models
([#69](#69))
([acf9801](acf9801))
* implement crash recovery with fail-and-reassign strategy
([#149](#149))
([e6e91ed](e6e91ed))
* implement engine extensions — Plan-and-Execute loop and call
categorization
([#134](#134),
[#135](#135))
([#159](#159))
([9b2699f](9b2699f))
* implement enterprise logging system with structlog
([#73](#73))
([2f787e5](2f787e5))
* implement graceful shutdown with cooperative timeout strategy
([#130](#130))
([6592515](6592515))
* implement hierarchical delegation and loop prevention
([#12](#12),
[#17](#17))
([6be60b6](6be60b6))
* implement LiteLLM driver and provider registry
([#88](#88))
([ae3f18b](ae3f18b)),
closes [#4](#4)
* implement LLM decomposition strategy and workspace isolation
([#174](#174))
([aa0eefe](aa0eefe))
* implement meeting protocol system
([#123](#123))
([ee7caca](ee7caca))
* implement message and communication domain models
([#74](#74))
([560a5d2](560a5d2))
* implement model routing engine
([#99](#99))
([d3c250b](d3c250b))
* implement parallel agent execution
([#22](#22))
([#161](#161))
([65940b3](65940b3))
* implement per-call cost tracking service
([#7](#7))
([#102](#102))
([c4f1f1c](c4f1f1c))
* implement personality injection and system prompt construction
([#105](#105))
([934dd85](934dd85))
* implement single-task execution lifecycle
([#21](#21))
([#144](#144))
([c7e64e4](c7e64e4))
* implement subprocess sandbox for tool execution isolation
([#131](#131))
([#153](#153))
([3c8394e](3c8394e))
* implement task assignment subsystem with pluggable strategies
([#172](#172))
([c7f1b26](c7f1b26)),
closes [#26](#26)
[#30](#30)
* implement task decomposition and routing engine
([#14](#14))
([9c7fb52](9c7fb52))
* implement Task, Project, Artifact, Budget, and Cost domain models
([#71](#71))
([81eabf1](81eabf1))
* implement tool permission checking
([#16](#16))
([833c190](833c190))
* implement YAML config loader with Pydantic validation
([#59](#59))
([ff3a2ba](ff3a2ba))
* implement YAML config loader with Pydantic validation
([#75](#75))
([ff3a2ba](ff3a2ba))
* initialize project with uv, hatchling, and src layout
([39005f9](39005f9))
* initialize project with uv, hatchling, and src layout
([#62](#62))
([39005f9](39005f9))
* Litestar REST API, WebSocket feed, and approval queue (M6)
([#189](#189))
([29fcd08](29fcd08))
* make TokenUsage.total_tokens a computed field
([#118](#118))
([c0bab18](c0bab18)),
closes [#109](#109)
* parallel tool execution in ToolInvoker.invoke_all
([#137](#137))
([58517ee](58517ee))
* testing framework, CI pipeline, and M0 gap fixes
([#64](#64))
([f581749](f581749))
* wire all modules into observability system
([#97](#97))
([f7a0617](f7a0617))


### Bug Fixes

* address Greptile post-merge review findings from PRs
[#170](https://github.com/Aureliolo/ai-company/issues/170)-[#175](https://github.com/Aureliolo/ai-company/issues/175)
([#176](#176))
([c5ca929](c5ca929))
* address post-merge review feedback from PRs
[#164](https://github.com/Aureliolo/ai-company/issues/164)-[#167](https://github.com/Aureliolo/ai-company/issues/167)
([#170](#170))
([3bf897a](3bf897a)),
closes [#169](#169)
* enforce strict mypy on test files
([#89](#89))
([aeeff8c](aeeff8c))
* harden Docker sandbox, MCP bridge, and code runner
([#50](#50),
[#53](#53))
([d5e1b6e](d5e1b6e))
* harden git tools security + code quality improvements
([#150](#150))
([000a325](000a325))
* harden subprocess cleanup, env filtering, and shutdown resilience
([#155](#155))
([d1fe1fb](d1fe1fb))
* incorporate post-merge feedback + pre-PR review fixes
([#164](#164))
([c02832a](c02832a))
* pre-PR review fixes for post-merge findings
([#183](#183))
([26b3108](26b3108))
* resolve circular imports, bump litellm, fix release tag format
([#286](#286))
([a6659b5](a6659b5))
* strengthen immutability for BaseTool schema and ToolInvoker boundaries
([#117](#117))
([7e5e861](7e5e861))


### Performance

* harden non-inferable principle implementation
([#195](#195))
([02b5f4e](02b5f4e)),
closes [#188](#188)


### Refactoring

* adopt NotBlankStr across all models
([#108](#108))
([#120](#120))
([ef89b90](ef89b90))
* extract _SpendingTotals base class from spending summary models
([#111](#111))
([2f39c1b](2f39c1b))
* harden BudgetEnforcer with error handling, validation extraction, and
review fixes
([#182](#182))
([c107bf9](c107bf9))
* harden personality profiles, department validation, and template
rendering ([#158](#158))
([10b2299](10b2299))
* pre-PR review improvements for ExecutionLoop + ReAct loop
([#124](#124))
([8dfb3c0](8dfb3c0))
* split events.py into per-domain event modules
([#136](#136))
([e9cba89](e9cba89))


### Documentation

* add ADR-001 memory layer evaluation and selection
([#178](#178))
([db3026f](db3026f)),
closes [#39](#39)
* add agent scaling research findings to DESIGN_SPEC
([#145](#145))
([57e487b](57e487b))
* add CLAUDE.md, contributing guide, and dev documentation
([#65](#65))
([55c1025](55c1025)),
closes [#54](#54)
* add crash recovery, sandboxing, analytics, and testing decisions
([#127](#127))
([5c11595](5c11595))
* address external review feedback with MVP scope and new protocols
([#128](#128))
([3b30b9a](3b30b9a))
* expand design spec with pluggable strategy protocols
([#121](#121))
([6832db6](6832db6))
* finalize 23 design decisions (ADR-002)
([#190](#190))
([8c39742](8c39742))
* update project docs for M2.5 conventions and add docs-consistency
review agent
([#114](#114))
([99766ee](99766ee))


### Tests

* add e2e single agent integration tests
([#24](#24))
([#156](#156))
([f566fb4](f566fb4))
* add provider adapter integration tests
([#90](#90))
([40a61f4](40a61f4))


### CI/CD

* add Release Please for automated versioning and GitHub Releases
([#278](#278))
([a488758](a488758))
* bump actions/checkout from 4 to 6
([#95](#95))
([1897247](1897247))
* bump actions/upload-artifact from 4 to 7
([#94](#94))
([27b1517](27b1517))
* bump anchore/scan-action from 6.5.1 to 7.3.2
([#271](#271))
([80a1c15](80a1c15))
* bump docker/build-push-action from 6.19.2 to 7.0.0
([#273](#273))
([dd0219e](dd0219e))
* bump docker/login-action from 3.7.0 to 4.0.0
([#272](#272))
([33d6238](33d6238))
* bump docker/metadata-action from 5.10.0 to 6.0.0
([#270](#270))
([baee04e](baee04e))
* bump docker/setup-buildx-action from 3.12.0 to 4.0.0
([#274](#274))
([5fc06f7](5fc06f7))
* bump sigstore/cosign-installer from 3.9.1 to 4.1.0
([#275](#275))
([29dd16c](29dd16c))
* harden CI/CD pipeline
([#92](#92))
([ce4693c](ce4693c))
* split vulnerability scans into critical-fail and high-warn tiers
([#277](#277))
([aba48af](aba48af))


### Maintenance

* add /worktree skill for parallel worktree management
([#171](#171))
([951e337](951e337))
* add design spec context loading to research-link skill
([8ef9685](8ef9685))
* add post-merge-cleanup skill
([#70](#70))
([f913705](f913705))
* add pre-pr-review skill and update CLAUDE.md
([#103](#103))
([92e9023](92e9023))
* add research-link skill and rename skill files to SKILL.md
([#101](#101))
([651c577](651c577))
* bump aiosqlite from 0.21.0 to 0.22.1
([#191](#191))
([3274a86](3274a86))
* bump pyyaml from 6.0.2 to 6.0.3 in the minor-and-patch group
([#96](#96))
([0338d0c](0338d0c))
* bump ruff from 0.15.4 to 0.15.5
([a49ee46](a49ee46))
* fix M0 audit items
([#66](#66))
([c7724b5](c7724b5))
* **main:** release ai-company 0.1.1
([#282](#282))
([2f4703d](2f4703d))
* pin setup-uv action to full SHA
([#281](#281))
([4448002](4448002))
* post-audit cleanup — PEP 758, loggers, bug fixes, refactoring, tests,
hookify rules
([#148](#148))
([c57a6a9](c57a6a9))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: Aurelio <19254254+Aureliolo@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Initialize project structure with pyproject.toml and src layout Evaluate and set up Python package manager (uv/poetry/pip-tools)

2 participants