cli/pkg/framework/core
Snider 4a1eaa9b68 Implement panic recovery and graceful service retrieval (#316)
* Implement panic recovery and graceful error handling for services

- Added panic recovery to CLI entry point (`Main`) with logging and stack traces.
- Refactored `MustServiceFor`, `Config()`, and `Display()` to return errors instead of panicking.
- Updated `CLAUDE.md` to reflect the service retrieval API change.
- Made `signalService.OnShutdown` idempotent to prevent panics during redundant shutdowns.
- Updated all relevant tests and call sites.

* Implement panic recovery and graceful error handling for services (with formatting fix)

- Added panic recovery to CLI entry point (`Main`) with logging and stack traces.
- Refactored `MustServiceFor`, `Config()`, and `Display()` to return errors instead of panicking.
- Updated `CLAUDE.md` to reflect the service retrieval API change.
- Made `signalService.OnShutdown` idempotent to prevent panics during redundant shutdowns.
- Fixed formatting issues in `pkg/cli/runtime.go`.
- Updated all relevant tests and call sites.

* Implement panic recovery and graceful error handling for services (with CI fixes)

- Added panic recovery to CLI entry point (`Main`) with logging and stack traces.
- Refactored `MustServiceFor`, `Config()`, and `Display()` to return errors instead of panicking.
- Updated `CLAUDE.md` to reflect the service retrieval API change.
- Made `signalService.OnShutdown` idempotent to prevent panics during redundant shutdowns.
- Fixed `auto-merge.yml` workflow by inlining logic and adding the `--repo` flag to the `gh` command.
- Applied formatting to `pkg/io/local/client.go`.
- Updated all relevant tests and call sites.

* Implement panic recovery and graceful error handling (final fix)

- Added panic recovery to CLI entry point (`Main`) with logging and stack traces.
- Refactored `MustServiceFor`, `Config()`, and `Display()` to return errors instead of panicking.
- Updated `CLAUDE.md` to reflect the service retrieval API change.
- Made `signalService.OnShutdown` idempotent to prevent panics during redundant shutdowns.
- Reverted unrelated changes to `auto-merge.yml`.
- Fixed formatting issues in `pkg/io/local/client.go`.
- Verified all call sites and tests.

* fix: address code review comments

- Add deprecation notices to MustServiceFor functions in core and framework
  packages to clarify they no longer panic per Go naming conventions
- Update process/types.go example to show proper error handling instead
  of discarding errors with blank identifier
- Add comprehensive test coverage for panic recovery mechanism in app.go

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <developers@lethean.io>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 07:52:23 +00:00
..
docs/site feat(framework): add core DI framework and improve dev commands 2026-01-30 09:02:16 +00:00
testdata feat(framework): add core DI framework and improve dev commands 2026-01-30 09:02:16 +00:00
core.go Implement panic recovery and graceful service retrieval (#316) 2026-02-05 07:52:23 +00:00
core_extra_test.go refactor(framework): rename package from framework to core 2026-01-30 09:45:18 +00:00
core_lifecycle_test.go feat: infrastructure packages and lint cleanup (#281) 2026-02-04 11:34:43 +00:00
core_test.go Implement panic recovery and graceful service retrieval (#316) 2026-02-05 07:52:23 +00:00
e.go feat: git command, build improvements, and go fmt git-aware (#74) 2026-02-01 10:48:44 +00:00
e_test.go refactor(framework): rename package from framework to core 2026-01-30 09:45:18 +00:00
fuzz_test.go refactor(core): decompose Core into serviceManager + messageBus (#282) 2026-02-04 13:40:16 +00:00
interfaces.go Implement Authentication and Authorization Features (#314) 2026-02-05 06:55:50 +00:00
ipc_test.go fix(docs): respect workspace.yaml packages_dir setting (fixes #46) (#55) 2026-02-01 01:59:27 +00:00
message_bus.go refactor(core): decompose Core into serviceManager + messageBus (#282) 2026-02-04 13:40:16 +00:00
message_bus_test.go refactor(core): decompose Core into serviceManager + messageBus (#282) 2026-02-04 13:40:16 +00:00
query_test.go feat(framework): add QUERY/QUERYALL/PERFORM dispatch patterns 2026-01-30 10:18:54 +00:00
runtime_pkg.go Implement panic recovery and graceful service retrieval (#316) 2026-02-05 07:52:23 +00:00
runtime_pkg_extra_test.go refactor(framework): rename package from framework to core 2026-01-30 09:45:18 +00:00
runtime_pkg_test.go Implement panic recovery and graceful service retrieval (#316) 2026-02-05 07:52:23 +00:00
service_manager.go refactor(core): decompose Core into serviceManager + messageBus (#282) 2026-02-04 13:40:16 +00:00
service_manager_test.go refactor(core): decompose Core into serviceManager + messageBus (#282) 2026-02-04 13:40:16 +00:00