6 Commits
0.3.0 ... 0.3.3

Author SHA1 Message Date
81935daaf5 release: version 0.3.3 🚀
All checks were successful
Upload Python Package / Create Release (push) Successful in 17s
Upload Python Package / deploy (push) Successful in 42s
2026-04-04 23:53:04 +02:00
d2260ac797 fix: fix runtime errors, refs NOISSUE 2026-04-04 23:53:02 +02:00
ca6f39a3e8 release: version 0.3.2 🚀
All checks were successful
Upload Python Package / Create Release (push) Successful in 31s
Upload Python Package / deploy (push) Successful in 49s
2026-04-04 23:34:32 +02:00
5eb5bd426a fix: add back DB init endpoints, ref NOISSUE 2026-04-04 23:34:29 +02:00
08af3ed38d release: version 0.3.1 🚀
All checks were successful
Upload Python Package / Create Release (push) Successful in 32s
Upload Python Package / deploy (push) Successful in 3m37s
2026-04-04 23:23:06 +02:00
cc5060d317 fix: fix broken Docker build, refs NOISSUE 2026-04-04 23:22:54 +02:00
5 changed files with 61 additions and 18 deletions

View File

@@ -4,6 +4,36 @@ Changelog
(unreleased) (unreleased)
------------ ------------
Fix
~~~
- Fix runtime errors, refs NOISSUE. [Simon Diesenreiter]
0.3.2 (2026-04-04)
------------------
Fix
~~~
- Add back DB init endpoints, ref NOISSUE. [Simon Diesenreiter]
Other
~~~~~
0.3.1 (2026-04-04)
------------------
Fix
~~~
- Fix broken Docker build, refs NOISSUE. [Simon Diesenreiter]
Other
~~~~~
0.3.0 (2026-04-04)
------------------
- Feat: dashboard via NiceGUI, refs NOISSUE. [Simon Diesenreiter] - Feat: dashboard via NiceGUI, refs NOISSUE. [Simon Diesenreiter]

View File

@@ -1 +1 @@
0.3.0 0.3.3

View File

@@ -20,20 +20,26 @@ def create_dashboard():
return return
try: try:
# Fetch current project # Wrap database queries to handle missing tables gracefully
current_project = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).first() try:
# Fetch current project
# Fetch recent audit trail entries current_project = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).first()
recent_audits = db_session.query(AuditTrail).order_by(AuditTrail.created_at.desc()).limit(10).all()
# Fetch recent audit trail entries
# Fetch recent project history entries recent_audits = db_session.query(AuditTrail).order_by(AuditTrail.created_at.desc()).limit(10).all()
recent_projects = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).limit(5).all()
# Fetch recent project history entries
# Fetch recent system logs recent_projects = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).limit(5).all()
recent_logs = db_session.query(SystemLog).order_by(SystemLog.created_at.desc()).limit(5).all()
# Fetch recent system logs
recent_logs = db_session.query(SystemLog).order_by(SystemLog.created_at.desc()).limit(5).all()
except Exception as e:
# Handle missing tables or other database errors
ui.label(f'Database error: {str(e)}. Please run POST /init-db or ensure the database is initialized.')
return
# Create main card # Create main card
with ui.card().col().classes('w-full max-w-6xl mx-auto').props('elevated').style('max-width: 1200px; margin: 0 auto;') as main_card: with ui.card().classes('w-full max-w-6xl mx-auto').props('elevated').style('max-width: 1200px; margin: 0 auto;') as main_card:
# Header section # Header section
with ui.row().classes('items-center gap-4 mb-6').style('padding: 20px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 12px; color: white;') as header_row: with ui.row().classes('items-center gap-4 mb-6').style('padding: 20px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 12px; color: white;') as header_row:
title = ui.label('AI Software Factory').style('font-size: 28px; font-weight: bold; margin: 0;') title = ui.label('AI Software Factory').style('font-size: 28px; font-weight: bold; margin: 0;')

View File

@@ -13,6 +13,7 @@ The NiceGUI frontend provides:
import frontend import frontend
from fastapi import FastAPI from fastapi import FastAPI
from database import init_db
app = FastAPI() app = FastAPI()
@@ -23,6 +24,13 @@ def read_root():
return {'Hello': 'World'} return {'Hello': 'World'}
@app.post('/init-db')
def initialize_database():
"""Initialize database tables (POST endpoint for NiceGUI to call before dashboard)."""
init_db()
return {'message': 'Database initialized successfully'}
frontend.init(app) frontend.init(app)
if __name__ == '__main__': if __name__ == '__main__':

View File

@@ -1,10 +1,10 @@
fastapi==0.109.0 fastapi>=0.135.3
uvicorn[standard]==0.27.0 uvicorn[standard]==0.27.0
sqlalchemy==2.0.25 sqlalchemy==2.0.25
psycopg2-binary==2.9.9 psycopg2-binary==2.9.9
pydantic==2.5.3 pydantic==2.12.5
pydantic-settings==2.1.0 pydantic-settings==2.1.0
python-multipart==0.0.6 python-multipart==0.0.22
aiofiles==23.2.1 aiofiles==23.2.1
python-telegram-bot==20.7 python-telegram-bot==20.7
requests==2.31.0 requests==2.31.0
@@ -15,5 +15,4 @@ isort==5.13.2
flake8==6.1.0 flake8==6.1.0
mypy==1.7.1 mypy==1.7.1
httpx==0.25.2 httpx==0.25.2
nicegui==1.4.19 nicegui==3.9.0
pydantic-settings==2.1.0