Repository navigation
chore: gitignore Gemini/GHA creds plus accumulated x402/cashflow/intent work - #18
Open
Igor Holt (igor-holt) wants to merge 73 commits into
Open
Igor Holt (igor-holt) wants to merge 73 commits into
Igor Holt (igor-holt) wants to merge 73 commits into
Conversation
Prevent Gemini CLI local data and GitHub Actions credential files from being committed to the repo. Co-Authored-By: Claude Fable 5 <[email protected]>
The yennefer-observatory Vercel project is also connected to this org-profile repo, but its build command (vite build) has nothing to build here — every push fails with 'vite: command not found'. The project's real source is the yennefer-cortex repo; pushes here should not trigger deployments. Co-Authored-By: Claude Fable 5 <[email protected]>
- Add /health/gas endpoint querying ETH balances of vault + main wallet via Base RPC with 3-endpoint fallback list (llamarpc, publicnode, base.org) - Add scheduled() cron handler (every 6h) that checks gas and alerts via GAS_ALERT_WEBHOOK when either wallet falls below 0.002 ETH - Wire MAIN_WALLET and BASE_RPC_URL env vars in wrangler.toml - Add cron trigger: "0 */6 * * *" - Add scripts/auto-refuel.sh: two-strategy refuel (main→vault transfer when vault low; Uniswap V3 USDC→ETH swap when both low) - Add scripts/refuel-cron-wrapper.sh: macOS cron wrapper loading key from ~/.x402-refuel.env (600 permissions, never committed) Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- wrangler.toml: BASE_RPC_URL → CDP RPC endpoint - src/index.ts: CDP RPC first in fallback chain - scripts/auto-refuel.sh: CDP RPC as default - Local ~/.zshrc + ~/.zshenv: export ETH_RPC_URL (picked up by cast/foundry) - Diamondnode ~/.env, Yennefer/.env, aerodrome-lp/.env, qflop-backfill/.env - Diamondnode ~/.bashrc + ~/.profile: export ETH_RPC_URL - Diamondnode dn-tenant-provisioner/wrangler.toml updated Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
BASE_RPC_URL was committed in plaintext across wrangler.toml, the BASE_RPC_FALLBACKS array, and auto-refuel.sh's CDP_RPC default. The code already prefers env.BASE_RPC_URL as primary (index.ts:379), so this only removes the redundant hardcoded fallback/default — no behavior change as long as the Cloudflare secret is set: wrangler secret put BASE_RPC_URL Value is vaulted locally at vault:x402-worker:BASE_RPC_URL (Keychain).
TDD Task 1: redact_text, extract_addresses, extract_phrase_hits, iter_session_texts + synthetic fixture. Stdlib-only.
Add report writers, python -m entry, session/scan discovery, and README.
Include GC §6 suite phrases (34/34, 34/34 passing, full no-gate form) in SUCCESS_SIGNALS so terminal test wins classify as reached.
Operator runbook for goals session/scan (Mac Claude + diamondnode notes), security rules, and human-curated incomplete-goals inventory with CLI path.
Deny-all workspace surface plus explicit un-ignore for gc-workers/gc-crew-mcp-bridge (mirrors x402-paid-service).
Add TRUSTED_HOSTS / is_trusted_url / filter_tools / assert_trusted_mcps and declarative AgentSpec with researcher factory + to_crewai_kwargs. Placeholder MCP URL uses trusted optimization-inversion host (may 404).
Cover trust accept/reject, filter_tools allow/block, assert_trusted_mcps raises, and AgentSpec / to_crewai_kwargs shape without network.
When allowed is None, return empty list. Custom blocked always unions with DEFAULT_BLOCKED_TOOLS so callers cannot drop defaults. Document home-repo deny-all gitignore restore in README; drop dead filter call.
Domain B / E2: Domain enum, CREW_ROSTER factories (Researcher/Payment/Ops/Evolve), domains_conflict, validate_roster, parallel_dispatch_plan. AgentSpec gains domain.
Roster length, validate_roster, domains_conflict matrix, parallel plan unique domains.
Add RunMetrics/Ralph payload, stdlib x402 helpers matching retrainer contract ($0.01 USDC6, Base payTo), and submit_metrics with injectable transport (402 payment_required without raise; no live pay).
Mock-transport-only coverage for RunMetrics payload, parse_402_body, build_admin_request, classify_response, and submit_metrics 200/402/error.
Operator runbook for unit tests, mock evolve_hook dry-run, live /.well-known/x402 discovery (no pay), incomplete goals classify, and sudo install note for ~/.grok/workflows/gc-crew-mcp-evolve.rhai.
Add observability.py with configure/span/info/error no-op when logfire missing; redact secret-like span attrs; wire evolve_hook.submit_metrics; optional logfire extra in pyproject.
Cover no-op without logfire, secret-attr redaction, configure idempotency, and evolve_hook span wiring without secrets.
stdlib argparse entry (python -m gc_crew_mcp) for Domains A/B/C: trust-check, roster, evolve-dry (mock 402), x402-discover (injectable opener), version. configure_observability at start except version.
Cover trust-check/roster/evolve-dry/x402-discover/version with inject openers and transports only (no live network or pay).
Document operator CLI commands, exit codes, optional Logfire env names, and module map updates for cli + observability.
submit_metrics rejects untrusted base_url via is_trusted_url on the URL and scheme://netloc/ origin. evolve-dry --live requires a trusted base and payment proof or admin key (flag or env); default stays mock.
Cover untrusted base ValueError, --live without proof/key exit 2, untrusted live base, and live auth header injection via env/flag.
Vendor line flips to live_rpc. Secrets stay in wrangler only.
Route all tier payTo to 0x60C4. Recirculate 2 USDC from the agent wallet onto HOT (tx 0x731c72f4...).
Serve the last KV snapshot on /cashflow so TTFB is not the RPC fan-out, refresh in waitUntil, and report wQFLOP as unpriced when DexPaprika has zero pools.
Record live cashflow URLs, HOT payTo, Sim sunset, and the Alchemy CLI-vs-Worker split so the next session does not revive 0x7cb8 or block HTML on RPC again.
Live $0.01 pays were authorized then 402'd: clients send {x402Version,payload}
without accepted. Fill it from the requirement before CDP verify.
The existing one-cent cash trigger now returns the OpenClaw/Hermes arbitration artifact instead of a generic description.
Fat 402 accepts (outputSchema, description) were forwarded into verify and likely produced invalid_payload on the USDC contract call.
awal 0x2aF0… is a proxy, not an EOA. transferWithAuthorization ecrecovers and reverts. Surface that on the existing 402 so the next pay uses an EOA.
Recant the EOA-only 402 hint. Slim v2 accepts, match the client's accepted network, preserve extra, and unwrap viem's 224-byte SignatureWrapper offset so CDP/CSW see ownerIndex 0.
…ulti-chain, agent JSON)
…sports) and hot-fund/negotiate/rpc-allow libs - New gateway/ module: client, credentials, policy, siwe, store, transports, types, with unit tests for policy and siwe - New alchemy/ lib and hot-fund.ts (+ test) for HOT wallet funding logic - New negotiate.ts and rpc-allow.ts (+ test) helpers - Extend cashflow.ts/cashflow.test.ts, index.ts/index.test.ts, server.ts - Bump wrangler.toml and package.json/package-lock.json for the above Co-Authored-By: Claude Sonnet 5 <[email protected]>
…SEO surfaces - .gitignore: allowlist CLAUDE.md and the new negotiate-x402/ top-level dir - AGENTS.md: sync workspace map - llms.txt, profile/README.md, docs/github-seo-content-map.md: refresh GitHub/LLM discovery surfaces - docs/superpowers/plans/INCOMPLETE_GOALS_INVENTORY_2026-07-21.md: update Co-Authored-By: Claude Sonnet 5 <[email protected]>
…n, flywheel, diamondnode throughput wQFLOP liquidity generation plan+goal, settlement outflow and agents redaction plan+SPEC, diamondnode inference throughput goal, traffik seed WAF plan (2026-08-15). Excludes GOAL_RESEARCH_GOV_KOVACH_GC_JV.md pending a privacy decision (see PR discussion). Co-Authored-By: Claude Sonnet 5 <[email protected]>
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Co-Authored-By: Claude Sonnet 5 <[email protected]>
…ycle, csid) Excludes .DS_Store, .wrangler/ local dev state, and wrangler.toml.bak.intent-domain (build/local artifacts). Co-Authored-By: Claude Sonnet 5 <[email protected]>
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Adds `**/.dev.vars` to the ignore list — Wrangler writes local Worker secrets there, and the deny-all-then-allow layout did not previously cover it. Allowlists /GEMINI.md so the harness-agnostic session operating rules are tracked for the Gemini CLI the same way AGENTS.md and CLAUDE.md already are. Co-Authored-By: Claude Opus 5 <[email protected]>
AGENTS.md, CLAUDE.md and both copilot-instructions.md copies now carry the same session operating rules: truthfulness over optimism, disk preflight, async/non-blocking I/O, git conventions, and Foundry/Base contract verification. The rules are harness-agnostic by design — Claude, Grok, Codex, Cursor, Gemini, Copilot, OpenCode and OpenClaw all read one of these files, and they had drifted apart. Canonical copy stays ~/.agents/session-operating-rules.md. Co-Authored-By: Claude Opus 5 <[email protected]>
…and verification ledger Four additions to the x402-paid-service Worker, landing together because index.ts imports all of them: - sponsor-userop: $0.10 ERC-4337 v0.6 UserOp sponsorship quote on Base. The Worker only quotes — it never signs or broadcasts — and the EntryPoint deposit cap defaults to 0.05 ETH. Adds contracts/wQFLOPPaymaster.sol and TIER_SPONSOR_USD6 / TIER_SPONSOR_ETH_WEI. - chainsafe-facilitator: optional extra accept on each paid tier via the ChainSafe Canton x402 facilitator. Sticker USD maps 1:1 into Canton Coin until a CC/USD oracle exists. NETWORK_ID / MERCHANT_PARTY / AMULET_ADMIN are public config; the API key stays a wrangler secret. - chatbot-embed: injects the public Chatbase widget id into served HTML. Client-side only, not a Worker secret. - verification-ledger: HTML ledger surface for settlement verification. Also adds custody-invariants.test.ts, which makes executable the claim that signer.ts, credentials.ts and index.ts each only assert in prose: the gateway signing key cannot reach the Worker bundle. A failure there is a security failure, not a test failure. Tier count goes six to seven; bazaar-listing.json now carries 8 payTo fields, all matching VAULT_ADDRESS 0x60C4…77D9. Corrected the wrangler.toml comment that still said 7. Typecheck clean, 184 tests pass across 17 files. Co-Authored-By: Claude Opus 5 <[email protected]>
Adds netlify-cli ^23.15.1 to root dependencies. This is what expands package-lock.json by ~14.4k lines; no application code depends on it yet. Co-Authored-By: Claude Opus 5 <[email protected]>
New vertical selected from full 13,490-listing Bazaar saturation scan + revenue research: agent trust / endpoint attestation (least-built layer per Aug 2026 ecosystem reports, $1-$5 B2B trust price ceiling, fits GC verification/attestation assets). - POST /api/attest $0.10 quick: liveness, https, latency, parsed x402 402 rail -> A-D graded attestation (src/lib/attestation.ts, 11 vitest tests) - POST /api/attest-audit $2.50 full audit: repeat probes, latency-drift, response-shape, full rail decomposition - Wired into handleTier, Env, MCP tool listing, bazaar-listing.json v2.3 (11 SKUs) - Includes previously-deployed uncommitted work: /api/markets + /api/postman tiers, Intercom chatbot swap, cashflow + verification-ledger updates, observability config - Deployed version eebdf09e; /health tiers:11; both attest endpoints verified 402 on Base/Polygon/Canton
Full Bazaar saturation scan (13,490 listings / 1,004 domains), 30d revenue evidence, vertical scoring; decision rationale for agent trust / service attestation.
Re-measured trust cluster (1,484 listings/453 domains), incumbent scan (x402.fuchss nearest), demand evidence (50% of probed endpoints unreachable = pre-pay check demand), 3 ranked yield recommendations: signed attestations + history SKU, 30d watch with webhook, 0-100 score + bulk tier.
src=contracts, out=foundry-out (contracts/ is root-owned from Podman), solc 0.8.32, shanghai. Compiles WQFLOPPaymaster clean; deploy blocked on funded agent-signable key.
There was a problem hiding this comment.
Code review is billed via overage credits. To resume reviews, an organization admin can raise the monthly limit at claude.ai/admin-settings/claude-code.
Once credits are available, comment @claude review on this pull request, or push a new commit, to trigger a review.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Summary
Explicit operator override to open this PR despite mixed history.
chore/gitignore-gemini-gha-credsis 73 commits ahead ofmain. It is not a single-purpose branch. Workspace rule was to cherry-pick rather than merge the whole branch; this PR exists because the operator chose finish-option 2 and then overrode that stop.Included themes (not exhaustive):
GEMINI.md; ignore.dev.varsAGENTS.md/CLAUDE.md/ harness filesReview caution
wrangler.tomlis still forbidden (would overwrite liveMAIN_WALLET/ add TIER_* vars)..env*, or private keys if any slipped in — scan the diff.git log --format=%G?=N).Test plan
Already run on this tree:
gc-workers/x402-paid-servicenpm test— 193 passedgc-workers/gc-crew-mcp-bridgeunittest — 117 passedscripts/claude-mineunittest — 41 passedgc-workers/intent-surfacenpm run check—tsc --noEmitokUncommitted local dirty files were not included in the push.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.