Skip to content

Telemetry - #17

Merged
pankaj4u4m merged 2 commits into
mainfrom
telemetry
May 14, 2026
Merged

pankaj4u4m merged 2 commits into
mainfrom
telemetry

Conversation

@pankaj4u4m

Copy link
Copy Markdown
Collaborator

No description provided.

@pankaj4u4m
pankaj4u4m merged commit 8b84b3d into main May 14, 2026
pankaj4u4m added a commit that referenced this pull request Jun 18, 2026
pankaj4u4m added a commit that referenced this pull request Jun 21, 2026
pankaj4u4m added a commit that referenced this pull request Jun 22, 2026
pankaj4u4m added a commit that referenced this pull request Jul 2, 2026
pankaj4u4m added a commit that referenced this pull request Jul 2, 2026
pankaj4u4m added a commit that referenced this pull request Jul 3, 2026
pankaj4u4m added a commit that referenced this pull request Jul 3, 2026
* feat: add plan-aware login hints for free and pro users

- Free plan: shows Pro pricing/features with upgrade URL (pro_url())
- Pro plan: shows a thank-you message recapping unlocked features

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* fix: resolve CI failures unrelated to login-hint change

- black-format 5 pre-existing test files that failed formatting check
- filter local/editable refs (self package, vendored babel stub wheel)
  out of the pip-audit requirements file so real vulnerabilities are not
  masked by "not found on PyPI" errors
- bump cryptography 48.0.0 -> 48.0.1 and starlette 1.2.1 -> 1.3.1 to
  clear the vulnerabilities pip-audit now surfaces (GHSA-537c-gmf6-5ccf,
  PYSEC-2026-249, PYSEC-2026-248)
- fix scripts/local.sh: the uv-on-PATH check ran even in --dry-run
  mode, where the install is a no-op, causing spurious failures

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* fix: grep --include fallback ignored path-qualified glob patterns

When rg is unavailable, native_search falls back to system grep. The
fallback passed glob patterns like src/**/*.py straight to grep's
--include, which only matches basenames -- so any glob with a directory
component silently matched nothing. Always reduce to the basename
component (Path(g).name), matching grep's actual --include semantics.

Confirmed fix for 7 previously-failing tests (test_native_search,
test_output_redaction_wiring, test_search_ab_real, test_edit_mcp_handler)
with zero new regressions from this change.

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* feat: soft-detect rtk as an optional bash command compactor

Generic external-compactor registry (tool_supervision/external_compactors.py)
that lazily detects a third-party CLI on PATH, caches the result for the MCP
server's process lifetime, and passes a narrow read-only/idempotent command
allowlist (git/gh inspection, test runners, linters) through it for compact
output. First (and only) registered compactor is rtk
(https://github.com/rtk-ai/rtk). Adding another binary later is one more
registry entry.

On by default (tool_supervision.external_compactors / auto-used automatically
when found -- set ATELIER_BASH_EXTERNAL_COMPACTORS=0 to opt out. Never a hard
dependency: falls back to the plain shell path whenever the binary is absent.
grep/cat/find remain fully Atelier-internal (index-backed rewrite happens
earlier in classify_command's dispatch and isn't in rtk's allowlist either.

Mutating commands (git commit/push/branch, docker run, ...) are deliberately
excluded from the allowlist -- the compactor's presence can never change
whether a side-effecting command runs once or twice.

README: documents the feature and links to rtk's install instructions.
EOF
)

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* docs: restyle rtk pass-through README entry as a table + install snippet

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* docs: make the license section loud — FSL-vs-Apache 2.0 at a glance table

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* license: carve out client/integration/distribution surfaces to Apache 2.0

Splits the license the way services/license-issuer/ already established the
pattern for (a directory-level LICENSE override), in the other direction:

Apache License 2.0 (new LICENSE-APACHE at root + pointer LICENSE in each dir):
  - src/atelier/sdk/            framework bindings (Anthropic/OpenAI/LangChain/Gemini)
  - src/atelier/gateway/sdk/    local/remote/MCP client connector
  - integrations/               host plugin manifests, hooks, skills, agent defs
  - scripts/                    install/uninstall/verify scripts
  - docs/, docs-site/           documentation

Stays FSL-1.1-ALv2 (unchanged): src/atelier/core, src/atelier/infra,
src/atelier/gateway/adapters|cli|hosts, benchmarks, tests -- the actual
retrieval/indexing engine and MCP server implementation, i.e. what the
Competing-Use clause exists to protect.

Also fixes a stale reference in the root LICENSE Notice: it named a `pro/`
directory that no longer exists in this repo (the actual proprietary
carve-out today is services/license-issuer/, which already has its own
LICENSE and is now correctly listed).

pyproject.toml's license classifier stays FSL-1.1-ALv2 (accurate for the
package as a whole, which still contains FSL-licensed code) with a comment
pointing to the sdk/ subtrees' own terms.

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* docs: drop the license badge from the README hero

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

---------

Co-authored-by: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>
pankaj4u4m added a commit that referenced this pull request Jul 7, 2026
* feat: add plan-aware login hints for free and pro users

- Free plan: shows Pro pricing/features with upgrade URL (pro_url())
- Pro plan: shows a thank-you message recapping unlocked features

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* fix: resolve CI failures unrelated to login-hint change

- black-format 5 pre-existing test files that failed formatting check
- filter local/editable refs (self package, vendored babel stub wheel)
  out of the pip-audit requirements file so real vulnerabilities are not
  masked by "not found on PyPI" errors
- bump cryptography 48.0.0 -> 48.0.1 and starlette 1.2.1 -> 1.3.1 to
  clear the vulnerabilities pip-audit now surfaces (GHSA-537c-gmf6-5ccf,
  PYSEC-2026-249, PYSEC-2026-248)
- fix scripts/local.sh: the uv-on-PATH check ran even in --dry-run
  mode, where the install is a no-op, causing spurious failures

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* fix: grep --include fallback ignored path-qualified glob patterns

When rg is unavailable, native_search falls back to system grep. The
fallback passed glob patterns like src/**/*.py straight to grep's
--include, which only matches basenames -- so any glob with a directory
component silently matched nothing. Always reduce to the basename
component (Path(g).name), matching grep's actual --include semantics.

Confirmed fix for 7 previously-failing tests (test_native_search,
test_output_redaction_wiring, test_search_ab_real, test_edit_mcp_handler)
with zero new regressions from this change.

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* feat: soft-detect rtk as an optional bash command compactor

Generic external-compactor registry (tool_supervision/external_compactors.py)
that lazily detects a third-party CLI on PATH, caches the result for the MCP
server's process lifetime, and passes a narrow read-only/idempotent command
allowlist (git/gh inspection, test runners, linters) through it for compact
output. First (and only) registered compactor is rtk
(https://github.com/rtk-ai/rtk). Adding another binary later is one more
registry entry.

On by default (tool_supervision.external_compactors / auto-used automatically
when found -- set ATELIER_BASH_EXTERNAL_COMPACTORS=0 to opt out. Never a hard
dependency: falls back to the plain shell path whenever the binary is absent.
grep/cat/find remain fully Atelier-internal (index-backed rewrite happens
earlier in classify_command's dispatch and isn't in rtk's allowlist either.

Mutating commands (git commit/push/branch, docker run, ...) are deliberately
excluded from the allowlist -- the compactor's presence can never change
whether a side-effecting command runs once or twice.

README: documents the feature and links to rtk's install instructions.
EOF
)

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* docs: restyle rtk pass-through README entry as a table + install snippet

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* docs: make the license section loud — FSL-vs-Apache 2.0 at a glance table

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* license: carve out client/integration/distribution surfaces to Apache 2.0

Splits the license the way services/license-issuer/ already established the
pattern for (a directory-level LICENSE override), in the other direction:

Apache License 2.0 (new LICENSE-APACHE at root + pointer LICENSE in each dir):
  - src/atelier/sdk/            framework bindings (Anthropic/OpenAI/LangChain/Gemini)
  - src/atelier/gateway/sdk/    local/remote/MCP client connector
  - integrations/               host plugin manifests, hooks, skills, agent defs
  - scripts/                    install/uninstall/verify scripts
  - docs/, docs-site/           documentation

Stays FSL-1.1-ALv2 (unchanged): src/atelier/core, src/atelier/infra,
src/atelier/gateway/adapters|cli|hosts, benchmarks, tests -- the actual
retrieval/indexing engine and MCP server implementation, i.e. what the
Competing-Use clause exists to protect.

Also fixes a stale reference in the root LICENSE Notice: it named a `pro/`
directory that no longer exists in this repo (the actual proprietary
carve-out today is services/license-issuer/, which already has its own
LICENSE and is now correctly listed).

pyproject.toml's license classifier stays FSL-1.1-ALv2 (accurate for the
package as a whole, which still contains FSL-licensed code) with a comment
pointing to the sdk/ subtrees' own terms.

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

* docs: drop the license badge from the README hero

Co-Authored-By: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.com>

---------

Co-authored-by: atelier-agent[bot] <293447754+atelier-agent[bot]@users.noreply.github.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.

1 participant