Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@
- Swift concurrency: treat sibling `async let` tasks as a review red flag when one child is required and another is optional/best-effort. Prefer sequential awaits or a drained `withThrowingTaskGroup` that surfaces required failures and explicitly contains optional failures; crash stacks mentioning `swift_task_dealloc` or `asyncLet_finish_after_task_completion` should trigger an audit of nearby `async let` usage.
- Prefer modern SwiftUI/Observation macros: use `@Observable` models with `@State` ownership and `@Bindable` in views; avoid `ObservableObject`, `@ObservedObject`, and `@StateObject`.
- Favor modern macOS 15+ APIs over legacy/deprecated counterparts when refactoring (Observation, new display link APIs, updated menu item styling, etc.).
- Keep provider data siloed: when rendering usage or account info for a provider (Claude vs Codex), never display identity/plan fields sourced from a different provider.***
- Keep provider data siloed: when rendering usage or account info for a provider (Claude vs Codex), never display identity/plan fields sourced from a different provider.
- Claude CLI status line is custom + user-configurable; never rely on it for usage parsing by default. A user-enabled, opt-in statusLine JSON feed is permitted as an explicit data source (owner ruling, #2733): it must be off by default, clearly labeled as sourced from the user's own statusLine config, and fail soft when the format drifts.
- Cookie imports: default Chrome-only when possible to avoid other browser prompts; override via browser list when needed.
1 change: 1 addition & 0 deletions CLAUDE.md
2 changes: 1 addition & 1 deletion Scripts/ci_macos_test_gate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ classify_path() {
path_count=$((path_count + 1))

case "$path" in
AGENTS.md|docs/configuration.md)
AGENTS.md|CLAUDE.md|docs/configuration.md)
require_macos_tests "$path" "changes contributor or runtime configuration contracts"
;;
*.md)
Expand Down
3 changes: 3 additions & 0 deletions Scripts/test_ci_path_gate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ assert_gate true rename-from-configuration-doc $'R100\tdocs/configuration.md\tdo
assert_gate true agents-contract $'M\tAGENTS.md'
assert_gate true rename-to-agents-contract $'R100\tdocs/old.md\tAGENTS.md'
assert_gate true rename-from-agents-contract $'R100\tAGENTS.md\tdocs/new.md'
assert_gate true claude-contract $'M\tCLAUDE.md'
assert_gate true rename-to-claude-contract $'R100\tdocs/old.md\tCLAUDE.md'
assert_gate true rename-from-claude-contract $'R100\tCLAUDE.md\tdocs/new.md'
assert_gate true source $'M\tSources/CodexBar/App.swift'
assert_gate false docs-site $'M\tdocs/index.html' $'M\tdocs/site.css' $'M\tdocs/site.js' \
$'M\tdocs/site-locales.mjs' $'M\tdocs/social.html' $'M\tdocs/social.png' \
Expand Down