Skip to content

DRAFT: Add cone functions subcommands#132

Draft
robert-chiniquy wants to merge 3 commits intomainfrom
rch/devex/fns
Draft

DRAFT: Add cone functions subcommands#132
robert-chiniquy wants to merge 3 commits intomainfrom
rch/devex/fns

Conversation

@robert-chiniquy
Copy link
Contributor

Summary

  • Adds cone functions command tree: new, dev, list, logs (+ hidden deploy pending SDK CreateCommit support)
  • cone functions dev runs TypeScript functions through a MITM proxy with OAuth2+DPoP auth injection, egress allowlisting, and secret injection for local-production parity
  • cone functions new scaffolds a new function project
  • cone functions list and cone functions logs use the existing SDK Functions APIs
  • Updates go-jose to v4 (fixes decrypt command), updates vendor dependencies (baton-sdk, grpc, protobuf, etc.)

Note: golangci-lint v2 migration

Second commit migrates .golangci.yml to v2 format (golangci-lint migrate). The old config was missing the required version field, which breaks golangci-lint v2.x. This is a pre-existing issue on main -- the migration removes deprecated varcheck/tenv linters and restructures the config. There are ~23 pre-existing lint issues in the repo unrelated to this PR.

Test plan

  • cone functions new test-fn creates a valid project scaffold
  • cone functions dev starts proxy and deno process
  • cone functions list returns functions from API
  • cone functions logs <id> returns invocation history
  • cone functions --help does NOT show deploy
  • cone functions deploy --dry-run still works when called directly

Adds new/dev/deploy/list/logs subcommands under `cone functions`.
The dev server runs TypeScript functions through a MITM proxy that
handles OAuth2+DPoP auth injection, egress allowlisting, and secret
injection for production parity.

Deploy is hidden from usage until the SDK exposes CreateCommit.

Also updates go-jose to v4 (fixes decrypt command), updates vendor
dependencies (baton-sdk, grpc, protobuf, etc.).
Ran `golangci-lint migrate` to add `version: "2"` and restructure
the config for golangci-lint v2. Removes deprecated `varcheck` and
`tenv` linters, moves `goimports` to formatters section.
@coderabbitai
Copy link

coderabbitai bot commented Feb 8, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rch/devex/fns

Comment @coderabbitai help to get the list of available commands and usage tips.

New code:
- bodyclose: nolint directives for goproxy handler pattern
- errcheck: handle Stop/Close/Serve return values
- errorlint: use errors.As instead of type assertion
- forbidigo: replace fmt.Println with pterm.Println
- godot: end comments with periods
- gosec: use 0600 file permissions, add ReadHeaderTimeout
- noctx: use ListenConfig for context-aware listener
- goimports: fix trailing whitespace

Pre-existing:
- staticcheck: lowercase error strings in get_drop_task.go
- staticcheck: remove redundant embedded field selectors in entitlement.go
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.

1 participant