Skip to content

deps: bump github.com/zclconf/go-cty from 1.14.4 to 1.16.3 - #6

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/go_modules/github.com/zclconf/go-cty-1.16.3
Closed

deps: bump github.com/zclconf/go-cty from 1.14.4 to 1.16.3#6
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/go_modules/github.com/zclconf/go-cty-1.16.3

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 16, 2025

Copy link
Copy Markdown
Contributor

Bumps github.com/zclconf/go-cty from 1.14.4 to 1.16.3.

Release notes

Sourced from github.com/zclconf/go-cty's releases.

v1.16.0

  • convert: When converting between two different capsule types, will now try to use the "conversion from" implementation from the target type if the source type doesn't have a suitable "conversion to" implementation. (#194)
  • convert: When converting to a map whose element type is an object type with optional attributes, will no longer construct a broken result when a final map is empty. (#198)
Changelog

Sourced from github.com/zclconf/go-cty's changelog.

1.16.3 (May 16, 2025)

  • convert: Now generates more specific error messages in various cases of type conversion failure, giving additional information about the type that was given as compared to the type that was wanted by the caller.

1.16.2 (January 21, 2025)

  • json: ImpliedType now returns an error if a JSON object contains two properties of the same name. As a compatibility concession it allows duplicates whose values have the same implied type, since it was unintentionally possible to combine ImpliedType and Unmarshal successfully in that case before, but this is not an endorsement of using duplicate property names since that makes the input ambiguous in any case. (#199)
  • function/stdlib: ElementFunc no longer crashes when asked for a negative index into a tuple. This fixes a miss in the negative index support added back in v1.15.0. (#200)

1.16.1 (January 13, 2025)

  • cty: Value.HasElement now treats unknown set elements consistently with how much of the rest of cty treats them.
  • function/stdlib: FormatFunc and FormatListFunc now handle unknown and null values of unknown type as arguments, rather than letting the function system's short-circuit behavior take care of it. This allows cty.DynamicVal and cty.NullVal(cty.DynamicPseudoType) to be treated consistently with other values, returning results consistent with the documented behavior, rather than forcing the function to immediately return cty.DynamicVal.

1.16.0 (January 3, 2025)

  • convert: When converting between two different capsule types, will now try to use the "conversion from" implementation from the target type if the source type doesn't have a suitable "conversion to" implementation. (#194)
  • convert: When converting to a map whose element type is an object type with optional attributes, will no longer construct a broken result when a final map is empty. (#198)

1.15.1 (November 26, 2024)

  • function: Function calls can now return more mark-related information when called with unknown values when neither AllowMarks nor AllowUnknown are set for a particular parameter. (#196)

1.15.0 (July 15, 2024)

  • function/stdlib: The element function now accepts negative indices, extending the illusion of an infinitely-long list into the negative direction too.
  • cty: The various "transform" functions were previously incorrectly propagating marks from a parent object down to attribute values when calling the caller-provided transform functions. The marks will now no longer be propagated downwards, which is consistent with the treatment of collection and tuple elements. If your transform function needs to take into account context about marks of upstream containers then you can maintain a stack of active marks in your Transformer implementation, pushing in Enter and popping in Exit. (#185)
Commits
  • a49320f Prepare for v1.16.3 release
  • 89f0621 convert: More forthcoming about cause in MismatchMessage
  • 67d85b6 Prepare for a future v1.16.3 release
  • 51a6901 v1.16.2 release
  • 1c48de3 json: ImpliedType rejects duplicate property names of different types
  • d13b46e function/stdlib: ElementFunc handles negative index into tuple
  • 0ed0ebb Prepare for future v1.16.2 release
  • b319524 v1.16.1 release
  • e41d261 cty: Fix various Value.HasElement quirks, and add tests
  • 8920baa function/stdlib: FormatFunc and FormatListFunc can handle DynamicPseudoType
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot @github

dependabot Bot commented on behalf of github Jun 16, 2025

Copy link
Copy Markdown
Contributor Author

Labels

The following labels could not be found: automerge, dependencies. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot
dependabot Bot force-pushed the dependabot/go_modules/github.com/zclconf/go-cty-1.16.3 branch 3 times, most recently from 0a555a0 to 209cf02 Compare June 22, 2025 18:58
@jingle2008
jingle2008 force-pushed the main branch 4 times, most recently from 2490528 to a0c9543 Compare June 23, 2025 04:03
@dependabot
dependabot Bot force-pushed the dependabot/go_modules/github.com/zclconf/go-cty-1.16.3 branch from 209cf02 to ecf931c Compare June 27, 2025 04:45
@dependabot
dependabot Bot force-pushed the dependabot/go_modules/github.com/zclconf/go-cty-1.16.3 branch from ecf931c to 2934e79 Compare July 14, 2025 16:21
Bumps [github.com/zclconf/go-cty](https://github.com/zclconf/go-cty) from 1.14.4 to 1.16.3.
- [Release notes](https://github.com/zclconf/go-cty/releases)
- [Changelog](https://github.com/zclconf/go-cty/blob/main/CHANGELOG.md)
- [Commits](zclconf/go-cty@v1.14.4...v1.16.3)

---
updated-dependencies:
- dependency-name: github.com/zclconf/go-cty
  dependency-version: 1.16.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/go_modules/github.com/zclconf/go-cty-1.16.3 branch from 2934e79 to 3c989d2 Compare July 15, 2025 04:59
@dependabot @github

dependabot Bot commented on behalf of github Aug 26, 2025

Copy link
Copy Markdown
Contributor Author

Superseded by #12.

@dependabot dependabot Bot closed this Aug 26, 2025
@dependabot
dependabot Bot deleted the dependabot/go_modules/github.com/zclconf/go-cty-1.16.3 branch August 26, 2025 11:29
jingle2008 added a commit that referenced this pull request May 17, 2026
#6 (pkg/models/base_model): document that GetDefaultDacShape returns
   a pointer aliasing an element of the underlying
   CompatibleDACShapes slice. Mutating it is visible to every
   BaseModel that shares the same *DacShapeConfigs. Treat as
   read-only.

#7 (internal/ui/tui/reducer_actions): rename local `key` variables
   to `itemKey` in scaleUpGpuPool / cordonNode / drainNode /
   getSelectedItem. The locals were shadowing the bubbles/key
   package import (no bug — Go scopes correctly — but the rest of
   the file uses `itemKey` and the parity is worth having).

#10 (internal/cli/output/WriteJSONL): document that "_group" is a
   reserved field name used to carry the originating map key when
   flattening keyed inputs; callers must not name a JSON field
   "_group" or it will be silently overwritten.

#5 (internal/cli/output/WriteJSONL): add a TODO(perf) note about
   the marshal→unmarshal→remarshal roundtrip in the map path.
   ~3× steady-state memory of a streaming writer; acceptable for
   current dataset sizes, revisit with reflect-based streaming if
   profiles show it as a hotspot.

Minor #8 (//nolint:cyclop on emitCategory) and Minor #9 (Categories
global unused outside tests) deliberately not addressed per the
reviewer's own guidance — both were explicitly out of scope.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jingle2008 added a commit that referenced this pull request May 17, 2026
#1 (go.mod/go.sum): `go mod tidy` moved
   github.com/modelcontextprotocol/go-sdk out of the //indirect block.
   It's a direct import from internal/mcp/server.go.

#2 (internal/mcp/server.go:Run): document blocking semantics, EOF /
   ctx-cancel exit conditions, and the single-shot constraint
   (a second Run on the same Server reuses the SDK's session list).

#3 (internal/cli): extract validateLoaderConfig out of validateGetConfig
   so runMCP shares the four-field env check. Both surfaces now report
   "missing required setting(s): ..." with consistent wording. Kept
   the kubeconfig stat in validateGetConfig — only get needs it.

#4 (internal/cli/output/output.go): document FlattenWithKey's
   collision rule. If T's JSON encoding contains a field named
   groupField, the map key wins and the original value is silently
   overwritten. Currently safe (pool/tenant/model don't collide with
   any pkg/models tag), but locked in writing for future-proofing.

#5 (internal/cli/output/output_test.go): add direct tests for
   FlattenWithKey covering nil/empty maps, single entry, sort
   stability across multiple groups, omitempty respected, and the
   collision-overwrite contract from #4.

Outstanding from the latest review: an in-memory MCP integration
test for the JSON-RPC framing path (#6). Coming next in a separate
commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jingle2008 added a commit that referenced this pull request May 17, 2026
Code-review feedback #6: the existing server_test.go covered the
handler-level invariants (envFor / jsonResult / warningsFromPartial /
normFilter) but nothing exercised the SDK's JSON-RPC framing path
end-to-end. A typo in registerTools, a missing schema field, or a
mismatched handler signature would only have been caught by the
manual stdio smoke test.

Wires NewServer against a stub loader.Loader (every method returns
empty results — the test only exercises list_aliases which doesn't
touch the loader) over an in-memory MCP transport pair from
sdk.NewInMemoryTransports(). Round-trips:

  - tools/list — asserts every registered tool name is present and
    the count exactly matches the expected 12, so adding or
    removing tools without updating this expectation fails the test.
  - tools/call list_aliases — asserts the listResult envelope shape
    (items[], count, warnings) end-to-end through the JSON-RPC
    framing, plus the per-item {alias, category} shape.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jingle2008 added a commit that referenced this pull request May 18, 2026
Sweeps the remaining review items #6, #7, and the relevant Minors:

  - #6 + Minor #9: merge validateMutationConfig and validateScaleConfig
    into a single function with (needsKube, needsRepo) booleans. Drop
    the unreachable "missing --kubeconfig" branch — the persistent
    flag always supplies ~/.kube/config so the os.Stat guard is the
    real check.

  - #7: each mutation tool description now spells out that mutations
    target the server's startup env only; env_* fields in the
    arguments are silently ignored by the JSON unmarshaler. Header
    comment in registerMutationTools explains the reasoning.

  - Minor #8: fold requireConfirm into runMutationTool. Each handler
    now makes a single call with `in.Confirm` and a perform closure
    instead of the previous two-step gate + execute. The 4-value
    return is gone; refusal becomes the same shape as failure.

  - Minor #12: fix doc-level wording — delete.Short adds "the",
    scale.Short drops the misleading plural, reboot.Long rewords
    "fire-and-forget" so it doesn't read as "OCI finished".

Minor #10 was based on misreading the perform-vs-runMutation
ordering; the "no change" note already prints before "OK". No
change needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jingle2008 added a commit that referenced this pull request May 20, 2026
Three Important + three Minor follow-ups from the post-commit review:

Important #1 — MCP integration test for enrichment failure:
- New TestIntegration_NotifiesOnGpuPoolEnrichmentFailure (and a tiny
  fixedGpuPoolsLoader helper) drives list_gpu_pools against a
  non-empty stub loader with KubeConfig pointed at a missing file.
  Asserts: tool call succeeds (IsError=false), Terraform-derived pool
  still rendered with placeholder status, enrichment warning appears
  in BOTH the StructuredContent.warnings envelope AND as a
  notifications/message frame. Was a real coverage gap — previous
  partial-load integration test returned nil pools, taking
  EnrichGpuPools's empty-slice fast-path.

Important #2 — GpuPool JSON shape pin-test:
- New TestWriteSlice_GpuPool_JSONShape asserts every key on the
  rendered object uses the lowercase JSON tags introduced in v0.3.0
  (name / shape / actualSize / status / capacityType / …) and that no
  capitalized struct-field name leaks. The CHANGELOG claimed
  shape-unchanged; this test backs that claim.

Important #3 — Structured log for enrichment failures:
- EnrichGpuPools now emits a logger.Infow line at each failure point
  with `step=compartment_id|populate` plus the error, matching the
  Infow pattern resolve.GpuPool already uses for partial-load.
  Long-running MCP servers degrade visibly in logs instead of only
  via tool output. Logger interface has no Warnw — using Infow stays
  consistent with the existing partial-load log shape.

Minor #4 — CHANGELOG calls out the NONEXIST status:
- A Terraform-defined pool that hasn't been applied yet now shows
  `status: "NONEXIST"` after enrichment (the literal value
  PopulateGpuPools writes when OCI returns 200 but excludes the pool
  from its result). Same as TUI behavior; just wasn't documented for
  CLI/MCP consumers.

Minor #7 — CHANGELOG calls out the offline-experience change:
- `toolkit get gpupool` was previously offline-capable; one K8s
  lookup attempt is now made before any output renders. Added a
  sentence explaining the new latency on no-auth hosts.

Minor #8 — CLI warning prefix symmetry:
- Partial-Terraform failures previously printed `warning: <err>`;
  enrichment failures print `warning: gpu pool enrichment
  incomplete: <err>`. Both are now prefixed by their step
  (`warning: load gpu pools: ...` vs `warning: gpu pool enrichment
  incomplete: ...`) so a reader can tell at a glance which one fired.

Skipped from the review's Minor list:
- #5 (string→error return type for EnrichGpuPools) — pure style call,
  current shape reads cleanly at both call sites; defer to a future
  pass if/when call sites grow.
- #6 (categorized warnings field) — would require restructuring the
  warnings array into typed entries (Terraform vs enrichment). Bigger
  surface change than this review warrants.

Verified: go test ./..., make fmt-check, make goimports-check,
golangci-lint run ./... all green.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
jingle2008 added a commit that referenced this pull request May 24, 2026
Code-review follow-up to the four-commit ImportedModel feature
(02fdba7 .. 2c1090e). All review feedback addressed:

Important #1 — MCP description claimed a `source` field that was
dropped in 0d194ae. Replaced with the orthogonality guidance the Go
doc and CHANGELOG now use. Agents planning JSON paths against the
tool description will no longer be misled.

Important #2 — CHANGELOG was missing the silent BaseModel filter
change (02fdba7). Added a `### Changed` entry explicit about the
count delta — `toolkit get basemodel -o json | jq length` returns
fewer items on clusters with tenant-scoped CBMs. Points readers at
the new `importedmodel` category to recover the full set.

Important #3 — Confirmed via inventory of pkg/models that
ImportedModel is the only category with both Namespace and TenantID
(DAC, LimitTenancyOverride, ConsolePropertyTenancyOverride each
have TenantID alone). Adopting the DAC pattern: TenantID is the OCI
tenant identifier (from `tenancy-id` label, populated on any source
that carries the label); Namespace is the K8s scope (the
authoritative source-kind indicator). They're orthogonal facets,
not synonyms. Loader behavior unchanged — only documentation flips,
in three places:

  - pkg/models/imported_model.go: expanded doc-comment with the
    "orthogonal facets" framing and explicit consumer guidance
    ("which K8s scope" vs "which OCI tenant").
  - internal/mcp/tools.go (list_imported_models description): same
    clarification, replacing the stale `source` mention.
  - CHANGELOG: same framing, with the DAC-pattern reference.

Important #4 — Added a deliberate comment in LoadImportedModels
explaining the all-or-nothing semantics vs. the LoadGpuPools
partial-error idiom. The two sources here are conceptually one
catalog; a half-loaded result is more confusing than an explicit
error, and the cross-GVR RBAC asymmetry (namespaced `basemodels`
vs cluster-scoped `clusterbasemodels`) is the realistic failure
mode the comment calls out.

Minor #5 — TestList_ImportedModels_FlatShape doc-comment said the
test asserts `source` is present; corrected to reflect that the
test now asserts `source` is absent (the post-0d194ae contract).

Skipped from the review's Minor list:
- #6 (lint suppression placement) — pre-existing, no change.
- #7 (split routeLoadingDataMsg following the routeList* pattern) —
  could land in a follow-up if the next addition pushes the message
  count above the cyclop ceiling again; not urgent at 10.
- #8 (ResetScopedData consistency) — already correct.
- #9 (StorageURI placement on BaseModel vs ImportedModel) — already
  the right call, no change.
- #10 (CLI table readability) — passed review.

Verified: go test ./..., make fmt-check, make goimports-check,
golangci-lint run ./... all green.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
jingle2008 added a commit that referenced this pull request May 24, 2026
After aligning CLI defaults with TUI, every column was Default==true.
The field carried no information.

- Column / GroupedColumn: 4 fields instead of 5
- Set/GroupedSet: DefaultColumns() and Defaults() methods deleted
- registry: DefaultsFor() deleted; HelpTable drops the DEFAULT column;
  pickFlat/pickGrouped return s.Columns directly when --columns is empty
- 19 per-category .go files: removed Default: true from 109 column
  declarations
- per-category tests: removed Default-flag verification blocks (~150 lines)
- get_columns_test.go: --columns help test no longer expects DEFAULT
- spec: Decision #6 updated to reflect the single-tier policy

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
jingle2008 added a commit that referenced this pull request Jun 22, 2026
…ent slog ctx

Follow-up to the Warn-level work, addressing the dead-API, missing-debug,
and minor items from the logging evaluation.

#5 Activate the previously-unused interface methods:
- WithFields: tag each session's logger with "cmd" (tui/get/mcp/mutate)
  and "version" where available, at the four logger-creation sites, so
  lines in the shared log file stay attributable per command/build.
  Keys chosen to not collide with existing per-call fields.
- DebugEnabled: guard the cty value.GoString() formatting in the
  Terraform locals resolver, which previously ran unconditionally at
  Info; now a debug-only breadcrumb.

#6 Add counts-only debug breadcrumbs at the main load chokepoints
(LoadGPUPools pool/source counts, LoadGPUNodesByPool, LoadGPUWorkloadsByNode)
so `--log-level debug` yields a useful load trace. No payloads logged.

#7 Document why the slog adapter uses context.Background() (interface is
context-free by design; the installed JSON handler ignores context) and
what to change if a context-aware handler is ever added.

#8 Flatten the empty-level branch in parseZapLevel/parseSlogLevel into a
dedicated case for readability. Rotation defaults and NewLogger left as-is.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jingle2008 added a commit that referenced this pull request Jun 23, 2026
…save

Resolves seven review findings across the TUI/CLI/config layers; each fix
is covered by a test that fails before the change.

- DAC delete (dac_actions.go): guard nil OpcRequestId in the delete error
  path via a new derefOr helper, and reject a nil work-request id in
  waitForWorkRequest instead of dereferencing/polling it; skip endpoint
  summaries with a nil DedicatedAiClusterId rather than panicking the whole
  deletion. [findings #2, #3]
- GPU pool enrichment (gpu_node_actions.go): skip instance-pool summaries
  missing DisplayName/Id/Size (extracted applyInstancePoolSummaries) so a
  partial OCI response can't crash get/list/scale. [finding #5]
- Lazy loading (model.go): add GPUWorkload to lazyLoadedCategories so
  `toolkit -c gpuworkload` issues the category load on direct startup. A
  contract test now asserts every kube-backed category is lazy-loaded.
  [finding #4]
- DAC delete timeout (model_state.go, update_list_ops.go): run the
  multi-minute deletion under a new uncapped longOpCtx instead of the 30s
  opCtx, so its own internal timeout governs. [finding #6]
- Atomic metadata save (metadata_save.go): writeFileAtomic writes a temp
  file, fsyncs, then renames, so an interrupted write can't corrupt the
  existing file. [finding #8]
- stderr sink (redirect_stderr_unix.go): 0644 -> 0600 to keep captured
  auth-plugin output and panic stacks private. [finding #7]

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
jingle2008 added a commit that referenced this pull request Jun 23, 2026
Resolves review finding #6 (overlapping workflows with different gates).

test.yml (on main push/PR) ran `make test` + `make cover` + an inline 80%
coverage threshold — all already performed by ci.yml's unit-test job via
`make ci` → `cover-check` (full race suite + the same 80% threshold). ci.yml
additionally runs fmt-check, goimports-check, lint, vet, govulncheck, the
Codecov upload, integration tests, and a release snapshot, so it is a strict
superset. test.yml's only extras (HTML coverage report, verbose output) are
dev-only Makefile targets, not CI signals.

Deleting test.yml leaves ci.yml as the one authoritative gate. No README
badge or doc referenced test.yml.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
jingle2008 added a commit that referenced this pull request Jun 23, 2026
Remove redundant test.yml so ci.yml is the single authoritative quality
gate (review finding #6).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants