Skip to content

chore: gitignore Gemini/GHA creds plus accumulated x402/cashflow/intent work - #18

Open
Igor Holt (igor-holt) wants to merge 73 commits into
mainfrom
chore/gitignore-gemini-gha-creds
Open

Igor Holt (igor-holt) wants to merge 73 commits into
mainfrom
chore/gitignore-gemini-gha-creds

Conversation

@igor-holt

@igor-holt Igor Holt (igor-holt) commented Sep 11, 2026 •

Copy link
Copy Markdown
Member

Summary

Explicit operator override to open this PR despite mixed history.

chore/gitignore-gemini-gha-creds is 73 commits ahead of main. 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):

  • gitignore Gemini / GHA credential paths; allowlist GEMINI.md; ignore .dev.vars
  • x402-paid-service: HOT payTo, cashflow dashboard, Canton/ChainSafe, chatbot embed, verification ledger, agent-trust SKUs, Alchemy gateway, sponsorship tier
  • intent-surface Worker
  • session operating rules across AGENTS.md / CLAUDE.md / harness files
  • gc-crew-mcp-bridge evolve/x402 client work

Review caution

  • Do not treat this as a narrow gitignore PR.
  • Live Worker deploy from local wrangler.toml is still forbidden (would overwrite live MAIN_WALLET / add TIER_* vars).
  • Do not merge secrets, .env*, or private keys if any slipped in — scan the diff.
  • Commits on this branch are unsigned (git log --format=%G? = N).

Test plan

Already run on this tree:

  • gc-workers/x402-paid-service npm test — 193 passed
  • gc-workers/gc-crew-mcp-bridge unittest — 117 passed
  • scripts/claude-mine unittest — 41 passed
  • gc-workers/intent-surface npm run check — tsc --noEmit ok

Uncommitted local dirty files were not included in the push.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Igor Holt (igor-holt) and others added 30 commits June 12, 2026 15:37
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.
Igor Holt (igor-holt) and others added 27 commits August 15, 2026 07:41
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.
…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]>
…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]>
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.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Code review skipped — your organization's overage spend limit has been reached.

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.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
E Security Rating on New Code (required ≥ A)
D Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

This branch has not been deployed

No deployments
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