Replace os.ReadFile with coreio.Local.Read for consistent filesystem abstraction.
Replace fmt.Errorf/errors.New with log.E() from go-log for structured error context.
Co-Authored-By: Virgil <virgil@lethean.io>
Replace shell-outs to `gh` with native Gitea SDK calls via shared
forge_client.go helper. Supports both ListRepoActionRuns (1.25+) and
ListRepoActionTasks (older Forgejo) for CI status. Issues and reviews
now use SDK list endpoints with proper filtering.
Co-Authored-By: Virgil <virgil@lethean.io>