Compare commits
3 commits
main
...
feat/issue
| Author | SHA1 | Date | |
|---|---|---|---|
| a82b15ded5 | |||
| 560a17bbe6 | |||
|
|
5759e18b9c |
6 changed files with 324 additions and 0 deletions
86
.forgejo/ISSUE_TEMPLATE/bug.yml
Normal file
86
.forgejo/ISSUE_TEMPLATE/bug.yml
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
name: Bug Report
|
||||||
|
description: Report a defect or unexpected behavior
|
||||||
|
title: "[Bug]: "
|
||||||
|
labels: ["bug", "triage"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for reporting a bug. Please fill in the sections below.
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Version
|
||||||
|
description: Tag, branch, or commit SHA where the bug reproduces
|
||||||
|
placeholder: "v1.2.3 or main@abc1234"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: severity
|
||||||
|
attributes:
|
||||||
|
label: Severity
|
||||||
|
description: How bad is the impact?
|
||||||
|
options:
|
||||||
|
- Critical (data loss, security, total outage)
|
||||||
|
- High (major feature broken, no workaround)
|
||||||
|
- Medium (feature broken, workaround exists)
|
||||||
|
- Low (minor, cosmetic)
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: summary
|
||||||
|
attributes:
|
||||||
|
label: What happened?
|
||||||
|
description: Clear, factual description of the bug
|
||||||
|
placeholder: |
|
||||||
|
Expected: ...
|
||||||
|
Actual: ...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: repro
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce
|
||||||
|
description: Numbered steps. Include URLs, commands, inputs.
|
||||||
|
placeholder: |
|
||||||
|
1. Go to /scanner/scan
|
||||||
|
2. Enter address 0x...
|
||||||
|
3. Click "Analyze"
|
||||||
|
4. See "undefined" instead of risk score
|
||||||
|
render: shell
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Logs / errors / stack trace
|
||||||
|
description: Paste relevant output. Use a code block.
|
||||||
|
render: shell
|
||||||
|
placeholder: |
|
||||||
|
```
|
||||||
|
2026-07-02T10:00:00 ERROR ...
|
||||||
|
```
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: env
|
||||||
|
attributes:
|
||||||
|
label: Environment
|
||||||
|
description: OS, browser, runtime version, etc.
|
||||||
|
placeholder: "macOS 14.5, Chrome 125, Node 22.3"
|
||||||
|
|
||||||
|
- type: checkboxes
|
||||||
|
id: checks
|
||||||
|
attributes:
|
||||||
|
label: Pre-submit checks
|
||||||
|
options:
|
||||||
|
- label: I searched existing issues and didn't find a duplicate
|
||||||
|
required: true
|
||||||
|
- label: I can reproduce this on `main` HEAD
|
||||||
|
required: false
|
||||||
|
- label: I'm willing to submit a PR
|
||||||
|
required: false
|
||||||
11
.forgejo/ISSUE_TEMPLATE/config.yml
Normal file
11
.forgejo/ISSUE_TEMPLATE/config.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: Q&A
|
||||||
|
url: https://git.rugmunch.io/RugMunchMedia/walletpress/discussions/new?category=q-a
|
||||||
|
about: Use this for questions and troubleshooting
|
||||||
|
- name: Feature Requests
|
||||||
|
url: https://git.rugmunch.io/RugMunchMedia/walletpress/discussions/new?category=feature-requests
|
||||||
|
about: Suggest a new feature or improvement (preview / brainstorm)
|
||||||
|
- name: Announcements
|
||||||
|
url: https://git.rugmunch.io/RugMunchMedia/walletpress/discussions/new?category=announcements
|
||||||
|
about: Stay up to date on releases and changes
|
||||||
83
.forgejo/ISSUE_TEMPLATE/feature.yml
Normal file
83
.forgejo/ISSUE_TEMPLATE/feature.yml
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
name: Feature Request
|
||||||
|
description: Propose a new feature or improvement
|
||||||
|
title: "[Feature]: "
|
||||||
|
labels: ["enhancement", "triage"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Use this for new features or improvements. For bugs, use the Bug Report template.
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: area
|
||||||
|
attributes:
|
||||||
|
label: Area
|
||||||
|
description: Which product / surface does this affect?
|
||||||
|
options:
|
||||||
|
- RMI (scanner / dashboard)
|
||||||
|
- Pry (crawler)
|
||||||
|
- WalletPress
|
||||||
|
- RugCharts
|
||||||
|
- RugMaps
|
||||||
|
- x402 Gateway
|
||||||
|
- Infra / CI / tooling
|
||||||
|
- Other
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: problem
|
||||||
|
attributes:
|
||||||
|
label: Problem / motivation
|
||||||
|
description: What user pain or gap does this address? Why is it worth building?
|
||||||
|
placeholder: |
|
||||||
|
As a <user type>, I want to <action>, so that <outcome>.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: proposal
|
||||||
|
attributes:
|
||||||
|
label: Proposed solution
|
||||||
|
description: How would you build it? API, UI, data model.
|
||||||
|
placeholder: |
|
||||||
|
- Add new endpoint POST /api/v1/...
|
||||||
|
- Add new column `risk_score` to `tokens` table
|
||||||
|
- Add new React component `RiskBadge`
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: alternatives
|
||||||
|
attributes:
|
||||||
|
label: Alternatives considered
|
||||||
|
description: Other ways to solve this. Why this approach?
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: scope
|
||||||
|
attributes:
|
||||||
|
label: Acceptance criteria
|
||||||
|
description: How do we know it's done? Checklist.
|
||||||
|
placeholder: |
|
||||||
|
- [ ] Endpoint returns <expected shape>
|
||||||
|
- [ ] Tests cover happy + edge cases
|
||||||
|
- [ ] Docs updated
|
||||||
|
- [ ] No new lint errors
|
||||||
|
|
||||||
|
- type: checkboxes
|
||||||
|
id: effort
|
||||||
|
attributes:
|
||||||
|
label: Effort estimate
|
||||||
|
options:
|
||||||
|
- Small (< 1 day)
|
||||||
|
- Medium (1-3 days)
|
||||||
|
- Large (1-2 weeks)
|
||||||
|
- XL (2+ weeks, breaking change)
|
||||||
|
|
||||||
|
- type: checkboxes
|
||||||
|
id: checks
|
||||||
|
attributes:
|
||||||
|
label: Pre-submit checks
|
||||||
|
options:
|
||||||
|
- label: I searched existing issues and didn't find a duplicate
|
||||||
|
required: true
|
||||||
|
- label: I'm willing to submit a PR
|
||||||
|
required: false
|
||||||
79
.gitattributes
vendored
Normal file
79
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
# .gitattributes — Rug Munch Media fleet standard
|
||||||
|
# See https://git.rugmunch.io/RugMunchMedia/standards for source of truth.
|
||||||
|
|
||||||
|
# ── Line endings ───────────────────────────────────────────────
|
||||||
|
* text=auto eol=lf
|
||||||
|
|
||||||
|
# Shell scripts must use LF even on Windows checkouts
|
||||||
|
*.sh text eol=lf
|
||||||
|
*.bash text eol=lf
|
||||||
|
|
||||||
|
# Windows-native scripts keep CRLF
|
||||||
|
*.bat text eol=crlf
|
||||||
|
*.cmd text eol=crlf
|
||||||
|
*.ps1 text eol=crlf
|
||||||
|
|
||||||
|
# ── Binary defaults ────────────────────────────────────────────
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
|
*.jpeg binary
|
||||||
|
*.gif binary
|
||||||
|
*.ico binary
|
||||||
|
*.webp binary
|
||||||
|
*.pdf binary
|
||||||
|
*.zip binary
|
||||||
|
*.gz binary
|
||||||
|
*.tgz binary
|
||||||
|
*.tar binary
|
||||||
|
*.bz2 binary
|
||||||
|
*.xz binary
|
||||||
|
*.7z binary
|
||||||
|
*.rar binary
|
||||||
|
*.mp4 binary
|
||||||
|
*.mp3 binary
|
||||||
|
*.wav binary
|
||||||
|
*.mov binary
|
||||||
|
*.avi binary
|
||||||
|
*.woff binary
|
||||||
|
*.woff2 binary
|
||||||
|
*.ttf binary
|
||||||
|
*.eot binary
|
||||||
|
*.otf binary
|
||||||
|
*.so binary
|
||||||
|
*.dll binary
|
||||||
|
*.dylib binary
|
||||||
|
*.pyc binary
|
||||||
|
*.pyo binary
|
||||||
|
*.pyd binary
|
||||||
|
*.o binary
|
||||||
|
*.a binary
|
||||||
|
*.lib binary
|
||||||
|
|
||||||
|
# ── Linguist overrides ─────────────────────────────────────────
|
||||||
|
# Mark vendor / vendored / generated so they don't pollute stats
|
||||||
|
vendor/ linguist-vendored
|
||||||
|
node_modules/ linguist-vendored
|
||||||
|
__pycache__/ linguist-vendored
|
||||||
|
*.min.js linguist-vendored
|
||||||
|
*.min.css linguist-vendored
|
||||||
|
dist/ linguist-vendored
|
||||||
|
build/ linguist-vendored
|
||||||
|
coverage/ linguist-vendored
|
||||||
|
pnpm-lock.yaml linguist-generated
|
||||||
|
package-lock.json linguist-generated
|
||||||
|
yarn.lock linguist-generated
|
||||||
|
|
||||||
|
# Markdown documentation
|
||||||
|
*.md linguist-documentation
|
||||||
|
docs/ linguist-documentation
|
||||||
|
|
||||||
|
# Makefile
|
||||||
|
Makefile linguist-language=Makefile
|
||||||
|
*.mk linguist-language=Makefile
|
||||||
|
|
||||||
|
# ── Diff & merge ───────────────────────────────────────────────
|
||||||
|
*.json diff=json
|
||||||
|
*.lock -diff
|
||||||
|
package-lock.json -diff
|
||||||
|
pnpm-lock.yaml -diff
|
||||||
|
yarn.lock -diff
|
||||||
46
PRODUCT.md
Normal file
46
PRODUCT.md
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
# WalletPress — Product Charter
|
||||||
|
|
||||||
|
**Product:** WalletPress
|
||||||
|
**Repo:** git.rugmunch.io/RugMunchMedia/walletpress
|
||||||
|
**Deploy path:** /srv/walletpress/ on Talos
|
||||||
|
**Container:** walletpress-backend
|
||||||
|
**Health:** http://127.0.0.1:8010/health
|
||||||
|
**Status:** Active development
|
||||||
|
|
||||||
|
## Problem
|
||||||
|
WordPress sites and applications need an integrated multi-chain wallet engine, key vault, and x402 micropayment layer without building it from scratch.
|
||||||
|
|
||||||
|
## User
|
||||||
|
- WordPress site operators
|
||||||
|
- SaaS builders needing wallet generation
|
||||||
|
- Operators managing chain vaults
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
- Python FastAPI backend
|
||||||
|
- WordPress plugin (PHP/JS)
|
||||||
|
- Wallet engine + chain vault
|
||||||
|
- x402 service for micropayments
|
||||||
|
- CLI tool for wallet management
|
||||||
|
- Standalone MCP server
|
||||||
|
|
||||||
|
## Anti-scope
|
||||||
|
- No token scanning (lives in rmi-backend)
|
||||||
|
- No web scraping (lives in pryscraper)
|
||||||
|
- No social feed (lives in degenfeed-web)
|
||||||
|
- No RMI frontend code
|
||||||
|
|
||||||
|
## Success criteria
|
||||||
|
- /health returns ok
|
||||||
|
- CI green
|
||||||
|
- All files <500 lines
|
||||||
|
- WP plugin installable from zip
|
||||||
|
- MCP tools typed
|
||||||
|
|
||||||
|
## Current reality
|
||||||
|
- Health returns ok
|
||||||
|
- Best pre-commit hooks in fleet (web3-safety + hallucination-check)
|
||||||
|
- 11 files >500 lines
|
||||||
|
- 112 f-string logs, 2 bare except, 1 time.sleep
|
||||||
|
|
||||||
|
## Fleet dependencies
|
||||||
|
- None standalone; can use rmi-backend for risk data
|
||||||
19
TODO.md
Normal file
19
TODO.md
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# WalletPress — TODO
|
||||||
|
|
||||||
|
## Active
|
||||||
|
- [ ] Split 11 files >500 lines
|
||||||
|
- [ ] Convert 112 f-string logs to structured logs
|
||||||
|
- [ ] Fix 2 bare except clauses
|
||||||
|
- [ ] Replace 1 time.sleep with asyncio.sleep
|
||||||
|
|
||||||
|
## Next
|
||||||
|
- [ ] Add GitHub Actions CI if missing
|
||||||
|
- [ ] Add PRODUCT.md and TODO.md to pre-commit protected docs list
|
||||||
|
- [ ] Define WP plugin release process
|
||||||
|
|
||||||
|
## Blocked
|
||||||
|
- None
|
||||||
|
|
||||||
|
## Done
|
||||||
|
- ARCHITECTURE.md and ROADMAP.md exist
|
||||||
|
- Pre-commit hooks include web3-safety and hallucination-check
|
||||||
Loading…
Add table
Add a link
Reference in a new issue