- feedback.py: add GET /feedback/status endpoint (returns {enabled: bool})
so frontend can probe on mount instead of optimistic-enable; remove
unused get_db import
- FeedbackButton.vue: probe /feedback/status on mount, start hidden;
drop redundant 503-hide path (status probe makes it redundant)
- pyproject.toml: declare requests>=2.31 (used by feedback.py Forgejo calls)
- tests/api/test_feedback.py: 7 tests — status endpoint (no-token, token,
demo mode), POST 503/403, happy path with mocked Forgejo, 502 on error
35 lines
761 B
TOML
35 lines
761 B
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "kiwi"
|
|
version = "0.1.0"
|
|
description = "Pantry tracking + leftover recipe suggestions"
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
# API
|
|
"fastapi>=0.110",
|
|
"uvicorn[standard]>=0.27",
|
|
"python-multipart>=0.0.9",
|
|
"aiofiles>=23.0",
|
|
# Image processing + OCR
|
|
"opencv-python>=4.8",
|
|
"numpy>=1.25",
|
|
"pyzbar>=0.1.9",
|
|
"Pillow>=10.0",
|
|
# HTTP clients
|
|
"httpx>=0.27",
|
|
"requests>=2.31",
|
|
# CircuitForge shared scaffold
|
|
"circuitforge-core>=0.6.0",
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["app*"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
asyncio_mode = "auto"
|