Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
afdb71e
feat(cli): ask for the organization and project on trace init
migmartri Sep 8, 2026
986b8d8
fix(cli): honor explicit flags and a stale pinned org on trace init
migmartri Sep 8, 2026
9500291
refactor(cli): tighten the trace init connection swap
migmartri Sep 8, 2026
49c2769
fix(cli): show the title and cursor on the trace init pickers
migmartri Sep 8, 2026
7ac2e35
fix(cli): name the project when trace init creates the workflow
migmartri Sep 8, 2026
c61326c
test(cli): make the trace init pinning test discriminate by organization
migmartri Sep 8, 2026
9245661
feat: report whether the caller can create a workflow in each project
migmartri Sep 8, 2026
f8b72f5
fix: report write access per organization role and keep read-only pro…
migmartri Sep 8, 2026
c2376e8
fix(cli): refuse a read-only project typed in by name on trace init
migmartri Sep 8, 2026
bd211d4
fix(cli): treat the project listing as the source of truth on trace init
migmartri Sep 9, 2026
9ceb915
fix(cli): show every agent in the picker and leave trace init with on…
migmartri Sep 9, 2026
a61bd66
feat(cli): close trace init with what was set up and what to do next
migmartri Sep 9, 2026
f114012
docs(cli): reword the commit step in the trace init next steps
migmartri Sep 9, 2026
b6c854a
docs(cli): call them harnesses and describe what tracing does
migmartri Sep 9, 2026
7ee178b
fix(cli): make the trace init closing message tell the truth
migmartri Sep 9, 2026
f2542cb
fix(cli): report the organization actually used and install harness h…
migmartri Sep 9, 2026
16d8edc
feat: report whether the caller can create a project in the listing
migmartri Sep 9, 2026
9ce79dd
refactor: fold the create-project permission into the paths it gates
migmartri Sep 9, 2026
ea2016c
fix(cli): say what the pickers do and put creating a project last
migmartri Sep 9, 2026
3d77059
fix(cli): only attach a trace contract the project may use
migmartri Sep 9, 2026
c66fbb3
fix(cli): stop warning about a pinned project that does not exist yet
migmartri Sep 9, 2026
4f5e646
fix(cli): seed a new project name from the directory, never from a st…
migmartri Sep 9, 2026
7490321
feat(cli): create the first organization, and mark the ones only view…
migmartri Sep 9, 2026
fb3eebe
fix(cli): put the context inside the question instead of logging it a…
migmartri Sep 9, 2026
8ecd46e
fix: refuse an organization viewer a project, and undo hooks on a fai…
migmartri Sep 9, 2026
ed25e2d
fix(cli): report the only organization as a log line again
migmartri Sep 9, 2026
9413e09
fix(cli): put a harness configuration back rather than uninstalling it
migmartri Sep 9, 2026
93c6253
fix(cli): undo every file a failed init wrote, and only what it created
migmartri Sep 10, 2026
2b9828c
refactor(cli): move the prompter to a package of its own
migmartri Sep 10, 2026
c5a27a9
refactor(cli): tidy the prompt package after the move
migmartri Sep 10, 2026
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 app/cli/cmd/artifact.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func wrappedArtifactConn(cpConn *grpc.ClientConn, role pb.CASCredentialsServiceG
}

if apiInsecure() {
logger.Warn().Msg("API contacted in insecure mode")
logger.Debug().Msg("API contacted in insecure mode")
}

var opts = []grpcconn.Option{
Expand Down
8 changes: 7 additions & 1 deletion app/cli/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ var (
defaultCASAPI = "api.cas.chainloop.dev:443"
apiToken string
flagYes bool
// authTokenIsUser records whether the credentials in use are a user session
// rather than an API token. Commands that behave differently for the two,
// such as `trace init` skipping organization selection for org-scoped API
// tokens, read it instead of parsing the token again.
authTokenIsUser bool
)

const (
Expand Down Expand Up @@ -120,13 +125,14 @@ func NewRootCmd(l zerolog.Logger) *cobra.Command {
}

if apiInsecure() {
logger.Warn().Msg("API contacted in insecure mode")
logger.Debug().Msg("API contacted in insecure mode")
}

authToken, isUserToken, err := loadAuthToken(cmd)
if err != nil {
return err
}
authTokenIsUser = isUserToken

// If the auth token is not set and the command supports federated auth, we try to discover the runner and use the federated token for the runner if available
if authToken == "" && cmdSupportsFederatedAuth(cmd) {
Expand Down
2 changes: 1 addition & 1 deletion app/cli/cmd/trace.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import (

// traceContractFlagDesc documents the --contract flag `trace init` and
// `trace run` share.
const traceContractFlagDesc = `workflow contract to attach when creating the workflow; it must already exist (default: "chainloop-ai-coding-session" when the organization has it, an empty contract otherwise)`
const traceContractFlagDesc = `workflow contract to attach when creating the workflow; it must already exist and be usable by the project (default: "chainloop-ai-coding-session" when the organization has it, an empty contract otherwise)`

// newTraceCmd creates the trace parent command with all subcommands.
func newTraceCmd() *cobra.Command {
Expand Down
Loading
Loading