Skip to content

♻️ refactor: flatten packages, split large files, improve structure#43

Merged
vaayne merged 10 commits intomainfrom
refactor-cli-flags
Mar 11, 2026
Merged

♻️ refactor: flatten packages, split large files, improve structure#43
vaayne merged 10 commits intomainfrom
refactor-cli-flags

Conversation

@vaayne
Copy link
Owner

@vaayne vaayne commented Mar 11, 2026

Summary

Major codebase reorganization following the refactor plan in .context/REFACTOR_PLAN.md. All changes are structural — no behavior changes.

  • Phase 1: Flatten ai/ package — Moved ai/types/, ai/registry/, ai/stream/, ai/transform/ to ai/ root. Import ai.Message instead of ai/types.Message. Deleted 4 subpackages.
  • Phase 2: Split agent/pool.go (776 lines) — Into pool.go, pool_options.go, pool_reaper.go, pool_compaction.go with single responsibilities.
  • Phase 3: Split channel/cli/chat.go (701 lines) — Into chat.go, chat_view.go, chat_input.go, chat_picker.go.
  • Phase 4: Extract store/ — Moved agent/store/ to top-level store/ package (cross-cutting concern).
  • Phase 5: Split cron/cron.go — Into service.go (scheduling) and persistence.go (JSON I/O).
  • Docs — Updated architecture.md, README.md, CLAUDE.md, session-compaction.md, cron-system.md.

Also includes the prior commit reorganizing CLI into cmd/anna/ and config/ packages.

Test plan

  • mise run build passes
  • mise run test passes with -race
  • mise run lint reports 0 issues
  • No old import paths remain (ai/types, ai/stream, ai/registry, ai/transform, agent/store)
  • Verify anna chat works end-to-end
  • Verify anna gateway starts correctly

vaayne added 7 commits March 11, 2026 22:03
- Move all CLI commands from root to cmd/anna/ following Go standard layout
- Extract config types and loading logic into dedicated config/ package
- Split monolithic main.go into focused command files:
  - main.go: minimal entry point
  - commands.go: app setup and factories
  - chat.go, gateway.go, models.go, skills.go, version.go, onboard.go
- Update mise.toml and .goreleaser.yaml build paths
- Maintain all existing functionality and tests
…sform to root

- Move ai/types/*.go → ai/*.go (Message, Model, Events, Options)
- Merge ai/registry/ + ai/stream/ → ai/provider.go
- Move ai/transform/ → ai/transform.go
- Delete ai/types/, ai/registry/, ai/stream/, ai/transform/ subpackages
- Update all imports: ai/types → ai, ai/stream → ai, ai/registry → ai
- Providers now import "github.com/vaayne/anna/ai" directly
- pool_options.go: PoolOption, ChatOption, all With* funcs
- pool_reaper.go: StartReaper, reap (idle/dead runner cleanup)
- pool_compaction.go: CompactSession, NeedsCompaction, compaction prompt
- pool.go: Pool struct, session CRUD, Chat, runner lifecycle, persistence
- chat_view.go: View(), resize(), renderMarkdown(), refreshViewport()
- chat_input.go: handleInput(), waitNextChunk(), updateCompletions()
- chat_picker.go: handlePickingKey(), currentModelIndex()
- chat.go: types, chatModel struct, newChatModel, Init(), Update()
- Move agent/store/ → store/
- Update imports in agent/, cmd/anna/
- Store is a cross-cutting concern, not agent-specific
- service.go: Service struct, scheduling, job CRUD
- persistence.go: JSON file I/O (loadJobs, saveJobsLocked)
- Delete monolithic cron.go
- architecture.md: new package layout, ai/ flattening, store/ extraction,
  pool/cron/chat splits, updated provider interface references
- README.md: updated package tree to match new structure
- CLAUDE.md: updated package flow description
- session-compaction.md: pool_compaction.go + store/ paths
- cron-system.md: service.go + persistence.go split
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dd1bd659db

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

builds:
- id: anna
main: .
main: ./cmd/anna

Choose a reason for hiding this comment

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

P1 Badge Update container build target after moving main package

After switching the release build entrypoint to ./cmd/anna, the repo root no longer has the CLI main package, but the Docker build still compiles . (Dockerfile:12 uses go build ... .). In any environment that builds the container image, this refactor causes the image build to fail because the root package is no longer runnable; please update Docker (and any other root-target builds) to compile ./cmd/anna as well.

Useful? React with 👍 / 👎.

vaayne added 3 commits March 11, 2026 23:07
The refactor moved main.go into cmd/anna/, but the Dockerfile still
built from the root directory, causing "no Go files" build failures.
- ai/provider_test.go: Registry, ChannelEventStream, Stream, Complete
- config/config_test.go: CronEnabled, channel IsEnabled/IsNotifyEnabled,
  modelConfigToType, HeartbeatConfig.FilePath absolute path
- channel/notifier_test.go: NotifyTool definition and execute paths
- memory/memory_test.go: MemoryTool update/append/search/unknown action
Adds coverage for NeedsCompaction edge cases (no store, disabled, under
threshold) plus pool Close idempotency, empty History, and concurrent
Chat to provide coverage buffer above 50% CI threshold.
@github-actions
Copy link

📊 Coverage Report

Total coverage: 50.0%

Per-package breakdown
github.com/vaayne/anna/agent/engine/continue.go:12:          60.0%
github.com/vaayne/anna/agent/engine/engine.go:121:           85.1%
github.com/vaayne/anna/agent/engine/engine.go:20:            91.7%
github.com/vaayne/anna/agent/engine/engine.go:211:           88.9%
github.com/vaayne/anna/agent/engine/engine.go:226:           100.0%
github.com/vaayne/anna/agent/engine/engine.go:42:            94.6%
github.com/vaayne/anna/agent/engine/events.go:13:            100.0%
github.com/vaayne/anna/agent/engine/events.go:20:            100.0%
github.com/vaayne/anna/agent/engine/events.go:28:            100.0%
github.com/vaayne/anna/agent/engine/events.go:35:            100.0%
github.com/vaayne/anna/agent/engine/events.go:42:            100.0%
github.com/vaayne/anna/agent/engine/events.go:49:            100.0%
github.com/vaayne/anna/agent/engine/events.go:56:            100.0%
github.com/vaayne/anna/agent/engine/events.go:63:            100.0%
github.com/vaayne/anna/agent/engine/events.go:68:            100.0%
github.com/vaayne/anna/agent/engine/events.go:75:            100.0%
github.com/vaayne/anna/agent/engine/tool_execution.go:17:    90.9%
github.com/vaayne/anna/agent/pool.go:122:                    100.0%
github.com/vaayne/anna/agent/pool.go:130:                    100.0%
github.com/vaayne/anna/agent/pool.go:142:                    75.0%
github.com/vaayne/anna/agent/pool.go:152:                    70.0%
github.com/vaayne/anna/agent/pool.go:170:                    53.3%
github.com/vaayne/anna/agent/pool.go:195:                    72.2%
github.com/vaayne/anna/agent/pool.go:227:                    46.2%
github.com/vaayne/anna/agent/pool.go:250:                    66.7%
github.com/vaayne/anna/agent/pool.go:32:                     100.0%
github.com/vaayne/anna/agent/pool.go:375:                    100.0%
github.com/vaayne/anna/agent/pool.go:383:                    100.0%
github.com/vaayne/anna/agent/pool.go:390:                    90.9%
github.com/vaayne/anna/agent/pool.go:412:                    77.1%
github.com/vaayne/anna/agent/pool.go:46:                     100.0%
github.com/vaayne/anna/agent/pool.go:493:                    75.0%
github.com/vaayne/anna/agent/pool.go:503:                    75.0%
github.com/vaayne/anna/agent/pool.go:513:                    75.0%
github.com/vaayne/anna/agent/pool.go:55:                     100.0%
github.com/vaayne/anna/agent/pool.go:68:                     80.0%
github.com/vaayne/anna/agent/pool.go:80:                     56.5%
github.com/vaayne/anna/agent/pool_compaction.go:128:         80.0%
github.com/vaayne/anna/agent/pool_compaction.go:148:         71.4%
github.com/vaayne/anna/agent/pool_compaction.go:53:          87.2%
github.com/vaayne/anna/agent/pool_options.go:13:             100.0%
github.com/vaayne/anna/agent/pool_options.go:20:             100.0%
github.com/vaayne/anna/agent/pool_options.go:27:             100.0%
github.com/vaayne/anna/agent/pool_options.go:34:             100.0%
github.com/vaayne/anna/agent/pool_options.go:41:             100.0%
github.com/vaayne/anna/agent/pool_options.go:56:             100.0%
github.com/vaayne/anna/agent/pool_reaper.go:13:              83.3%
github.com/vaayne/anna/agent/pool_reaper.go:28:              89.5%
github.com/vaayne/anna/agent/runner/builtin/embed.go:17:     0.0%
github.com/vaayne/anna/agent/runner/gorunner.go:130:         100.0%
github.com/vaayne/anna/agent/runner/gorunner.go:133:         100.0%
github.com/vaayne/anna/agent/runner/gorunner.go:140:         100.0%
github.com/vaayne/anna/agent/runner/gorunner.go:143:         100.0%
github.com/vaayne/anna/agent/runner/gorunner.go:156:         94.4%
github.com/vaayne/anna/agent/runner/gorunner.go:205:         90.5%
github.com/vaayne/anna/agent/runner/gorunner.go:247:         100.0%
github.com/vaayne/anna/agent/runner/gorunner.go:274:         84.6%
github.com/vaayne/anna/agent/runner/gorunner.go:298:         97.6%
github.com/vaayne/anna/agent/runner/gorunner.go:52:          89.5%
github.com/vaayne/anna/agent/runner/gorunner.go:95:          100.0%
github.com/vaayne/anna/agent/runner/prompt.go:119:           85.7%
github.com/vaayne/anna/agent/runner/prompt.go:134:           95.0%
github.com/vaayne/anna/agent/runner/prompt.go:174:           100.0%
github.com/vaayne/anna/agent/runner/prompt.go:192:           100.0%
github.com/vaayne/anna/agent/runner/prompt.go:53:            91.4%
github.com/vaayne/anna/agent/runner/runner.go:101:           100.0%
github.com/vaayne/anna/agent/runner/runner.go:133:           86.7%
github.com/vaayne/anna/agent/runner/runner.go:163:           75.0%
github.com/vaayne/anna/agent/runner/runner.go:175:           100.0%
github.com/vaayne/anna/agent/runner/runner.go:184:           100.0%
github.com/vaayne/anna/agent/runner/runner.go:192:           100.0%
github.com/vaayne/anna/agent/runner/runner.go:203:           100.0%
github.com/vaayne/anna/agent/runner/skill.go:104:            100.0%
github.com/vaayne/anna/agent/runner/skill.go:113:            85.7%
github.com/vaayne/anna/agent/runner/skill.go:155:            85.7%
github.com/vaayne/anna/agent/runner/skill.go:191:            91.7%
github.com/vaayne/anna/agent/runner/skill.go:217:            100.0%
github.com/vaayne/anna/agent/runner/skill.go:249:            91.7%
github.com/vaayne/anna/agent/runner/skill.go:269:            100.0%
github.com/vaayne/anna/agent/runner/skill.go:43:             100.0%
github.com/vaayne/anna/agent/runner/skill.go:48:             92.6%
github.com/vaayne/anna/agent/runner/stream_proxy.go:17:      80.0%
github.com/vaayne/anna/agent/runner/stream_proxy.go:27:      82.4%
github.com/vaayne/anna/agent/runner/stream_proxy.go:57:      100.0%
github.com/vaayne/anna/agent/session.go:21:                  100.0%
github.com/vaayne/anna/agent/tool/bash.go:17:                100.0%
github.com/vaayne/anna/agent/tool/bash.go:34:                81.0%
github.com/vaayne/anna/agent/tool/edit.go:15:                100.0%
github.com/vaayne/anna/agent/tool/edit.go:40:                85.0%
github.com/vaayne/anna/agent/tool/read.go:111:               76.2%
github.com/vaayne/anna/agent/tool/read.go:147:               71.4%
github.com/vaayne/anna/agent/tool/read.go:159:               71.4%
github.com/vaayne/anna/agent/tool/read.go:16:                100.0%
github.com/vaayne/anna/agent/tool/read.go:41:                96.6%
github.com/vaayne/anna/agent/tool/read.go:94:                100.0%
github.com/vaayne/anna/agent/tool/tool.go:22:                100.0%
github.com/vaayne/anna/agent/tool/tool.go:33:                100.0%
github.com/vaayne/anna/agent/tool/tool.go:38:                100.0%
github.com/vaayne/anna/agent/tool/tool.go:47:                100.0%
github.com/vaayne/anna/agent/tool/truncate.go:101:           100.0%
github.com/vaayne/anna/agent/tool/truncate.go:118:           66.7%
github.com/vaayne/anna/agent/tool/truncate.go:131:           100.0%
github.com/vaayne/anna/agent/tool/truncate.go:21:            100.0%
github.com/vaayne/anna/agent/tool/truncate.go:30:            100.0%
github.com/vaayne/anna/agent/tool/truncate.go:41:            100.0%
github.com/vaayne/anna/agent/tool/truncate.go:51:            100.0%
github.com/vaayne/anna/agent/tool/truncate.go:57:            100.0%
github.com/vaayne/anna/agent/tool/truncate.go:64:            92.9%
github.com/vaayne/anna/agent/tool/truncate.go:88:            100.0%
github.com/vaayne/anna/agent/tool/webfetch.go:109:           66.7%
github.com/vaayne/anna/agent/tool/webfetch.go:118:           68.0%
github.com/vaayne/anna/agent/tool/webfetch.go:164:           66.7%
github.com/vaayne/anna/agent/tool/webfetch.go:175:           40.0%
github.com/vaayne/anna/agent/tool/webfetch.go:188:           81.8%
github.com/vaayne/anna/agent/tool/webfetch.go:206:           0.0%
github.com/vaayne/anna/agent/tool/webfetch.go:214:           0.0%
github.com/vaayne/anna/agent/tool/webfetch.go:237:           0.0%
github.com/vaayne/anna/agent/tool/webfetch.go:263:           90.0%
github.com/vaayne/anna/agent/tool/webfetch.go:282:           75.0%
github.com/vaayne/anna/agent/tool/webfetch.go:40:            100.0%
github.com/vaayne/anna/agent/tool/webfetch.go:46:            100.0%
github.com/vaayne/anna/agent/tool/webfetch.go:69:            77.3%
github.com/vaayne/anna/agent/tool/write.go:15:               100.0%
github.com/vaayne/anna/agent/tool/write.go:36:               80.0%
github.com/vaayne/anna/ai/events.go:103:                     100.0%
github.com/vaayne/anna/ai/events.go:111:                     100.0%
github.com/vaayne/anna/ai/events.go:119:                     100.0%
github.com/vaayne/anna/ai/events.go:124:                     100.0%
github.com/vaayne/anna/ai/events.go:16:                      100.0%
github.com/vaayne/anna/ai/events.go:24:                      100.0%
github.com/vaayne/anna/ai/events.go:33:                      100.0%
github.com/vaayne/anna/ai/events.go:42:                      100.0%
github.com/vaayne/anna/ai/events.go:50:                      100.0%
github.com/vaayne/anna/ai/events.go:59:                      100.0%
github.com/vaayne/anna/ai/events.go:68:                      100.0%
github.com/vaayne/anna/ai/events.go:76:                      100.0%
github.com/vaayne/anna/ai/events.go:87:                      100.0%
github.com/vaayne/anna/ai/events.go:96:                      100.0%
github.com/vaayne/anna/ai/message.go:101:                    100.0%
github.com/vaayne/anna/ai/message.go:111:                    100.0%
github.com/vaayne/anna/ai/message.go:26:                     100.0%
github.com/vaayne/anna/ai/message.go:35:                     100.0%
github.com/vaayne/anna/ai/message.go:43:                     100.0%
github.com/vaayne/anna/ai/message.go:46:                     100.0%
github.com/vaayne/anna/ai/message.go:58:                     100.0%
github.com/vaayne/anna/ai/message.go:72:                     100.0%
github.com/vaayne/anna/ai/message.go:86:                     100.0%
github.com/vaayne/anna/ai/message.go:98:                     100.0%
github.com/vaayne/anna/ai/provider.go:162:                   100.0%
github.com/vaayne/anna/ai/provider.go:167:                   100.0%
github.com/vaayne/anna/ai/provider.go:172:                   100.0%
github.com/vaayne/anna/ai/provider.go:177:                   100.0%
github.com/vaayne/anna/ai/provider.go:187:                   100.0%
github.com/vaayne/anna/ai/provider.go:195:                   100.0%
github.com/vaayne/anna/ai/provider.go:36:                    100.0%
github.com/vaayne/anna/ai/provider.go:46:                    100.0%
github.com/vaayne/anna/ai/provider.go:54:                    100.0%
github.com/vaayne/anna/ai/provider.go:61:                    100.0%
github.com/vaayne/anna/ai/provider.go:69:                    100.0%
github.com/vaayne/anna/ai/provider.go:78:                    100.0%
github.com/vaayne/anna/ai/provider.go:87:                    97.1%
github.com/vaayne/anna/ai/providers/anthropic/client.go:24:  0.0%
github.com/vaayne/anna/ai/providers/anthropic/client.go:36:  0.0%
github.com/vaayne/anna/ai/providers/anthropic/client.go:39:  0.0%
github.com/vaayne/anna/ai/providers/anthropic/client.go:56:  0.0%
github.com/vaayne/anna/ai/providers/anthropic/client.go:61:  0.0%
github.com/vaayne/anna/ai/providers/anthropic/client.go:81:  0.0%
github.com/vaayne/anna/ai/providers/anthropic/convert_messages.go:10: 0.0%
github.com/vaayne/anna/ai/providers/anthropic/convert_messages.go:25: 0.0%
github.com/vaayne/anna/ai/providers/anthropic/convert_messages.go:45: 0.0%
github.com/vaayne/anna/ai/providers/anthropic/convert_messages.go:60: 0.0%
github.com/vaayne/anna/ai/providers/anthropic/options.go:36: 0.0%
github.com/vaayne/anna/ai/providers/anthropic/options.go:9:  0.0%
github.com/vaayne/anna/ai/providers/anthropic/stream.go:21:  76.0%
github.com/vaayne/anna/ai/providers/anthropic/stream.go:77:  40.0%
github.com/vaayne/anna/ai/providers/anthropic/stream.go:9:   0.0%
github.com/vaayne/anna/ai/providers/openai-response/client.go:105: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/client.go:110: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/client.go:130: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/client.go:27: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/client.go:42: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/client.go:59: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/client.go:79: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/client.go:84: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/client.go:87: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/convert_messages.go:13: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/convert_messages.go:34: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/convert_messages.go:68: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/options.go:10: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/options.go:38: 0.0%
github.com/vaayne/anna/ai/providers/openai-response/stream.go:21: 100.0%
github.com/vaayne/anna/ai/providers/openai-response/stream.go:74: 40.0%
github.com/vaayne/anna/ai/providers/openai-response/stream.go:9: 0.0%
github.com/vaayne/anna/ai/providers/openai/client.go:24:     0.0%
github.com/vaayne/anna/ai/providers/openai/client.go:36:     0.0%
github.com/vaayne/anna/ai/providers/openai/client.go:39:     0.0%
github.com/vaayne/anna/ai/providers/openai/client.go:57:     0.0%
github.com/vaayne/anna/ai/providers/openai/client.go:62:     0.0%
github.com/vaayne/anna/ai/providers/openai/client.go:82:     0.0%
github.com/vaayne/anna/ai/providers/openai/convert_messages.go:13: 0.0%
github.com/vaayne/anna/ai/providers/openai/convert_messages.go:33: 0.0%
github.com/vaayne/anna/ai/providers/openai/convert_messages.go:66: 0.0%
github.com/vaayne/anna/ai/providers/openai/options.go:10:    0.0%
github.com/vaayne/anna/ai/providers/openai/options.go:32:    0.0%
github.com/vaayne/anna/ai/providers/openai/stream.go:22:     100.0%
github.com/vaayne/anna/ai/providers/openai/stream.go:57:     60.0%
github.com/vaayne/anna/ai/providers/openai/stream.go:9:      0.0%
github.com/vaayne/anna/ai/providers/register_builtins.go:11: 0.0%
github.com/vaayne/anna/ai/transform.go:42:                   85.7%
github.com/vaayne/anna/ai/transform.go:6:                    93.8%
github.com/vaayne/anna/channel/cli/chat.go:125:              75.0%
github.com/vaayne/anna/channel/cli/chat.go:135:              18.8%
github.com/vaayne/anna/channel/cli/chat.go:165:              0.0%
github.com/vaayne/anna/channel/cli/chat.go:169:              38.5%
github.com/vaayne/anna/channel/cli/chat.go:87:               84.6%
github.com/vaayne/anna/channel/cli/chat_input.go:100:        20.0%
github.com/vaayne/anna/channel/cli/chat_input.go:10:         47.9%
github.com/vaayne/anna/channel/cli/chat_input.go:75:         72.7%
github.com/vaayne/anna/channel/cli/chat_picker.go:96:        0.0%
github.com/vaayne/anna/channel/cli/chat_picker.go:9:         0.0%
github.com/vaayne/anna/channel/cli/chat_view.go:16:          77.3%
github.com/vaayne/anna/channel/cli/chat_view.go:66:          66.7%
github.com/vaayne/anna/channel/cli/chat_view.go:78:          100.0%
github.com/vaayne/anna/channel/cli/chat_view.go:85:          100.0%
github.com/vaayne/anna/channel/cli/chat_view.go:88:          0.0%
github.com/vaayne/anna/channel/cli/chat_view.go:96:          0.0%
github.com/vaayne/anna/channel/cli/cli.go:28:                0.0%
github.com/vaayne/anna/channel/cli/cli.go:51:                0.0%
github.com/vaayne/anna/channel/cli/command.go:21:            0.0%
github.com/vaayne/anna/channel/cli/command.go:35:            0.0%
github.com/vaayne/anna/channel/cli/model.go:17:              0.0%
github.com/vaayne/anna/channel/cli/model.go:25:              0.0%
github.com/vaayne/anna/channel/cli/model.go:41:              0.0%
github.com/vaayne/anna/channel/command.go:105:               100.0%
github.com/vaayne/anna/channel/command.go:116:               100.0%
github.com/vaayne/anna/channel/command.go:131:               66.7%
github.com/vaayne/anna/channel/command.go:145:               100.0%
github.com/vaayne/anna/channel/command.go:150:               100.0%
github.com/vaayne/anna/channel/command.go:160:               100.0%
github.com/vaayne/anna/channel/command.go:32:                75.0%
github.com/vaayne/anna/channel/command.go:40:                75.0%
github.com/vaayne/anna/channel/command.go:48:                100.0%
github.com/vaayne/anna/channel/command.go:67:                100.0%
github.com/vaayne/anna/channel/command.go:72:                75.0%
github.com/vaayne/anna/channel/command.go:81:                85.7%
github.com/vaayne/anna/channel/command.go:94:                100.0%
github.com/vaayne/anna/channel/feishu/feishu.go:132:         100.0%
github.com/vaayne/anna/channel/feishu/feishu.go:140:         0.0%
github.com/vaayne/anna/channel/feishu/feishu.go:172:         100.0%
github.com/vaayne/anna/channel/feishu/feishu.go:175:         38.5%
github.com/vaayne/anna/channel/feishu/feishu.go:208:         100.0%
github.com/vaayne/anna/channel/feishu/feishu.go:217:         100.0%
github.com/vaayne/anna/channel/feishu/feishu.go:223:         0.0%
github.com/vaayne/anna/channel/feishu/feishu.go:232:         100.0%
github.com/vaayne/anna/channel/feishu/feishu.go:239:         0.0%
github.com/vaayne/anna/channel/feishu/feishu.go:257:         100.0%
github.com/vaayne/anna/channel/feishu/feishu.go:270:         50.0%
github.com/vaayne/anna/channel/feishu/feishu.go:299:         0.0%
github.com/vaayne/anna/channel/feishu/feishu.go:321:         100.0%
github.com/vaayne/anna/channel/feishu/feishu.go:33:          100.0%
github.com/vaayne/anna/channel/feishu/feishu.go:67:          100.0%
github.com/vaayne/anna/channel/feishu/feishu.go:96:          0.0%
github.com/vaayne/anna/channel/feishu/handler.go:141:        0.0%
github.com/vaayne/anna/channel/feishu/handler.go:161:        0.0%
github.com/vaayne/anna/channel/feishu/handler.go:192:        100.0%
github.com/vaayne/anna/channel/feishu/handler.go:206:        0.0%
github.com/vaayne/anna/channel/feishu/handler.go:242:        25.0%
github.com/vaayne/anna/channel/feishu/handler.go:25:         0.0%
github.com/vaayne/anna/channel/feishu/handler.go:292:        0.0%
github.com/vaayne/anna/channel/feishu/handler.go:312:        100.0%
github.com/vaayne/anna/channel/feishu/handler.go:96:         0.0%
github.com/vaayne/anna/channel/feishu/model.go:106:          100.0%
github.com/vaayne/anna/channel/feishu/model.go:22:           100.0%
github.com/vaayne/anna/channel/feishu/model.go:46:           53.3%
github.com/vaayne/anna/channel/feishu/model.go:75:           100.0%
github.com/vaayne/anna/channel/feishu/model.go:90:           100.0%
github.com/vaayne/anna/channel/feishu/render.go:17:          0.0%
github.com/vaayne/anna/channel/feishu/render.go:44:          18.2%
github.com/vaayne/anna/channel/feishu/render.go:95:          100.0%
github.com/vaayne/anna/channel/feishu/stream.go:130:         0.0%
github.com/vaayne/anna/channel/feishu/stream.go:153:         0.0%
github.com/vaayne/anna/channel/feishu/stream.go:173:         78.6%
github.com/vaayne/anna/channel/feishu/stream.go:27:          100.0%
github.com/vaayne/anna/channel/feishu/stream.go:53:          0.0%
github.com/vaayne/anna/channel/notifier.go:37:               100.0%
github.com/vaayne/anna/channel/notifier.go:42:               100.0%
github.com/vaayne/anna/channel/notifier.go:50:               100.0%
github.com/vaayne/anna/channel/notifier.go:88:               100.0%
github.com/vaayne/anna/channel/notify_tool.go:16:            100.0%
github.com/vaayne/anna/channel/notify_tool.go:43:            100.0%
github.com/vaayne/anna/channel/notify_tool.go:51:            100.0%
github.com/vaayne/anna/channel/qq/handler.go:130:            100.0%
github.com/vaayne/anna/channel/qq/handler.go:143:            76.2%
github.com/vaayne/anna/channel/qq/handler.go:181:            0.0%
github.com/vaayne/anna/channel/qq/handler.go:18:             0.0%
github.com/vaayne/anna/channel/qq/handler.go:217:            28.6%
github.com/vaayne/anna/channel/qq/handler.go:264:            100.0%
github.com/vaayne/anna/channel/qq/handler.go:276:            0.0%
github.com/vaayne/anna/channel/qq/handler.go:286:            0.0%
github.com/vaayne/anna/channel/qq/handler.go:298:            0.0%
github.com/vaayne/anna/channel/qq/handler.go:49:             0.0%
github.com/vaayne/anna/channel/qq/handler.go:94:             30.0%
github.com/vaayne/anna/channel/qq/model.go:12:               90.9%
github.com/vaayne/anna/channel/qq/model.go:34:               100.0%
github.com/vaayne/anna/channel/qq/model.go:48:               100.0%
github.com/vaayne/anna/channel/qq/qq.go:136:                 100.0%
github.com/vaayne/anna/channel/qq/qq.go:144:                 100.0%
github.com/vaayne/anna/channel/qq/qq.go:147:                 18.2%
github.com/vaayne/anna/channel/qq/qq.go:177:                 100.0%
github.com/vaayne/anna/channel/qq/qq.go:186:                 100.0%
github.com/vaayne/anna/channel/qq/qq.go:191:                 100.0%
github.com/vaayne/anna/channel/qq/qq.go:197:                 0.0%
github.com/vaayne/anna/channel/qq/qq.go:23:                  100.0%
github.com/vaayne/anna/channel/qq/qq.go:55:                  90.9%
github.com/vaayne/anna/channel/qq/qq.go:91:                  0.0%
github.com/vaayne/anna/channel/qq/render.go:11:              0.0%
github.com/vaayne/anna/channel/qq/render.go:41:              100.0%
github.com/vaayne/anna/channel/qq/stream.go:128:             0.0%
github.com/vaayne/anna/channel/qq/stream.go:168:             78.6%
github.com/vaayne/anna/channel/qq/stream.go:27:              100.0%
github.com/vaayne/anna/channel/qq/stream.go:53:              0.0%
github.com/vaayne/anna/channel/telegram/handler.go:146:      0.0%
github.com/vaayne/anna/channel/telegram/handler.go:155:      0.0%
github.com/vaayne/anna/channel/telegram/handler.go:195:      0.0%
github.com/vaayne/anna/channel/telegram/handler.go:19:       0.0%
github.com/vaayne/anna/channel/telegram/handler.go:36:       100.0%
github.com/vaayne/anna/channel/telegram/handler.go:45:       0.0%
github.com/vaayne/anna/channel/telegram/handler.go:49:       0.0%
github.com/vaayne/anna/channel/telegram/model.go:102:        0.0%
github.com/vaayne/anna/channel/telegram/model.go:13:         0.0%
github.com/vaayne/anna/channel/telegram/model.go:20:         0.0%
github.com/vaayne/anna/channel/telegram/model.go:87:         0.0%
github.com/vaayne/anna/channel/telegram/render.go:22:        0.0%
github.com/vaayne/anna/channel/telegram/render.go:32:        0.0%
github.com/vaayne/anna/channel/telegram/render.go:48:        0.0%
github.com/vaayne/anna/channel/telegram/render.go:67:        85.7%
github.com/vaayne/anna/channel/telegram/stream.go:110:       100.0%
github.com/vaayne/anna/channel/telegram/stream.go:138:       100.0%
github.com/vaayne/anna/channel/telegram/stream.go:146:       100.0%
github.com/vaayne/anna/channel/telegram/stream.go:153:       100.0%
github.com/vaayne/anna/channel/telegram/stream.go:215:       100.0%
github.com/vaayne/anna/channel/telegram/stream.go:235:       100.0%
github.com/vaayne/anna/channel/telegram/stream.go:244:       75.0%
github.com/vaayne/anna/channel/telegram/stream.go:262:       0.0%
github.com/vaayne/anna/channel/telegram/stream.go:283:       0.0%
github.com/vaayne/anna/channel/telegram/stream.go:340:       0.0%
github.com/vaayne/anna/channel/telegram/stream.go:410:       85.7%
github.com/vaayne/anna/channel/telegram/stream.go:439:       0.0%
github.com/vaayne/anna/channel/telegram/stream.go:450:       0.0%
github.com/vaayne/anna/channel/telegram/stream.go:60:        100.0%
github.com/vaayne/anna/channel/telegram/stream.go:77:        100.0%
github.com/vaayne/anna/channel/telegram/stream.go:97:        83.3%
github.com/vaayne/anna/channel/telegram/telegram.go:119:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:125:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:128:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:165:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:168:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:192:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:204:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:210:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:223:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:241:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:24:      0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:250:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:256:     0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:54:      0.0%
github.com/vaayne/anna/channel/telegram/telegram.go:99:      0.0%
github.com/vaayne/anna/channel/util.go:13:                   100.0%
github.com/vaayne/anna/channel/util.go:42:                   100.0%
github.com/vaayne/anna/cmd/anna/chat.go:12:                  4.5%
github.com/vaayne/anna/cmd/anna/commands.go:155:             100.0%
github.com/vaayne/anna/cmd/anna/commands.go:161:             100.0%
github.com/vaayne/anna/cmd/anna/commands.go:187:             9.1%
github.com/vaayne/anna/cmd/anna/commands.go:204:             0.0%
github.com/vaayne/anna/cmd/anna/commands.go:24:              100.0%
github.com/vaayne/anna/cmd/anna/commands.go:52:              69.4%
github.com/vaayne/anna/cmd/anna/gateway.go:172:              0.0%
github.com/vaayne/anna/cmd/anna/gateway.go:194:              0.0%
github.com/vaayne/anna/cmd/anna/gateway.go:23:               83.3%
github.com/vaayne/anna/cmd/anna/gateway.go:47:               17.2%
github.com/vaayne/anna/cmd/anna/main.go:9:                   0.0%
github.com/vaayne/anna/cmd/anna/models.go:116:               0.0%
github.com/vaayne/anna/cmd/anna/models.go:159:               0.0%
github.com/vaayne/anna/cmd/anna/models.go:172:               100.0%
github.com/vaayne/anna/cmd/anna/models.go:187:               100.0%
github.com/vaayne/anna/cmd/anna/models.go:195:               0.0%
github.com/vaayne/anna/cmd/anna/models.go:206:               9.1%
github.com/vaayne/anna/cmd/anna/models.go:234:               16.7%
github.com/vaayne/anna/cmd/anna/models.go:249:               7.1%
github.com/vaayne/anna/cmd/anna/models.go:278:               5.6%
github.com/vaayne/anna/cmd/anna/models.go:315:               0.0%
github.com/vaayne/anna/cmd/anna/models.go:35:                0.0%
github.com/vaayne/anna/cmd/anna/models.go:40:                0.0%
github.com/vaayne/anna/cmd/anna/models.go:53:                0.0%
github.com/vaayne/anna/cmd/anna/models.go:66:                0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:29:               50.0%
github.com/vaayne/anna/cmd/anna/onboard.go:359:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:404:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:456:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:46:               0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:585:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:592:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:601:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:611:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:648:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:671:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:686:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:701:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:707:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:713:              0.0%
github.com/vaayne/anna/cmd/anna/onboard.go:733:              0.0%
github.com/vaayne/anna/cmd/anna/skills.go:109:               25.0%
github.com/vaayne/anna/cmd/anna/skills.go:128:               0.0%
github.com/vaayne/anna/cmd/anna/skills.go:167:               0.0%
github.com/vaayne/anna/cmd/anna/skills.go:18:                50.0%
github.com/vaayne/anna/cmd/anna/skills.go:197:               8.3%
github.com/vaayne/anna/cmd/anna/skills.go:35:                5.3%
github.com/vaayne/anna/cmd/anna/skills.go:78:                7.1%
github.com/vaayne/anna/cmd/anna/version.go:101:              75.0%
github.com/vaayne/anna/cmd/anna/version.go:109:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:117:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:151:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:185:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:197:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:202:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:235:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:271:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:282:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:327:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:360:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:376:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:446:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:462:              0.0%
github.com/vaayne/anna/cmd/anna/version.go:469:              75.0%
github.com/vaayne/anna/cmd/anna/version.go:54:               33.3%
github.com/vaayne/anna/cmd/anna/version.go:65:               6.2%
github.com/vaayne/anna/config/config.go:127:                 100.0%
github.com/vaayne/anna/config/config.go:128:                 100.0%
github.com/vaayne/anna/config/config.go:142:                 100.0%
github.com/vaayne/anna/config/config.go:143:                 100.0%
github.com/vaayne/anna/config/config.go:155:                 100.0%
github.com/vaayne/anna/config/config.go:156:                 100.0%
github.com/vaayne/anna/config/config.go:160:                 83.3%
github.com/vaayne/anna/config/config.go:172:                 100.0%
github.com/vaayne/anna/config/config.go:177:                 100.0%
github.com/vaayne/anna/config/config.go:182:                 100.0%
github.com/vaayne/anna/config/config.go:187:                 100.0%
github.com/vaayne/anna/config/config.go:192:                 87.5%
github.com/vaayne/anna/config/config.go:262:                 100.0%
github.com/vaayne/anna/config/config.go:279:                 100.0%
github.com/vaayne/anna/config/config.go:283:                 100.0%
github.com/vaayne/anna/config/config.go:287:                 100.0%
github.com/vaayne/anna/config/config.go:291:                 100.0%
github.com/vaayne/anna/config/config.go:295:                 100.0%
github.com/vaayne/anna/config/config.go:301:                 100.0%
github.com/vaayne/anna/config/config.go:307:                 100.0%
github.com/vaayne/anna/config/config.go:327:                 90.0%
github.com/vaayne/anna/config/config.go:349:                 66.7%
github.com/vaayne/anna/config/config.go:380:                 84.6%
github.com/vaayne/anna/config/config.go:404:                 87.5%
github.com/vaayne/anna/config/config.go:49:                  100.0%
github.com/vaayne/anna/config/config.go:60:                  100.0%
github.com/vaayne/anna/config/config.go:65:                  100.0%
github.com/vaayne/anna/config/config.go:73:                  100.0%
github.com/vaayne/anna/cron/job.go:36:                       100.0%
github.com/vaayne/anna/cron/persistence.go:11:               100.0%
github.com/vaayne/anna/cron/persistence.go:16:               77.8%
github.com/vaayne/anna/cron/persistence.go:33:               75.0%
github.com/vaayne/anna/cron/service.go:109:                  100.0%
github.com/vaayne/anna/cron/service.go:114:                  0.0%
github.com/vaayne/anna/cron/service.go:139:                  85.7%
github.com/vaayne/anna/cron/service.go:219:                  69.6%
github.com/vaayne/anna/cron/service.go:258:                  100.0%
github.com/vaayne/anna/cron/service.go:269:                  88.9%
github.com/vaayne/anna/cron/service.go:313:                  88.9%
github.com/vaayne/anna/cron/service.go:39:                   75.0%
github.com/vaayne/anna/cron/service.go:54:                   100.0%
github.com/vaayne/anna/cron/service.go:61:                   100.0%
github.com/vaayne/anna/cron/service.go:67:                   100.0%
github.com/vaayne/anna/cron/service.go:71:                   90.9%
github.com/vaayne/anna/cron/tool.go:108:                     100.0%
github.com/vaayne/anna/cron/tool.go:118:                     83.3%
github.com/vaayne/anna/cron/tool.go:62:                      100.0%
github.com/vaayne/anna/cron/tool.go:67:                      100.0%
github.com/vaayne/anna/cron/tool.go:76:                      100.0%
github.com/vaayne/anna/cron/tool.go:90:                      91.7%
github.com/vaayne/anna/heartbeat/service.go:110:             80.0%
github.com/vaayne/anna/heartbeat/service.go:127:             80.0%
github.com/vaayne/anna/heartbeat/service.go:136:             90.9%
github.com/vaayne/anna/heartbeat/service.go:156:             71.4%
github.com/vaayne/anna/heartbeat/service.go:171:             100.0%
github.com/vaayne/anna/heartbeat/service.go:190:             100.0%
github.com/vaayne/anna/heartbeat/service.go:41:              100.0%
github.com/vaayne/anna/heartbeat/service.go:51:              80.8%
github.com/vaayne/anna/heartbeat/service.go:94:              75.0%
github.com/vaayne/anna/memory/memory.go:109:                 69.2%
github.com/vaayne/anna/memory/memory.go:133:                 83.9%
github.com/vaayne/anna/memory/memory.go:183:                 100.0%
github.com/vaayne/anna/memory/memory.go:36:                  100.0%
github.com/vaayne/anna/memory/memory.go:45:                  100.0%
github.com/vaayne/anna/memory/memory.go:55:                  53.3%
github.com/vaayne/anna/memory/memory.go:78:                  100.0%
github.com/vaayne/anna/memory/memory.go:84:                  100.0%
github.com/vaayne/anna/memory/memory.go:90:                  72.7%
github.com/vaayne/anna/memory/tool.go:129:                   91.7%
github.com/vaayne/anna/memory/tool.go:59:                    100.0%
github.com/vaayne/anna/memory/tool.go:64:                    100.0%
github.com/vaayne/anna/memory/tool.go:73:                    100.0%
github.com/vaayne/anna/memory/tool.go:87:                    83.3%
github.com/vaayne/anna/memory/tool.go:98:                    92.9%
github.com/vaayne/anna/skills/install.go:133:                80.0%
github.com/vaayne/anna/skills/install.go:151:                0.0%
github.com/vaayne/anna/skills/install.go:189:                88.2%
github.com/vaayne/anna/skills/install.go:20:                 0.0%
github.com/vaayne/anna/skills/install.go:217:                75.0%
github.com/vaayne/anna/skills/install.go:250:                73.3%
github.com/vaayne/anna/skills/install.go:48:                 81.0%
github.com/vaayne/anna/skills/install.go:86:                 100.0%
github.com/vaayne/anna/skills/list.go:17:                    87.5%
github.com/vaayne/anna/skills/remove.go:14:                  66.7%
github.com/vaayne/anna/skills/remove.go:34:                  100.0%
github.com/vaayne/anna/skills/search.go:30:                  0.0%
github.com/vaayne/anna/skills/search.go:34:                  81.8%
github.com/vaayne/anna/skills/search.go:71:                  93.8%
github.com/vaayne/anna/skills/tool.go:56:                    100.0%
github.com/vaayne/anna/skills/tool.go:61:                    100.0%
github.com/vaayne/anna/skills/tool.go:70:                    85.7%
github.com/vaayne/anna/store/index.go:102:                   83.3%
github.com/vaayne/anna/store/index.go:113:                   90.0%
github.com/vaayne/anna/store/index.go:132:                   100.0%
github.com/vaayne/anna/store/index.go:136:                   100.0%
github.com/vaayne/anna/store/index.go:144:                   100.0%
github.com/vaayne/anna/store/index.go:22:                    100.0%
github.com/vaayne/anna/store/index.go:30:                    100.0%
github.com/vaayne/anna/store/index.go:40:                    82.6%
github.com/vaayne/anna/store/index.go:74:                    75.0%
github.com/vaayne/anna/store/store.go:144:                   66.7%
github.com/vaayne/anna/store/store.go:156:                   100.0%
github.com/vaayne/anna/store/store.go:165:                   91.7%
github.com/vaayne/anna/store/store.go:188:                   100.0%
github.com/vaayne/anna/store/store.go:194:                   80.0%
github.com/vaayne/anna/store/store.go:219:                   70.0%
github.com/vaayne/anna/store/store.go:254:                   86.1%
github.com/vaayne/anna/store/store.go:320:                   100.0%
github.com/vaayne/anna/store/store.go:329:                   73.3%
github.com/vaayne/anna/store/store.go:358:                   85.7%
github.com/vaayne/anna/store/store.go:395:                   85.5%
github.com/vaayne/anna/store/store.go:492:                   94.6%
github.com/vaayne/anna/store/store.go:586:                   78.8%
github.com/vaayne/anna/store/store.go:658:                   71.4%
github.com/vaayne/anna/store/store.go:684:                   89.3%
github.com/vaayne/anna/store/store.go:738:                   87.5%
github.com/vaayne/anna/store/store.go:761:                   75.0%
github.com/vaayne/anna/store/store.go:773:                   88.2%

@vaayne vaayne merged commit 87f25fb into main Mar 11, 2026
6 checks passed
@vaayne vaayne deleted the refactor-cli-flags branch March 11, 2026 15:24
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.

1 participant