forked from Rockachopa/Timmy-time-dashboard
feat: Add Kimi agent workspace with development scaffolding
Create the Kimi (Moonshot AI) agent workspace per AGENTS.md conventions: Workspace Structure: - .kimi/AGENTS.md - Workspace guide and conventions - .kimi/README.md - Quick reference documentation - .kimi/CHECKPOINT.md - Session state tracking - .kimi/TODO.md - Task list for upcoming work - .kimi/notes/ - Working notes directory - .kimi/plans/ - Plan documents - .kimi/worktrees/ - Git worktrees (reserved) Development Scripts: - scripts/bootstrap.sh - One-time workspace setup (venv, deps, .env) - scripts/resume.sh - Quick status check + resume prompt - scripts/dev.sh - Development helpers (status, test, lint, format, clean, nuke) Features: - Validates Python 3.11+, venv, deps, .env, git config - Provides quick status on git, tests, Ollama, dashboard - Commands for testing, linting, formatting, cleaning Per AGENTS.md: - Kimi is Build Tier for large-context feature drops - Follows existing project patterns - No changes to source code - workspace only
This commit is contained in:
91
.kimi/AGENTS.md
Normal file
91
.kimi/AGENTS.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# Kimi Agent Workspace
|
||||
|
||||
**Agent:** Kimi (Moonshot AI)
|
||||
**Role:** Build Tier - Large-context feature drops, new subsystems, persona agents
|
||||
**Branch:** `kimi/agent-workspace-init`
|
||||
**Created:** 2026-03-14
|
||||
|
||||
---
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Bootstrap Kimi workspace
|
||||
bash .kimi/scripts/bootstrap.sh
|
||||
|
||||
# Resume work
|
||||
bash .kimi/scripts/resume.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Kimi Capabilities
|
||||
|
||||
Per AGENTS.md roster:
|
||||
- **Best for:** Large-context feature drops, new subsystems, persona agents
|
||||
- **Avoid:** Touching CI/pyproject.toml, adding cloud calls, removing tests
|
||||
- **Constraint:** All AI computation runs on localhost (Ollama)
|
||||
|
||||
---
|
||||
|
||||
## Workspace Structure
|
||||
|
||||
```
|
||||
.kimi/
|
||||
├── AGENTS.md # This file - workspace guide
|
||||
├── README.md # Workspace documentation
|
||||
├── CHECKPOINT.md # Current session state
|
||||
├── TODO.md # Task list for Kimi
|
||||
├── scripts/
|
||||
│ ├── bootstrap.sh # One-time setup
|
||||
│ ├── resume.sh # Quick status + resume
|
||||
│ └── dev.sh # Development helpers
|
||||
├── notes/ # Working notes
|
||||
└── worktrees/ # Git worktrees (if needed)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Development Workflow
|
||||
|
||||
1. **Before changes:**
|
||||
- Read CLAUDE.md and AGENTS.md
|
||||
- Check CHECKPOINT.md for current state
|
||||
- Run `make test` to verify green tests
|
||||
|
||||
2. **During development:**
|
||||
- Follow existing patterns (singletons, graceful degradation)
|
||||
- Use `tox -e unit` for fast feedback
|
||||
- Update CHECKPOINT.md with progress
|
||||
|
||||
3. **Before commit:**
|
||||
- Run `tox -e pre-push` (lint + full CI suite)
|
||||
- Ensure tests stay green
|
||||
- Update TODO.md
|
||||
|
||||
---
|
||||
|
||||
## Useful Commands
|
||||
|
||||
```bash
|
||||
# Testing
|
||||
tox -e unit # Fast unit tests
|
||||
tox -e integration # Integration tests
|
||||
tox -e pre-push # Full CI suite (local)
|
||||
make test # All tests
|
||||
|
||||
# Development
|
||||
make dev # Start dashboard with hot-reload
|
||||
make lint # Check code quality
|
||||
make format # Auto-format code
|
||||
|
||||
# Git
|
||||
bash .kimi/scripts/resume.sh # Show status + resume prompt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Contact
|
||||
|
||||
- **Gitea:** http://localhost:3000/rockachopa/Timmy-time-dashboard
|
||||
- **PR:** Submit PRs to `main` branch
|
||||
102
.kimi/CHECKPOINT.md
Normal file
102
.kimi/CHECKPOINT.md
Normal file
@@ -0,0 +1,102 @@
|
||||
# Kimi Checkpoint — Workspace Initialization
|
||||
**Date:** 2026-03-14
|
||||
**Branch:** `kimi/agent-workspace-init`
|
||||
**Status:** ✅ Workspace scaffolding complete, ready for PR
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
Created the Kimi (Moonshot AI) agent workspace with development scaffolding to enable smooth feature development on the Timmy Time project.
|
||||
|
||||
### Deliverables
|
||||
|
||||
1. **Workspace Structure** (`.kimi/`)
|
||||
- `AGENTS.md` — Workspace guide and conventions
|
||||
- `README.md` — Quick reference documentation
|
||||
- `CHECKPOINT.md` — This file, session state tracking
|
||||
- `TODO.md` — Task list for upcoming work
|
||||
|
||||
2. **Development Scripts** (`.kimi/scripts/`)
|
||||
- `bootstrap.sh` — One-time workspace setup
|
||||
- `resume.sh` — Quick status check + resume prompt
|
||||
- `dev.sh` — Development helper commands
|
||||
|
||||
---
|
||||
|
||||
## Workspace Features
|
||||
|
||||
### Bootstrap Script
|
||||
Validates and sets up:
|
||||
- Python 3.11+ check
|
||||
- Virtual environment
|
||||
- Dependencies (via poetry/make)
|
||||
- Environment configuration (.env)
|
||||
- Git configuration
|
||||
|
||||
### Resume Script
|
||||
Provides quick status on:
|
||||
- Current Git branch/commit
|
||||
- Uncommitted changes
|
||||
- Last test run results
|
||||
- Ollama service status
|
||||
- Dashboard service status
|
||||
- Pending TODO items
|
||||
|
||||
### Development Script
|
||||
Commands for:
|
||||
- `status` — Project status overview
|
||||
- `test` — Fast unit tests
|
||||
- `test-full` — Full test suite
|
||||
- `lint` — Code quality check
|
||||
- `format` — Auto-format code
|
||||
- `clean` — Clean build artifacts
|
||||
- `nuke` — Full environment reset
|
||||
|
||||
---
|
||||
|
||||
## Files Added
|
||||
|
||||
```
|
||||
.kimi/
|
||||
├── AGENTS.md
|
||||
├── CHECKPOINT.md
|
||||
├── README.md
|
||||
├── TODO.md
|
||||
├── scripts/
|
||||
│ ├── bootstrap.sh
|
||||
│ ├── dev.sh
|
||||
│ └── resume.sh
|
||||
└── worktrees/ (reserved for future use)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
Per AGENTS.md roadmap:
|
||||
|
||||
1. **v2.0 Exodus (in progress)** — Voice + Marketplace + Integrations
|
||||
2. **v3.0 Revelation (planned)** — Lightning treasury + `.app` bundle + federation
|
||||
|
||||
See `.kimi/TODO.md` for specific upcoming tasks.
|
||||
|
||||
---
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# First time setup
|
||||
bash .kimi/scripts/bootstrap.sh
|
||||
|
||||
# Daily workflow
|
||||
bash .kimi/scripts/resume.sh # Check status
|
||||
cat .kimi/TODO.md # See tasks
|
||||
# ... make changes ...
|
||||
make test # Verify tests
|
||||
cat .kimi/CHECKPOINT.md # Update checkpoint
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*Workspace initialized per AGENTS.md and CLAUDE.md conventions*
|
||||
51
.kimi/README.md
Normal file
51
.kimi/README.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Kimi Agent Workspace for Timmy Time
|
||||
|
||||
This directory contains the Kimi (Moonshot AI) agent workspace for the Timmy Time project.
|
||||
|
||||
## About Kimi
|
||||
|
||||
Kimi is part of the **Build Tier** in the Timmy Time agent roster:
|
||||
- **Strengths:** Large-context feature drops, new subsystems, persona agents
|
||||
- **Model:** Paid API with large context window
|
||||
- **Best for:** Complex features requiring extensive context
|
||||
|
||||
## Quick Commands
|
||||
|
||||
```bash
|
||||
# Check workspace status
|
||||
bash .kimi/scripts/resume.sh
|
||||
|
||||
# Bootstrap (first time)
|
||||
bash .kimi/scripts/bootstrap.sh
|
||||
|
||||
# Development
|
||||
make dev # Start the dashboard
|
||||
make test # Run all tests
|
||||
tox -e unit # Fast unit tests only
|
||||
```
|
||||
|
||||
## Workspace Files
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `AGENTS.md` | Workspace guide and conventions |
|
||||
| `CHECKPOINT.md` | Current session state |
|
||||
| `TODO.md` | Task list and priorities |
|
||||
| `scripts/bootstrap.sh` | One-time setup script |
|
||||
| `scripts/resume.sh` | Quick status check |
|
||||
| `scripts/dev.sh` | Development helpers |
|
||||
|
||||
## Conventions
|
||||
|
||||
Per project AGENTS.md:
|
||||
1. **Tests must stay green** - Run `make test` before committing
|
||||
2. **No cloud dependencies** - Use Ollama for local AI
|
||||
3. **Follow existing patterns** - Singletons, graceful degradation
|
||||
4. **Security first** - Never hard-code secrets
|
||||
5. **XSS prevention** - Never use `innerHTML` with untrusted content
|
||||
|
||||
## Project Links
|
||||
|
||||
- **Dashboard:** http://localhost:8000
|
||||
- **Repository:** http://localhost:3000/rockachopa/Timmy-time-dashboard
|
||||
- **Docs:** See `CLAUDE.md` and `AGENTS.md` in project root
|
||||
87
.kimi/TODO.md
Normal file
87
.kimi/TODO.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# Kimi Workspace — Task List
|
||||
|
||||
**Agent:** Kimi (Moonshot AI)
|
||||
**Branch:** `kimi/agent-workspace-init`
|
||||
|
||||
---
|
||||
|
||||
## Current Sprint
|
||||
|
||||
### Completed ✅
|
||||
|
||||
- [x] Create `kimi/agent-workspace-init` branch
|
||||
- [x] Set up `.kimi/` workspace directory structure
|
||||
- [x] Create `AGENTS.md` with workspace guide
|
||||
- [x] Create `README.md` with quick reference
|
||||
- [x] Create `bootstrap.sh` for one-time setup
|
||||
- [x] Create `resume.sh` for daily workflow
|
||||
- [x] Create `dev.sh` with helper commands
|
||||
- [x] Create `CHECKPOINT.md` template
|
||||
- [x] Create `TODO.md` (this file)
|
||||
- [x] Submit PR to Gitea
|
||||
|
||||
---
|
||||
|
||||
## Upcoming (v2.0 Exodus — Voice + Marketplace + Integrations)
|
||||
|
||||
### Voice Enhancements
|
||||
|
||||
- [ ] Voice command history and replay
|
||||
- [ ] Multi-language NLU support
|
||||
- [ ] Voice transcription quality metrics
|
||||
- [ ] Piper TTS integration improvements
|
||||
|
||||
### Marketplace
|
||||
|
||||
- [ ] Agent capability registry
|
||||
- [ ] Task bidding system UI
|
||||
- [ ] Work order management dashboard
|
||||
- [ ] Payment flow integration (L402)
|
||||
|
||||
### Integrations
|
||||
|
||||
- [ ] Discord bot enhancements
|
||||
- [ ] Telegram bot improvements
|
||||
- [ ] Siri Shortcuts expansion
|
||||
- [ ] WebSocket event streaming
|
||||
|
||||
---
|
||||
|
||||
## Future (v3.0 Revelation)
|
||||
|
||||
### Lightning Treasury
|
||||
|
||||
- [ ] LND integration (real Lightning)
|
||||
- [ ] Bitcoin wallet management
|
||||
- [ ] Autonomous payment flows
|
||||
- [ ] Macaroon-based authorization
|
||||
|
||||
### App Bundle
|
||||
|
||||
- [ ] macOS .app packaging
|
||||
- [ ] Code signing setup
|
||||
- [ ] Auto-updater integration
|
||||
|
||||
### Federation
|
||||
|
||||
- [ ] Multi-node swarm support
|
||||
- [ ] Inter-agent communication protocol
|
||||
- [ ] Distributed task scheduling
|
||||
|
||||
---
|
||||
|
||||
## Technical Debt
|
||||
|
||||
- [ ] XSS audit (replace innerHTML in templates)
|
||||
- [ ] Chat history persistence
|
||||
- [ ] Connection pooling evaluation
|
||||
- [ ] React dashboard (separate effort)
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- Follow existing patterns: singletons, graceful degradation
|
||||
- All AI computation on localhost (Ollama)
|
||||
- Tests must stay green
|
||||
- Update CHECKPOINT.md after each session
|
||||
106
.kimi/scripts/bootstrap.sh
Executable file
106
.kimi/scripts/bootstrap.sh
Executable file
@@ -0,0 +1,106 @@
|
||||
#!/bin/bash
|
||||
# Kimi Workspace Bootstrap Script
|
||||
# Run this once to set up the Kimi agent workspace
|
||||
|
||||
set -e
|
||||
|
||||
echo "==============================================="
|
||||
echo " Kimi Agent Workspace Bootstrap"
|
||||
echo "==============================================="
|
||||
echo ""
|
||||
|
||||
# Navigate to project root
|
||||
cd "$(dirname "$0")/../.."
|
||||
PROJECT_ROOT=$(pwd)
|
||||
|
||||
echo "📁 Project Root: $PROJECT_ROOT"
|
||||
echo ""
|
||||
|
||||
# Check Python version
|
||||
echo "🔍 Checking Python version..."
|
||||
python3 -c "import sys; exit(0 if sys.version_info >= (3,11) else 1)" || {
|
||||
echo "❌ ERROR: Python 3.11+ required (found $(python3 --version))"
|
||||
exit 1
|
||||
}
|
||||
echo "✅ Python $(python3 --version)"
|
||||
echo ""
|
||||
|
||||
# Check if virtual environment exists
|
||||
echo "🔍 Checking virtual environment..."
|
||||
if [ -d ".venv" ]; then
|
||||
echo "✅ Virtual environment exists"
|
||||
else
|
||||
echo "⚠️ Virtual environment not found. Creating..."
|
||||
python3 -m venv .venv
|
||||
echo "✅ Virtual environment created"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Check dependencies
|
||||
echo "🔍 Checking dependencies..."
|
||||
if [ -f ".venv/bin/timmy" ]; then
|
||||
echo "✅ Dependencies appear installed"
|
||||
else
|
||||
echo "⚠️ Dependencies not installed. Running make install..."
|
||||
make install || {
|
||||
echo "❌ Failed to install dependencies"
|
||||
echo " Try: poetry install --with dev"
|
||||
exit 1
|
||||
}
|
||||
echo "✅ Dependencies installed"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Check .env file
|
||||
echo "🔍 Checking environment configuration..."
|
||||
if [ -f ".env" ]; then
|
||||
echo "✅ .env file exists"
|
||||
else
|
||||
echo "⚠️ .env file not found. Creating from template..."
|
||||
cp .env.example .env
|
||||
echo "✅ Created .env from template (edit as needed)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Check Git configuration
|
||||
echo "🔍 Checking Git configuration..."
|
||||
git config --local user.name &>/dev/null || {
|
||||
echo "⚠️ Git user.name not set. Setting..."
|
||||
git config --local user.name "Kimi Agent"
|
||||
}
|
||||
git config --local user.email &>/dev/null || {
|
||||
echo "⚠️ Git user.email not set. Setting..."
|
||||
git config --local user.email "kimi@timmy.local"
|
||||
}
|
||||
echo "✅ Git config: $(git config --local user.name) <$(git config --local user.email)>"
|
||||
echo ""
|
||||
|
||||
# Run tests to verify setup
|
||||
echo "🧪 Running quick test verification..."
|
||||
if tox -e unit -- -q 2>/dev/null | grep -q "passed"; then
|
||||
echo "✅ Tests passing"
|
||||
else
|
||||
echo "⚠️ Test status unclear - run 'make test' manually"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Show current branch
|
||||
echo "🌿 Current Branch: $(git branch --show-current)"
|
||||
echo ""
|
||||
|
||||
# Display summary
|
||||
echo "==============================================="
|
||||
echo " ✅ Bootstrap Complete!"
|
||||
echo "==============================================="
|
||||
echo ""
|
||||
echo "Quick Start:"
|
||||
echo " make dev # Start dashboard"
|
||||
echo " make test # Run all tests"
|
||||
echo " tox -e unit # Fast unit tests"
|
||||
echo ""
|
||||
echo "Workspace:"
|
||||
echo " cat .kimi/CHECKPOINT.md # Current state"
|
||||
echo " cat .kimi/TODO.md # Task list"
|
||||
echo " bash .kimi/scripts/resume.sh # Status check"
|
||||
echo ""
|
||||
echo "Happy coding! 🚀"
|
||||
98
.kimi/scripts/dev.sh
Executable file
98
.kimi/scripts/dev.sh
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/bin/bash
|
||||
# Kimi Development Helper Script
|
||||
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$0")/../.."
|
||||
|
||||
show_help() {
|
||||
echo "Kimi Development Helpers"
|
||||
echo ""
|
||||
echo "Usage: bash .kimi/scripts/dev.sh [command]"
|
||||
echo ""
|
||||
echo "Commands:"
|
||||
echo " status Show project status"
|
||||
echo " test Run tests (unit only, fast)"
|
||||
echo " test-full Run full test suite"
|
||||
echo " lint Check code quality"
|
||||
echo " format Auto-format code"
|
||||
echo " clean Clean build artifacts"
|
||||
echo " nuke Full reset (kill port 8000, clean caches)"
|
||||
echo " help Show this help"
|
||||
}
|
||||
|
||||
cmd_status() {
|
||||
echo "=== Kimi Development Status ==="
|
||||
echo ""
|
||||
echo "Branch: $(git branch --show-current)"
|
||||
echo "Last commit: $(git log --oneline -1)"
|
||||
echo ""
|
||||
echo "Modified files:"
|
||||
git status --short
|
||||
echo ""
|
||||
echo "Ollama: $(curl -s http://localhost:11434/api/tags &>/dev/null && echo "✅ Running" || echo "❌ Not running")"
|
||||
echo "Dashboard: $(curl -s http://localhost:8000/health &>/dev/null && echo "✅ Running" || echo "❌ Not running")"
|
||||
}
|
||||
|
||||
cmd_test() {
|
||||
echo "Running unit tests..."
|
||||
tox -e unit -q
|
||||
}
|
||||
|
||||
cmd_test_full() {
|
||||
echo "Running full test suite..."
|
||||
make test
|
||||
}
|
||||
|
||||
cmd_lint() {
|
||||
echo "Running linters..."
|
||||
tox -e lint
|
||||
}
|
||||
|
||||
cmd_format() {
|
||||
echo "Auto-formatting code..."
|
||||
tox -e format
|
||||
}
|
||||
|
||||
cmd_clean() {
|
||||
echo "Cleaning build artifacts..."
|
||||
make clean
|
||||
}
|
||||
|
||||
cmd_nuke() {
|
||||
echo "Nuking development environment..."
|
||||
make nuke
|
||||
}
|
||||
|
||||
# Main
|
||||
case "${1:-status}" in
|
||||
status)
|
||||
cmd_status
|
||||
;;
|
||||
test)
|
||||
cmd_test
|
||||
;;
|
||||
test-full)
|
||||
cmd_test_full
|
||||
;;
|
||||
lint)
|
||||
cmd_lint
|
||||
;;
|
||||
format)
|
||||
cmd_format
|
||||
;;
|
||||
clean)
|
||||
cmd_clean
|
||||
;;
|
||||
nuke)
|
||||
cmd_nuke
|
||||
;;
|
||||
help|--help|-h)
|
||||
show_help
|
||||
;;
|
||||
*)
|
||||
echo "Unknown command: $1"
|
||||
show_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
73
.kimi/scripts/resume.sh
Executable file
73
.kimi/scripts/resume.sh
Executable file
@@ -0,0 +1,73 @@
|
||||
#!/bin/bash
|
||||
# Kimi Workspace Resume Script
|
||||
# Quick status check and resume prompt
|
||||
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$0")/../.."
|
||||
|
||||
echo "==============================================="
|
||||
echo " Kimi Workspace Status"
|
||||
echo "==============================================="
|
||||
echo ""
|
||||
|
||||
# Git status
|
||||
echo "🌿 Git Status:"
|
||||
echo " Branch: $(git branch --show-current)"
|
||||
echo " Commit: $(git log --oneline -1)"
|
||||
if [ -n "$(git status --short)" ]; then
|
||||
echo " Uncommitted changes:"
|
||||
git status --short | sed 's/^/ /'
|
||||
else
|
||||
echo " Working directory clean"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Test status (quick check)
|
||||
echo "🧪 Test Status:"
|
||||
if [ -f ".tox/unit/log/1-commands[0].log" ]; then
|
||||
LAST_TEST=$(grep -o '[0-9]* passed' .tox/unit/log/1-commands[0].log 2>/dev/null | tail -1 || echo "unknown")
|
||||
echo " Last unit test run: $LAST_TEST"
|
||||
else
|
||||
echo " No recent test runs found"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Check Ollama
|
||||
echo "🤖 Ollama Status:"
|
||||
if curl -s http://localhost:11434/api/tags &>/dev/null; then
|
||||
MODELS=$(curl -s http://localhost:11434/api/tags 2>/dev/null | grep -o '"name":"[^"]*"' | head -3 | sed 's/"name":"//;s/"$//' | tr '\n' ', ' | sed 's/, $//')
|
||||
echo " ✅ Running (models: $MODELS)"
|
||||
else
|
||||
echo " ⚠️ Not running (start with: ollama serve)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Dashboard status
|
||||
echo "🌐 Dashboard Status:"
|
||||
if curl -s http://localhost:8000/health &>/dev/null; then
|
||||
echo " ✅ Running at http://localhost:8000"
|
||||
else
|
||||
echo " ⚠️ Not running (start with: make dev)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Show TODO items
|
||||
echo "📝 Next Tasks (from TODO.md):"
|
||||
if [ -f ".kimi/TODO.md" ]; then
|
||||
grep -E "^\s*- \[ \]" .kimi/TODO.md 2>/dev/null | head -5 | sed 's/^/ /' || echo " No pending tasks"
|
||||
else
|
||||
echo " No TODO.md found"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Resume prompt
|
||||
echo "==============================================="
|
||||
echo " Resume Prompt (copy/paste to Kimi):"
|
||||
echo "==============================================="
|
||||
echo ""
|
||||
echo "cd $(pwd) && cat .kimi/CHECKPOINT.md"
|
||||
echo ""
|
||||
echo "Continue from checkpoint. Check .kimi/TODO.md for next tasks."
|
||||
echo "Run 'make test' after changes and update CHECKPOINT.md."
|
||||
echo ""
|
||||
Reference in New Issue
Block a user