( start time.Time, workspaceID *string, cacheHit *bool, resolved *ResolvedWorkspace, err *error, )
| 150 | } |
| 151 | |
| 152 | func (r *Resolver) observeResolve( |
| 153 | start time.Time, |
| 154 | workspaceID *string, |
| 155 | cacheHit *bool, |
| 156 | resolved *ResolvedWorkspace, |
| 157 | err *error, |
| 158 | ) { |
| 159 | if *err == nil { |
| 160 | r.logger.Debug("workspace.resolve", |
| 161 | "workspace_id", *workspaceID, |
| 162 | "cache_hit", *cacheHit, |
| 163 | "agents_count", len(resolved.Agents), |
| 164 | "skills_count", len(resolved.Skills), |
| 165 | "duration_ms", durationMillis(r.now().Sub(start)), |
| 166 | ) |
| 167 | return |
| 168 | } |
| 169 | |
| 170 | r.logger.Warn("workspace.resolve.error", |
| 171 | "workspace_id", *workspaceID, |
| 172 | "error_type", errorType(*err), |
| 173 | "duration_ms", durationMillis(r.now().Sub(start)), |
| 174 | "error", *err, |
| 175 | ) |
| 176 | } |
| 177 | |
| 178 | // ResolveOrRegister resolves an existing workspace by canonical path or auto-registers it. |
| 179 | func (r *Resolver) ResolveOrRegister(ctx context.Context, path string) (ResolvedWorkspace, error) { |
no test coverage detected