MCPcopy Create free account
hub / github.com/compozy/agh / newTaskReleaseCommand

Function newTaskReleaseCommand

internal/cli/task.go:1871–1924  ·  view source on GitHub ↗
(deps commandDeps)

Source from the content-addressed store, hash-verified

1869}
1870
1871func newTaskReleaseCommand(deps commandDeps) *cobra.Command {
1872 var reason string
1873 var metadataRaw string
1874
1875 cmd := &cobra.Command{
1876 Use: "release <run-id> [run-id...]",
1877 Short: "Force release claimed task runs back to the queue",
1878 Args: cobra.MinimumNArgs(1),
1879 Example: ` # Release a claim without completing the run
1880 agh task release run-123
1881
1882 # Release multiple claims with shared audit evidence
1883 agh task release run-123 run-456 --reason handoff`,
1884 RunE: func(cmd *cobra.Command, args []string) error {
1885 runIDs, err := requiredTaskRunIDs(args)
1886 if err != nil {
1887 return err
1888 }
1889 request := ForceReleaseTaskRunRequest{
1890 Reason: strings.TrimSpace(reason),
1891 }
1892 if cmd.Flags().Changed("metadata") {
1893 request.Metadata, err = parseAgentTaskJSONFlag("metadata", metadataRaw)
1894 if err != nil {
1895 return err
1896 }
1897 }
1898
1899 client, err := clientFromDeps(deps)
1900 if err != nil {
1901 return err
1902 }
1903 if len(runIDs) == 1 {
1904 record, err := client.ForceReleaseTaskRun(cmd.Context(), runIDs[0], request)
1905 if err != nil {
1906 return err
1907 }
1908 return writeCommandOutput(cmd, taskRunBundle(record))
1909 }
1910 record, err := client.BulkForceReleaseTaskRuns(cmd.Context(), BulkForceTaskRunRequest{
1911 RunIDs: runIDs,
1912 Reason: request.Reason,
1913 Metadata: request.Metadata,
1914 })
1915 if err != nil {
1916 return err
1917 }
1918 return writeCommandOutput(cmd, bulkForceTaskRunBundle(record))
1919 },
1920 }
1921 cmd.Flags().StringVar(&reason, "reason", "", "Optional release reason")
1922 cmd.Flags().StringVar(&metadataRaw, "metadata", "", "Optional release metadata JSON")
1923 return cmd
1924}
1925
1926func newTaskRetryCommand(deps commandDeps) *cobra.Command {
1927 var metadataRaw string

Callers 1

newTaskCommandFunction · 0.85

Calls 8

requiredTaskRunIDsFunction · 0.85
parseAgentTaskJSONFlagFunction · 0.85
clientFromDepsFunction · 0.85
writeCommandOutputFunction · 0.85
taskRunBundleFunction · 0.85
bulkForceTaskRunBundleFunction · 0.85
ForceReleaseTaskRunMethod · 0.65

Tested by

no test coverage detected