clawmetry 0.12.332__tar.gz → 0.12.334__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {clawmetry-0.12.332 → clawmetry-0.12.334}/CHANGELOG.md +7 -0
- {clawmetry-0.12.332/clawmetry.egg-info → clawmetry-0.12.334}/PKG-INFO +1 -1
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/js/app.js +129 -4
- {clawmetry-0.12.332 → clawmetry-0.12.334/clawmetry.egg-info}/PKG-INFO +1 -1
- {clawmetry-0.12.332 → clawmetry-0.12.334}/dashboard.py +1 -1
- {clawmetry-0.12.332 → clawmetry-0.12.334}/ARCHITECTURE.md +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/CLAUDE.md +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/LICENSE +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/MANIFEST.in +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/README.md +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/__main__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/aider.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/base.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/claude_code.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/codex.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/cursor.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/goose.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/hermes.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/nanoclaw.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/nemo.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/openclaw.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/opencode.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/picoclaw.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/qwen_code.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/adapters/registry.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/alert_evaluator.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/approvals.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/blueprints/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/cli.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/config.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/connector_health.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/dives_prompt.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/dives_sql_safety.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/error_patterns.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/eval_regression_replay.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/eval_runner.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/eval_suite_runner.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/extensions.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/gateway_tap.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/insights.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/interceptor.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/latency_tracker.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/local_server.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/otel_exporter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/outcome_classifier.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/providers/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/providers/base.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/providers/local.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/providers/turso.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/providers_pricing.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/proxy.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/py.typed +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/relay.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/resources/add-nemoclaw-clawmetry-preset.sh +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/risk.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/css/dashboard.css +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/img/logo.svg +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/js/alerts.js +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/js/auth-bootstrap.js +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/js/dives.js +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/js/gw-setup.js +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/js/i18n.js +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/js/nav-dropdown.js +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/_glossary.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/_meta.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/ar.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/bn.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/de.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/el.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/en.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/es-419.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/es.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/fa.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/fil.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/fr.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/gu.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/he.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/hi.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/id.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/it.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/ja.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/kn.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/ko.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/ml.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/mr.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/nl.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/pa.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/pl.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/pt-BR.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/pt-PT.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/ru.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/sv.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/ta.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/te.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/th.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/tr.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/uk.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/ur.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/vi.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/zh-CN.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/locales/zh-TW.json +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/v2/dist/assets/index-BP9nlZ3e.js +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/v2/dist/assets/index-NbINX9rU.css +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/v2/dist/index.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/sync.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/telemetry.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/README.md +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/partials/banners.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/partials/budget-modal.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/partials/cloud-modal.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/partials/overlays.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/partials/paywall_modal.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/alerts.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/approvals.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/brain.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/clusters.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/context-economics.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/context.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/crons.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/dives.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/flow.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/history.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/logs.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/memory.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/models.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/nemoclaw.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/notifications.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/overview.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/policy.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/security.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/selfevolve.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/skills.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/subagents.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/tool-catalog.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/tracing.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/transcripts.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/turn-anatomy.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/usage.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/templates/tabs/version-impact.html +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/tests/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/tests/e2e/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/tests/e2e/test_cloud_sync_resilience.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/tests/integration/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/tests/integration/test_fast_paths_cross_process.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/token_confidence.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/track.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/v2/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/v2/routes.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry.egg-info/SOURCES.txt +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry.egg-info/dependency_links.txt +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry.egg-info/entry_points.txt +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry.egg-info/requires.txt +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry.egg-info/top_level.txt +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/helpers/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/helpers/gateway.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/helpers/hardware.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/helpers/logs.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/helpers/openapi.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/helpers/pricing.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/helpers/streams.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/helpers/system.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/_dedupe.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/advisor.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/agents.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/alerts.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/autonomy.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/bootstrap.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/brain.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/channels.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/components.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/context_economics.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/crons.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/dives.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/evals.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/fleet_history.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/health.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/heartbeat.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/infra.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/insights.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/local_query.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/meta.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/nemoclaw.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/overview.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/plugins.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/policy.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/reasoning.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/review.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/scheduler.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/selfconfig.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/selfevolve.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/sessions.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/skills.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/tool_catalog.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/tracing.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/turn_anatomy.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/update_check.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/usage.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/routes/workspaces.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/setup.cfg +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/setup.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/__init__.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/_moat_perf_fixture.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/conftest.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/eval_ci_mock_agent.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_adapter_claude_code.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_adapter_hermes.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_adapters.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_adaptive_heartbeat.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_advisor_auth_resolution.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_aesgcm_swallow_fix.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_aider_adapter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_alert_evaluator_unit.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_alert_rules_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_alerts_evaluator_duckdb.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_anon_auth_fail_ping.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_api.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_appjs_units.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_approvals_duckdb_watcher.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_approvals_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_auth_detected_token.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_auto_update.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_automation_analysis_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_autonomy_v3_shape.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_backfill_family_cost.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_bootstrap_capture.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_brain_cache_push.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_brain_cache_push_channel_events.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_brain_history_v3_event_detail.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_brain_llm_call_timeline.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_brain_local_fastpath.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_brain_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_brain_no_log_keyword_noise.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_brain_sse_reconnect.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_budget_cap.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_cache_trends.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_channel_bluebubbles_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_channel_config_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_channel_event_chokepoint.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_channel_signal_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_channel_telegram_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_channel_tui_duckdb_fastpath.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_channel_whatsapp_duckdb_fastpath.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_channels_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_circular_import.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_class_bug_parent_sid_drain.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_claude_code_adapter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_claude_sessions_privacy_boundary.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_claudecode.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_cli.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_cli_banner.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_codex_adapter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_component_gateway_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_component_tool_model_completed.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_component_tool_timeout.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_connector_health.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_context_anatomy_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_context_window_model_aware.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_cost_optimizer_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_cron_health.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_cron_runs_duckdb_ingest.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_cron_runs_events_only.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_crons_cache_push.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_crons_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_crons_runs_endpoint.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_cursor_adapter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_daemon_error_event_pipeline.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_daemon_health_endpoint.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_dashboard_perf_hotfix.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_decoding_config_extract.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_delegation_tree_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_dives_prompt.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_dives_sql_safety.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_duckdb_coverage_batch_2026_05_13.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_duckdb_coverage_phase2_2026_05_13.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_duckdb_coverage_phase3_2026_05_13.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_duckdb_coverage_phase4_channels_2026_05_13.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_duckdb_coverage_phase5_channels_2026_05_13.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_duckdb_fastpath_v3_invariants.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_e2e_browserstack.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_e2e_cross_repo_handoff.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_e2e_duckdb_relay.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_e2e_nightly_workflow.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_e2e_oss_all_tabs.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_e2e_oss_golden_path.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_e2e_real_openclaw_pipeline.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_e2e_telegram_brain_ingest.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_error_patterns.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_eval_regression_replay.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_eval_runner.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_eval_suite_runner.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_evaluate_alerts_integration.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_event_id_unification_and_dedup.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_event_metrics_extraction.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_events_only_computation.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_fallbacks_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_family_runtime_ingest.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_first_heartbeat_onboarding.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_flow_events_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_flow_runs_endpoint.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_flow_sse_reconnect.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_forward_progress.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_gateway_health.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_gateway_health_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_gateway_metric_history.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_gateway_tap.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_gateway_tap_opt_in_banner.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_gateway_token_fallback.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_gateway_ws_handshake_client_id.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_goose_adapter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_hallucination_risk.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_health_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_heartbeat_agent_install_piggyback.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_heartbeat_dispatch.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_heartbeat_envelope.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_heartbeat_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_heartbeat_relay_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_i18n_catalog.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_insights.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_install_script_linux_restart.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_install_script_no_duplicate_daemon.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_interceptor.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_issue_1127_ux_dead_ends.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_latency_tracker.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_local_max_bytes_auto_vacuum.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_local_query_api.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_local_server_proxy.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_local_store_concurrent_flush_1590.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_local_store_default_on.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_local_store_missing_writers.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_local_store_multi_agent.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_local_store_rename.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_local_store_sync_integration.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_log_sse_reconnect.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_loop_signals_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_memory_cache_push.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_memory_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_memory_rag.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_bug_class_v3_event_shape_gate.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_cloud_robustness.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_cloud_roundtrip_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_cloud_sync_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_component_tool_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_cross_repo_version_skew.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_daemon_crash_recovery.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_e2e_regression_1129.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_event_shape_manifest_guard.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_live_openclaw_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_perf_benchmark.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_real_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_send_message_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_moat_tier1_daemon_proxy_sweep.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_model_transitions_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_multi_workspace_discovery.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_nanoclaw_adapter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_nemo_adapter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_nemo_adapter_pro_gate.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_nemoclaw_governance.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_no_agent_detected_state.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_no_direct_get_store_in_routes.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_oauth_detection.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_openclaw_claude_session_ingest.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_openclaw_sessions_followup.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_opencode_adapter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_oss_routes_source_canary.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_outcome_classifier.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_overview_autonomy_score.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_overview_heartbeat.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_overview_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_pending_query_dispatch.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_per_agent_budget.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_phase_2_to_5_live_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_picoclaw_adapter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_plugins_invocations_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_proxy.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_proxy_budget_abort.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_query_sessions_message_count.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_qwen_code_adapter.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_rate_limits_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_read_cloud_token_fallback.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_real_openclaw_binary_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_reasoning_v3_shape.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_relay.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_reliability.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_review_queue.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_run_daemon_uniqueness.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_runtime_detection_snapshot.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_schema_migration_failure_integrity.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_selfconfig_session_attribution.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_session_export.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_session_export_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_session_tools_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sessions_by_type_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sessions_clusters_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sessions_local_fastpath.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sessions_retention_cap.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sigterm_ring_flush.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_skills_fidelity_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_skills_fidelity_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_skills_multi_dir_discovery.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_spans_e2e.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_spans_ingest.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_subagent_attribution_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_subagents_events_only.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_subagents_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_subscribe_queue_bounded.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sync_daemon_crash_recovery.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sync_main_block_at_eof.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sync_progress_sticky.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sync_reliability.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sync_skip_sidecar_jsonls.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_sync_trial_gating.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_system_snapshot_dlq.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_task_runs_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_telegram_gatewaylog_parser.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_telegram_ingest.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_telemetry.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_tier1_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_tier_pro_paywall_no_flash.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_token_attribution_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_token_confidence.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_token_spike_rules.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_token_velocity_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_tool_alternatives.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_tool_modal_fastpath_2026_05_13.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_tracing_accuracy.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_track.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_transcript_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_transcript_openclaw_shapes.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_transcripts_list_detail_count_parity.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_update_banner_live_version.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_uptime_portable.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_usage_cache_trends_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_usage_forecast_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_usage_local_store.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_usage_per_session.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_v3_schema_parser.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_version_impact.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_version_impact_local_store_v3.py +0 -0
- {clawmetry-0.12.332 → clawmetry-0.12.334}/tests/test_workspace_switcher_copy.py +0 -0
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
### Release: per-adapter Flow diagram + runtime-aware Brain empty state (2026-05-27)
|
|
4
|
+
- **Per-adapter Flow/Overview diagram (#2174):** the Flow diagram always showed OpenClaw's channel→gateway→agent→tools topology even for runtimes that have neither. Coding-CLI runtimes (Claude Code, Codex, Cursor, Aider, Goose, opencode, Qwen) and the minimal PicoClaw/NanoClaw now get a generated, runtime-correct diagram (Terminal → agent → coding tools → Workspace, animated edges); OpenClaw/Hermes keep the rich hand-built SVG. The Overview pane mirrors it. Driven by the global runtime switcher.
|
|
5
|
+
- **Runtime-aware Brain empty state (#2174):** selecting a runtime with sessions on record but no recent events showed a bare "No activity yet" that contradicted the switcher's "Goose · 3 sessions". Now it explains the session count and points to the Tracing tab.
|
|
6
|
+
|
|
7
|
+
### Fixed: Active Tasks showed week-old runs as "Recently Completed" (2026-05-27)
|
|
8
|
+
- The overview Active Tasks panel filtered "Recently Completed/Failed" by each task's run **duration** (`runtimeMs < 2h`) instead of **how long ago it finished**, so a 5-minute task that ended days ago kept showing as "recent" and an idle node looked busy. Now bounded by finish age (1h), derived the same way the card's "Finished N ago" label is (`completionTs → updatedAt → startedAt+runtime`). Idle nodes correctly show "No active tasks — The AI is idle"; running tasks still always show. (#2170)
|
|
9
|
+
|
|
3
10
|
### Release: runtime switcher scopes Tracing + clearer "N sessions" labels (2026-05-27)
|
|
4
11
|
- The global runtime switcher now also filters the **Tracing** tab (event-derived traces set `trace_id = session_id`, whose prefix is the runtime). Brain + Transcripts + Tracing now all de-merge by runtime. (#2167)
|
|
5
12
|
- Switcher option labels now read **"Claude Code · 22 sessions"** / **"OpenClaw · 1 session"** / **"All runtimes · 23 sessions"** instead of a bare `(22)`, which had read as "22 Claude Code runtimes" (there is one runtime running many sessions). (#2167)
|
|
@@ -3890,7 +3890,20 @@ function renderBrainStream(events) {
|
|
|
3890
3890
|
// (filter changes, auto-refresh) recompute from the source of truth.
|
|
3891
3891
|
filtered = _collapseBodylessOutbound(filtered);
|
|
3892
3892
|
if (!filtered || filtered.length === 0) {
|
|
3893
|
-
|
|
3893
|
+
// Runtime-aware empty state: the header switcher counts SESSIONS on record
|
|
3894
|
+
// (lifetime), but this feed only shows RECENT events. Selecting a runtime
|
|
3895
|
+
// with sessions but no recent activity used to read a bare "No activity
|
|
3896
|
+
// yet", which contradicts the switcher's "Goose · 3 sessions". Explain it.
|
|
3897
|
+
var _bf = (typeof _cmRuntimeFilter === 'function') ? _cmRuntimeFilter() : 'all';
|
|
3898
|
+
var _bmsg = 'No activity yet';
|
|
3899
|
+
if (_bf && _bf !== 'all') {
|
|
3900
|
+
var _blbl = (_CM_RT_LABEL && _CM_RT_LABEL[_bf]) || _bf;
|
|
3901
|
+
var _bn = (_cmGlobalRtCounts && _cmGlobalRtCounts[_bf]) || 0;
|
|
3902
|
+
_bmsg = 'No recent ' + escHtml(_blbl) + ' activity in this live feed.'
|
|
3903
|
+
+ (_bn ? ' ' + escHtml(_blbl) + ' has ' + _bn + ' session' + (_bn === 1 ? '' : 's')
|
|
3904
|
+
+ ' on record (older than this window) — open the Tracing tab to explore them.' : '');
|
|
3905
|
+
}
|
|
3906
|
+
el.innerHTML = '<div style="color:var(--text-muted);padding:20px;line-height:1.6;">' + _bmsg + '</div>';
|
|
3894
3907
|
return;
|
|
3895
3908
|
}
|
|
3896
3909
|
// Issue #1203: one-line banner when Telegram outbound rows are visible so
|
|
@@ -6798,6 +6811,8 @@ function _cmPopulateGlobalRuntime(counts) {
|
|
|
6798
6811
|
function _cmOnGlobalRuntimeChange(sel) {
|
|
6799
6812
|
if (!sel) return;
|
|
6800
6813
|
_cmSetRuntimeFilter(sel.value);
|
|
6814
|
+
// Swap the Flow + Overview diagram to the selected runtime's topology.
|
|
6815
|
+
try { if (typeof _applyRuntimeFlowDiagram === 'function') _applyRuntimeFlowDiagram(sel.value); } catch (e) {}
|
|
6801
6816
|
// Reload the current tab so any runtime-aware view re-filters in place.
|
|
6802
6817
|
if (typeof switchTab === 'function' && _cmCurrentTab) switchTab(_cmCurrentTab);
|
|
6803
6818
|
}
|
|
@@ -13641,6 +13656,97 @@ function initFlow() {
|
|
|
13641
13656
|
// the browser tab is hidden — completes Phase 2 coverage.
|
|
13642
13657
|
if (window._flowStatsTimer) { try { clearInterval(window._flowStatsTimer); } catch(e){} }
|
|
13643
13658
|
window._flowStatsTimer = visibilitySetInterval(updateFlowStats, updateInterval);
|
|
13659
|
+
// Per-adapter Flow diagram: reflect the runtime currently selected in the
|
|
13660
|
+
// global switcher (OpenClaw/Hermes keep the rich channel→gateway SVG;
|
|
13661
|
+
// coding-CLI + pico/nano get their own generated topology).
|
|
13662
|
+
try { _applyRuntimeFlowDiagram((typeof _cmRuntimeFilter === 'function') ? _cmRuntimeFilter() : 'all'); } catch (e) {}
|
|
13663
|
+
}
|
|
13664
|
+
|
|
13665
|
+
// ── Per-adapter Flow diagram (goal: distinct topology per runtime) ──────────
|
|
13666
|
+
// OpenClaw / Hermes keep the hand-built channel→gateway→agent→tools SVG. The
|
|
13667
|
+
// coding-CLI runtimes (Claude Code, Codex, Cursor, Aider, Goose, opencode,
|
|
13668
|
+
// Qwen) and the minimal PicoClaw/NanoClaw don't have channels or a chat
|
|
13669
|
+
// gateway, so showing them the OpenClaw topology was misleading. We swap
|
|
13670
|
+
// #flow-svg's content for a generated, runtime-correct diagram and re-mirror
|
|
13671
|
+
// the Overview pane. Driven by the global runtime switcher.
|
|
13672
|
+
var _origFlowSvgInner = null;
|
|
13673
|
+
var _RT_FLOW = {
|
|
13674
|
+
claude_code: { label:'Claude Code', src:['⌨️','Terminal'], accent:'#d97706', stroke:'#b45309', tools:[['📝','Edit/Write'],['📖','Read'],['⚡','Bash'],['🔍','Grep/Glob'],['🐝','Subagents'],['🧩','MCP']] },
|
|
13675
|
+
codex: { label:'Codex', src:['⌨️','Terminal'], accent:'#10a37f', stroke:'#0d8a6a', tools:[['📝','Apply patch'],['📖','Read'],['⚡','Shell'],['🔍','Search'],['🧩','MCP']] },
|
|
13676
|
+
cursor: { label:'Cursor', src:['🖥️','Editor'], accent:'#6366f1', stroke:'#4f46e5', tools:[['📝','Edit'],['📖','Read'],['⚡','Terminal'],['🔍','Codebase'],['🧩','MCP']] },
|
|
13677
|
+
aider: { label:'Aider', src:['⌨️','Terminal'], accent:'#22a559', stroke:'#1a8045', tools:[['📝','Edit'],['📖','Read'],['⚡','Shell'],['🔀','Git commit']] },
|
|
13678
|
+
goose: { label:'Goose', src:['⌨️','Terminal'], accent:'#0ea5e9', stroke:'#0284c7', tools:[['📝','Edit'],['⚡','Shell'],['🔍','Search'],['🧩','Extensions']] },
|
|
13679
|
+
opencode: { label:'opencode', src:['⌨️','Terminal'], accent:'#f59e0b', stroke:'#d97706', tools:[['📝','Edit'],['📖','Read'],['⚡','Bash'],['🔍','Grep']] },
|
|
13680
|
+
qwen_code: { label:'Qwen Code', src:['⌨️','Terminal'], accent:'#7c3aed', stroke:'#6d28d9', tools:[['📝','Edit'],['📖','Read'],['⚡','Shell'],['🔍','Search']] },
|
|
13681
|
+
picoclaw: { label:'PicoClaw', src:['👤','You'], accent:'#ec4899', stroke:'#db2777', tools:[['⚡','Exec'],['🧠','Memory'],['📋','Sessions']], minimal:true },
|
|
13682
|
+
nanoclaw: { label:'NanoClaw', src:['👤','You'], accent:'#14b8a6', stroke:'#0d9488', tools:[['⚡','Exec'],['🧠','Memory']], minimal:true },
|
|
13683
|
+
};
|
|
13684
|
+
|
|
13685
|
+
function _flowEdge(x1, y1, x2, y2, color, delay) {
|
|
13686
|
+
var mx = (x1 + x2) / 2;
|
|
13687
|
+
var d = 'M' + x1 + ' ' + y1 + ' C ' + mx + ' ' + y1 + ' ' + mx + ' ' + y2 + ' ' + x2 + ' ' + y2;
|
|
13688
|
+
return '<path d="' + d + '" fill="none" stroke="' + color + '" stroke-width="2" stroke-opacity="0.55" stroke-dasharray="6 6">'
|
|
13689
|
+
+ '<animate attributeName="stroke-dashoffset" from="24" to="0" dur="1.1s" begin="' + delay + 's" repeatCount="indefinite"/></path>';
|
|
13690
|
+
}
|
|
13691
|
+
|
|
13692
|
+
function _buildRuntimeFlowInner(rt, model) {
|
|
13693
|
+
var s = _RT_FLOW[rt];
|
|
13694
|
+
if (!s) return null;
|
|
13695
|
+
var tools = s.tools, n = tools.length;
|
|
13696
|
+
var th = 40, gap = 14, colX = 715, colW = 160;
|
|
13697
|
+
var totalH = n * th + (n - 1) * gap;
|
|
13698
|
+
var y0 = 275 - totalH / 2;
|
|
13699
|
+
var agentW = 210, agentH = 96, agentCx = 460, agentCy = 275;
|
|
13700
|
+
var agentX = agentCx - agentW / 2, agentY = agentCy - agentH / 2;
|
|
13701
|
+
var srcX = 45, srcY = 247, srcW = 150, srcH = 56, srcCx = srcX + srcW / 2, srcCy = srcY + srcH / 2;
|
|
13702
|
+
var h = '<defs><filter id="rtShadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="2" stdDeviation="3" flood-opacity="0.35"/></filter></defs>';
|
|
13703
|
+
// Edges first (under nodes): source→agent, agent→each tool.
|
|
13704
|
+
h += _flowEdge(srcX + srcW, srcCy, agentX, agentCy, s.accent, 0);
|
|
13705
|
+
for (var i = 0; i < n; i++) { var ty = y0 + i * (th + gap) + th / 2; h += _flowEdge(agentX + agentW, agentCy, colX, ty, s.accent, 0.12 + i * 0.1); }
|
|
13706
|
+
// Source node.
|
|
13707
|
+
h += '<g class="flow-node"><rect x="' + srcX + '" y="' + srcY + '" width="' + srcW + '" height="' + srcH + '" rx="12" fill="#1e293b" stroke="#334155" stroke-width="2" filter="url(#rtShadow)"/>'
|
|
13708
|
+
+ '<text x="' + srcCx + '" y="' + (srcCy - 3) + '" style="font-size:22px;text-anchor:middle;">' + s.src[0] + '</text>'
|
|
13709
|
+
+ '<text x="' + srcCx + '" y="' + (srcCy + 19) + '" style="font-size:12px;font-weight:700;fill:#cbd5e1;text-anchor:middle;">' + escHtml(s.src[1]) + '</text></g>';
|
|
13710
|
+
// Agent node (runtime).
|
|
13711
|
+
h += '<g class="flow-node flow-node-brain"><rect x="' + agentX + '" y="' + agentY + '" width="' + agentW + '" height="' + agentH + '" rx="14" fill="' + s.accent + '" stroke="' + s.stroke + '" stroke-width="3" filter="url(#rtShadow)"/>'
|
|
13712
|
+
+ '<text x="' + agentCx + '" y="' + (agentY + 31) + '" style="font-size:22px;text-anchor:middle;">🧠</text>'
|
|
13713
|
+
+ '<text x="' + agentCx + '" y="' + (agentY + 55) + '" style="font-size:17px;font-weight:800;fill:#fff;text-anchor:middle;">' + escHtml(s.label) + '</text>'
|
|
13714
|
+
+ '<text x="' + agentCx + '" y="' + (agentY + 73) + '" style="font-size:10px;fill:rgba(255,255,255,0.85);text-anchor:middle;">' + escHtml(model || (s.minimal ? 'OpenClaw-family' : 'coding agent')) + '</text>'
|
|
13715
|
+
+ '<circle cx="' + agentCx + '" cy="' + (agentY + agentH - 9) + '" r="4" fill="#fff"><animate attributeName="opacity" values="0.4;1;0.4" dur="1.4s" repeatCount="indefinite"/></circle></g>';
|
|
13716
|
+
// Tool column (right).
|
|
13717
|
+
for (var j = 0; j < n; j++) { var y = y0 + j * (th + gap), cy = y + th / 2;
|
|
13718
|
+
h += '<g class="flow-node flow-node-tool"><rect x="' + colX + '" y="' + y + '" width="' + colW + '" height="' + th + '" rx="10" fill="#0f172a" stroke="' + s.accent + '" stroke-width="1.6" filter="url(#rtShadow)"/>'
|
|
13719
|
+
+ '<text x="' + (colX + colW / 2) + '" y="' + (cy + 1) + '" style="font-size:12px;font-weight:700;fill:#e2e8f0;text-anchor:middle;">' + tools[j][0] + ' ' + escHtml(tools[j][1]) + '</text></g>';
|
|
13720
|
+
}
|
|
13721
|
+
// Workspace sink for coding agents.
|
|
13722
|
+
if (!s.minimal) {
|
|
13723
|
+
var wy = y0 + totalH + 20;
|
|
13724
|
+
h += '<g class="flow-node"><rect x="' + colX + '" y="' + wy + '" width="' + colW + '" height="38" rx="10" fill="#1e293b" stroke="#334155" stroke-width="1.6"/>'
|
|
13725
|
+
+ '<text x="' + (colX + colW / 2) + '" y="' + (wy + 23) + '" style="font-size:12px;font-weight:700;fill:#94a3b8;text-anchor:middle;">📂 Workspace</text></g>';
|
|
13726
|
+
}
|
|
13727
|
+
return h;
|
|
13728
|
+
}
|
|
13729
|
+
|
|
13730
|
+
function _applyRuntimeFlowDiagram(rt) {
|
|
13731
|
+
var svg = document.getElementById('flow-svg');
|
|
13732
|
+
if (!svg) return;
|
|
13733
|
+
if (_origFlowSvgInner === null) _origFlowSvgInner = svg.innerHTML;
|
|
13734
|
+
var model = '';
|
|
13735
|
+
try { var ml = document.getElementById('brain-model-text'); model = ml ? (ml.textContent || '') : ''; } catch (e) {}
|
|
13736
|
+
if (model === 'unknown') model = '';
|
|
13737
|
+
var inner = _buildRuntimeFlowInner(rt, model);
|
|
13738
|
+
if (inner) {
|
|
13739
|
+
svg.innerHTML = inner;
|
|
13740
|
+
} else if (svg.innerHTML.indexOf('rtShadow') !== -1) {
|
|
13741
|
+
// Currently showing a generated diagram → restore the original OpenClaw SVG.
|
|
13742
|
+
svg.innerHTML = _origFlowSvgInner;
|
|
13743
|
+
try { hideUnconfiguredChannels(document); } catch (e) {}
|
|
13744
|
+
}
|
|
13745
|
+
// Re-mirror the Overview pane from whatever #flow-svg now holds.
|
|
13746
|
+
try {
|
|
13747
|
+
var c = document.getElementById('overview-flow-container');
|
|
13748
|
+
if (c) { c.innerHTML = ''; if (typeof initOverviewFlow === 'function') initOverviewFlow(); }
|
|
13749
|
+
} catch (e) {}
|
|
13644
13750
|
}
|
|
13645
13751
|
|
|
13646
13752
|
// Map brain-history event types → Flow's active-tool buckets (exec/browser/
|
|
@@ -14589,14 +14695,33 @@ async function loadOverviewTasks() {
|
|
|
14589
14695
|
else if (isRealFailure) failed.push(a);
|
|
14590
14696
|
else done.push(a);
|
|
14591
14697
|
});
|
|
14592
|
-
//
|
|
14593
|
-
|
|
14594
|
-
|
|
14698
|
+
// "Recently Completed/Failed" must mean RECENT — bound by how long ago the
|
|
14699
|
+
// task FINISHED, not its run duration. The old `runtimeMs < 2h` check used
|
|
14700
|
+
// duration, so a 5-minute task that finished 6 days ago still passed and
|
|
14701
|
+
// showed as "recent" (an idle node looked busy). Derive the end time the
|
|
14702
|
+
// same way _ovRenderCard's "Finished N ago" does (completionTs → updatedAt
|
|
14703
|
+
// → startedAt+runtime); unknown end time → not recent.
|
|
14704
|
+
var RECENT_DONE_MS = 60 * 60 * 1000; // 1h
|
|
14705
|
+
var _nowMs = Date.now();
|
|
14706
|
+
function _ovEndedMs(a) {
|
|
14707
|
+
var e = 0;
|
|
14708
|
+
if (a.completionTs) { var ct = Date.parse(a.completionTs); if (!isNaN(ct)) e = ct; }
|
|
14709
|
+
if (!e && a.updatedAt) e = a.updatedAt;
|
|
14710
|
+
if (!e && a.startedAt && a.runtimeMs) e = a.startedAt + a.runtimeMs;
|
|
14711
|
+
return e;
|
|
14712
|
+
}
|
|
14713
|
+
function _ovRecentlyFinished(a) {
|
|
14714
|
+
var e = _ovEndedMs(a);
|
|
14715
|
+
return e > 0 && (_nowMs - e) < RECENT_DONE_MS;
|
|
14716
|
+
}
|
|
14717
|
+
done = done.filter(_ovRecentlyFinished);
|
|
14718
|
+
failed = failed.filter(_ovRecentlyFinished);
|
|
14595
14719
|
|
|
14596
14720
|
if (countBadge) countBadge.textContent = running.length > 0 ? '(' + running.length + ' running)' : '(' + (done.length + failed.length) + ' recent)';
|
|
14597
14721
|
|
|
14598
14722
|
var totalShown = running.length + done.length + failed.length;
|
|
14599
14723
|
if (totalShown === 0) {
|
|
14724
|
+
if (countBadge) countBadge.textContent = '';
|
|
14600
14725
|
el.innerHTML = '<div style="text-align:center;padding:40px 20px;color:var(--text-muted);">'
|
|
14601
14726
|
+ '<div style="font-size:32px;margin-bottom:12px;" class="tasks-empty-icon">😴</div>'
|
|
14602
14727
|
+ '<div style="font-size:14px;font-weight:600;color:var(--text-tertiary);margin-bottom:4px;">No active tasks</div>'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/resources/add-nemoclaw-clawmetry-preset.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{clawmetry-0.12.332 → clawmetry-0.12.334}/clawmetry/static/v2/dist/assets/index-NbINX9rU.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|