Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
7773636
fix(desktop): automatically use newer qualified runtimes
loopx-agent Oct 4, 2026
871a671
docs(community): clarify OpenViking and NoKV qualification boundaries
huangruiteng Oct 4, 2026
deeb536
docs(community): qualify Hufu pilot and Benjamin plugin evidence
loopx-agent Oct 4, 2026
d7ad256
feat(chat): add authorized ordinary workspace conversations
huangruiteng Oct 3, 2026
ef2ae1b
docs(chat): qualify the local workspace conversation journey
huangruiteng Oct 3, 2026
fc3d995
refactor(chat): keep project context in native Chat capability package
huangruiteng Oct 3, 2026
89ee503
feat(dashboard): scope the steward conversation to a granted workspace
loopx-agent Oct 4, 2026
36cf550
test(dashboard): packaged workspace scope journey against the Chat se…
loopx-agent Oct 4, 2026
745e2fd
docs(rfc): describe workspace conversations as a steward scope
loopx-agent Oct 4, 2026
8ce7372
fix: qualify automated reviews for every code-owner route
loopx-agent Oct 4, 2026
f2efcb7
feat(goals): opt in to canonical creation with frozen execution polic…
loopx-agent Oct 4, 2026
ba443e2
fix(refresh): preserve goal-level accountable writes
Duang777 Oct 4, 2026
907eee3
feat(chat): owner private project admission with native queue and rec…
huangruiteng Oct 4, 2026
b007ef6
feat(chat): native steward commissions in owner private Chat (#5542)
huangruiteng Oct 4, 2026
a742c12
feat(chat): scoped status and help for owner private conversations (#…
huangruiteng Oct 4, 2026
54b197c
feat(chat): explicitly select authorized attached Agents in private c…
huangruiteng Oct 4, 2026
4537095
chore: drop accidentally tracked uv.lock (#5599)
loopx-agent Oct 4, 2026
853d924
docs(rfc): define personal follow-through from Lark to desktop
Oct 1, 2026
c7ba9e8
docs(rfc): require TypeScript and Node.js for personal follow-through
Oct 1, 2026
9c34b72
docs(rfc): record experimental follow-through CLI evidence and M1 gaps
Oct 1, 2026
8ca930e
docs: consolidate personal follow-through into manager profile
Oct 4, 2026
37b77d4
fix(semantics): anchor Codex session binding at its defining owner
huangruiteng Oct 4, 2026
7e65112
test: trigger preview retirement after the initial result
huangruiteng Oct 4, 2026
5b16c20
fix(runtime): report safe startup locator publication failures (#5551)
huangruiteng Oct 4, 2026
0527c09
feat(pr-review): persist per-Agent forward/reverse directions (#5608)
loopx-agent Oct 4, 2026
58642ba
fix(pr-review): receive agent requests before queue selection (#5612)
loopx-agent Oct 4, 2026
bd607db
feat(benchmark): add native EdgeBench worker and feedback profiles (#…
loopx-agent Oct 4, 2026
5b50277
fix(runtime): make single-turn execution deadlines opt-in (#5600)
loopx-agent Oct 4, 2026
d783586
fix(cli): return parsed claim repair arguments in one packet (#5586)
loopx-agent Oct 4, 2026
efdb564
docs(community): qualify AAOP retirement and Console integration evid…
loopx-agent Oct 4, 2026
e8ee190
fix(workspace): settle registered originless local goals (#5614)
loopx-agent Oct 4, 2026
8f34c2c
fix(chat): preserve Todo authority and independent metadata (#5605)
loopx-agent Oct 4, 2026
2f68e3b
fix(benchmark): publish native terminal result for visualizer (#5618)
loopx-agent Oct 4, 2026
018c4a6
fix(quota): complete runnable replan selection in one CLI call (#5628)
loopx-agent Oct 5, 2026
01c6651
fix(goals): make checkpoint recovery hints match validation (#5573)
loopx-agent Oct 5, 2026
9616463
fix(heartbeat): scope checkpoint recovery to committed writeback (#5629)
loopx-agent Oct 5, 2026
e59fe15
fix(desktop): automatically use newer qualified runtimes
loopx-agent Oct 4, 2026
3b1fe2d
fix(desktop): adopt qualified private runtime promotions
loopx-agent Oct 5, 2026
d3d037e
docs(desktop): clarify App-owned snapshot adoption
loopx-agent Oct 5, 2026
4143860
Merge prior startup proposal after main baseline refresh
loopx-agent Oct 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 48 additions & 47 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -2,83 +2,84 @@
# .github/GOVERNANCE.md ("Maintainer And Review Roster", "Review Service Levels").
#
# GitHub applies the LAST matching pattern, so this file runs from broad to
# narrow: fallback, module map, subsystem routes, then lead-owned governance
# paths, which must win. When a line lists several owners, approval from any
# one of them satisfies code-owner review.
# narrow: fallback, module map, subsystem routes, then governance paths.
# @loopx-agent shares every route; narrower rules must retain that owner.
# When a line lists several owners, approval from any one of them satisfies
# code-owner review.
#
# Only accounts with repository write access and an accepted, publicly recorded
# scope are listed. First-review contacts, pending invitations and read-only
# contributors are routed through GOVERNANCE.md, not through this file.

# Fallback for paths no module line claims, such as a new top-level directory.
* @huangruiteng
* @huangruiteng @loopx-agent

# --- Module map --------------------------------------------------------------
# Every top-level module has an explicit line so ownership is visible per
# module. A subsystem appointment narrows a path in the next section.

# Control-plane kernel: authority, state, quota, todos, leases, TS transactions.
/loopx/control_plane/ @huangruiteng
/loopx/semantics/ @huangruiteng
/loopx/*.py @huangruiteng
/loopx/control_plane/ @huangruiteng @loopx-agent
/loopx/semantics/ @huangruiteng @loopx-agent
/loopx/*.py @huangruiteng @loopx-agent

# CLI surface.
/loopx/cli_commands/ @huangruiteng
/loopx/cli_commands/ @huangruiteng @loopx-agent

# Capabilities, extensions, domain packs and experiments.
/loopx/capabilities/ @huangruiteng
/loopx/extensions/ @huangruiteng
/loopx/domain_packs/ @huangruiteng
/loopx/experiments/ @huangruiteng
/loopx/capabilities/ @huangruiteng @loopx-agent
/loopx/extensions/ @huangruiteng @loopx-agent
/loopx/domain_packs/ @huangruiteng @loopx-agent
/loopx/experiments/ @huangruiteng @loopx-agent

# Host goal-mode adapters (Claude, DSH, OpenCode, Pi, ...).
/loopx/*_goal_mode/ @huangruiteng
/loopx/*_goal_mode/ @huangruiteng @loopx-agent

# Presentation: Python projections, dashboard, site and desktop shell.
/loopx/presentation/ @huangruiteng
/apps/presentation/ @huangruiteng
/apps/desktop/ @huangruiteng
/loopx/presentation/ @huangruiteng @loopx-agent
/apps/presentation/ @huangruiteng @loopx-agent
/apps/desktop/ @huangruiteng @loopx-agent

# Canary metrics, benchmarks and regression corpora.
/loopx/canary/ @huangruiteng
/benchmark/ @huangruiteng
/regression/ @huangruiteng
/loopx/canary/ @huangruiteng @loopx-agent
/benchmark/ @huangruiteng @loopx-agent
/regression/ @huangruiteng @loopx-agent

# Optional provider packages.
/packages/ @huangruiteng
/packages/ @huangruiteng @loopx-agent

# Agent skills, man pages, docs, examples, tests, scripts and demos.
/skills/ @huangruiteng
/man/ @huangruiteng
/docs/ @huangruiteng
/examples/ @huangruiteng
/tests/ @huangruiteng
/scripts/ @huangruiteng
/demo/ @huangruiteng
/deprecate/ @huangruiteng
/skills/ @huangruiteng @loopx-agent
/man/ @huangruiteng @loopx-agent
/docs/ @huangruiteng @loopx-agent
/examples/ @huangruiteng @loopx-agent
/tests/ @huangruiteng @loopx-agent
/scripts/ @huangruiteng @loopx-agent
/demo/ @huangruiteng @loopx-agent
/deprecate/ @huangruiteng @loopx-agent

# --- Subsystem routes --------------------------------------------------------

# Frontend source and chat bundle delivery (built assets are not tracked).
/apps/presentation/dashboard/ @huangruiteng @maxliux5
/loopx/presentation/chat_bundle.py @huangruiteng @maxliux5
/scripts/chat_bundle* @huangruiteng @maxliux5
/apps/presentation/dashboard/ @huangruiteng @maxliux5 @loopx-agent
/loopx/presentation/chat_bundle.py @huangruiteng @maxliux5 @loopx-agent
/scripts/chat_bundle* @huangruiteng @maxliux5 @loopx-agent

# Lark integration (subsystem maintainer: @steven-kid).
/loopx/extensions/lark/ @huangruiteng @steven-kid
/loopx/cli_commands/lark_*.py @huangruiteng @steven-kid
/docs/integrations/lark-*.md @huangruiteng @steven-kid
/docs/reference/protocols/lark-*.md @huangruiteng @steven-kid
/examples/lark-* @huangruiteng @steven-kid
/examples/lark_extension_test_support.py @huangruiteng @steven-kid
/examples/control_plane/lark-* @huangruiteng @steven-kid
/tests/extensions/test_lark_*.py @huangruiteng @steven-kid
/loopx/extensions/lark/ @huangruiteng @steven-kid @loopx-agent
/loopx/cli_commands/lark_*.py @huangruiteng @steven-kid @loopx-agent
/docs/integrations/lark-*.md @huangruiteng @steven-kid @loopx-agent
/docs/reference/protocols/lark-*.md @huangruiteng @steven-kid @loopx-agent
/examples/lark-* @huangruiteng @steven-kid @loopx-agent
/examples/lark_extension_test_support.py @huangruiteng @steven-kid @loopx-agent
/examples/control_plane/lark-* @huangruiteng @steven-kid @loopx-agent
/tests/extensions/test_lark_*.py @huangruiteng @steven-kid @loopx-agent

# --- Lead-owned governance, CI and release policy (must stay last) -----------
/.github/ @huangruiteng
/scripts/ci/ @huangruiteng
/AGENTS.md @huangruiteng
/CONTRIBUTING.md @huangruiteng
/docs/product/release-*.md @huangruiteng
/docs/development/contributor-tasks.md @huangruiteng
/docs/project/technical-directions*.md @huangruiteng
# --- Governance, CI and release policy (must stay last) ---------------------
/.github/ @huangruiteng @loopx-agent
/scripts/ci/ @huangruiteng @loopx-agent
/AGENTS.md @huangruiteng @loopx-agent
/CONTRIBUTING.md @huangruiteng @loopx-agent
/docs/product/release-*.md @huangruiteng @loopx-agent
/docs/development/contributor-tasks.md @huangruiteng @loopx-agent
/docs/project/technical-directions*.md @huangruiteng @loopx-agent
51 changes: 39 additions & 12 deletions .github/GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,26 +23,50 @@ repository-wide maintainer authority.

This is the public list of everyone who can satisfy a review requirement on
`main`, and the paths they answer for. It is a snapshot audited on
**2026-09-26**; the matching routes live in [`CODEOWNERS`](CODEOWNERS) and a
**2026-10-04**; the matching routes live in [`CODEOWNERS`](CODEOWNERS) and a
change to either file changes both in one pull request.

| Account | Role | Scope | `CODEOWNERS` route | Since |
| --- | --- | --- | --- | --- |
| [`@huangruiteng`](https://github.com/huangruiteng) | Lead maintainer | Whole repository; governance, CI, releases, security handling, cross-subsystem decisions | Every path, and sole owner of `.github/`, `scripts/ci/`, release policy and technical directions | 2026-05-31 |
| [`@huangruiteng`](https://github.com/huangruiteng) | Lead maintainer | Whole repository; governance, CI, releases, security handling, cross-subsystem decisions | Every path, including `.github/`, `scripts/ci/`, release policy and technical directions | 2026-05-31 |
| [`@steven-kid`](https://github.com/steven-kid) | Subsystem maintainer | [Lark integration](#lark-integration) | Lark extension, its CLI delegates, Lark docs and focused tests | 2026-08-16 ([#3236](https://github.com/loopx-project/loopx/pull/3236)) |
| [`@maxliux5`](https://github.com/maxliux5) | Code owner | Frontend source under `apps/presentation/dashboard/` and chat bundle delivery | Dashboard source, `loopx/presentation/chat_bundle.py`, `scripts/chat_bundle*` | 2026-09-08 ([#4071](https://github.com/loopx-project/loopx/pull/4071)) |

Every other module is owned by the lead maintainer: `CODEOWNERS` gives each
top-level module an explicit line so that gap stays visible rather than hidden
behind the `*` fallback. First-review contacts in the
[table below](#first-review-responsibilities) route the first technical
response but do not satisfy code-owner review.
| [`@loopx-agent`](https://github.com/loopx-agent) | Automated technical code owner | Whole repository; evidence-backed technical review, including governance, CI and release changes | Every route, including the `*` fallback and later subsystem overrides | 2026-10-04 |

`@loopx-agent` shares code ownership on every path with the existing owners.
This includes paths introduced later through the `*` fallback; every narrower
route retains the account so GitHub's last-match rule cannot erase it.
Subsystem maintainers and the lead maintainer retain their responsibilities.
Code ownership qualifies a technical approval for the protected-branch review
requirement; it does not grant release, appointment, security-handling or
admin-bypass merge authority. First-review contacts in the
[table below](#first-review-responsibilities) still do not satisfy code-owner
review.

The automated account accepts this repository-wide technical review scope
through the pull request adding this appointment. Its recent cross-author,
exact-head reviews include [#5533](https://github.com/loopx-project/loopx/pull/5533#pullrequestreview-5406199196),
[#5538](https://github.com/loopx-project/loopx/pull/5538#pullrequestreview-5405727853),
[#5540](https://github.com/loopx-project/loopx/pull/5540#pullrequestreview-5405732798)
and [#5541](https://github.com/loopx-project/loopx/pull/5541#pullrequestreview-5406093154).
These records name the reviewed head, contract, validation and remaining gaps.
They count as one account's reviews; multiple agent sessions do not create
independent GitHub reviewers. Author-owned pull requests still need another
eligible reviewer because GitHub does not accept self-approval.

An `APPROVED` review and GitHub's aggregate review decision are separate facts.
Required code-owner approval uses `CODEOWNERS` on the pull request's base
branch. An account's repository admin permission alone does not satisfy that
requirement when the account is absent from the matching route. After an
appointment reaches `main`, read back the target pull request's review decision;
do not report it as approved solely from the submitted review. See
[GitHub's code-owner rules](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners).

### Code Owner Eligibility

GitHub only honours code owners with repository write access, and a code-owner
approval can merge a change on its paths. A route is therefore added only when
all of the following hold, and the pull request adding it links the evidence:
approval satisfies the code-owner review requirement on its paths. A route is
therefore added only when all of the following hold, and the pull request adding it links the evidence:

1. the account has repository write access;
2. the account has publicly accepted a cohesive path scope, in
Expand Down Expand Up @@ -76,8 +100,11 @@ left draft.
A "response" means a review, comment or merge by an account on the
[roster](#maintainer-and-review-roster) above — the accounts that can satisfy a
review requirement. Comments from anyone else are real conversation, but they
do not satisfy this target, and neither do bot accounts. Both facts come from
GitHub's typed actor data rather than from login names.
do not satisfy this target, and neither do GitHub `Bot` actors. `@loopx-agent`
is an automated account represented by GitHub as a `User`; its qualifying
responses count in the current roster, without treating its sessions as separate
reviewers. These facts come from GitHub's typed actor data rather than from
login names.

| Event | Target | Observed 2026-06-28 → 2026-09-26 |
| --- | --- | --- |
Expand Down
Loading
Loading