Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bbe0279af4 | |||
| 5e5e7b4f35 |
11
HISTORY.md
11
HISTORY.md
@@ -5,11 +5,22 @@ Changelog
|
|||||||
(unreleased)
|
(unreleased)
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
Fix
|
||||||
|
~~~
|
||||||
|
- Fix internal server error, refs NOISSUE. [Simon Diesenreiter]
|
||||||
|
|
||||||
|
|
||||||
|
0.9.12 (2026-04-11)
|
||||||
|
-------------------
|
||||||
|
|
||||||
Fix
|
Fix
|
||||||
~~~
|
~~~
|
||||||
- Remove heuristic decision making fallbacks, refs NOISSUE. [Simon
|
- Remove heuristic decision making fallbacks, refs NOISSUE. [Simon
|
||||||
Diesenreiter]
|
Diesenreiter]
|
||||||
|
|
||||||
|
Other
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
|
||||||
0.9.11 (2026-04-11)
|
0.9.11 (2026-04-11)
|
||||||
-------------------
|
-------------------
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
0.9.12
|
0.9.13
|
||||||
|
|||||||
@@ -283,6 +283,51 @@ def _compose_prompt_text(request: SoftwareRequest) -> str:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _generation_error_payload(
|
||||||
|
*,
|
||||||
|
message: str,
|
||||||
|
request: SoftwareRequest | None = None,
|
||||||
|
source: dict | None = None,
|
||||||
|
interpreted_request: dict | None = None,
|
||||||
|
routing: dict | None = None,
|
||||||
|
) -> dict:
|
||||||
|
"""Return a workflow-safe JSON payload for expected generation failures."""
|
||||||
|
response = {
|
||||||
|
'status': 'error',
|
||||||
|
'message': message,
|
||||||
|
'error': message,
|
||||||
|
'summary_message': message,
|
||||||
|
'summary_metadata': {
|
||||||
|
'provider': None,
|
||||||
|
'model': None,
|
||||||
|
'fallback_used': False,
|
||||||
|
},
|
||||||
|
'data': {
|
||||||
|
'history_id': None,
|
||||||
|
'project_id': None,
|
||||||
|
'name': request.name if request is not None else (interpreted_request or {}).get('name'),
|
||||||
|
'description': request.description if request is not None else (interpreted_request or {}).get('description'),
|
||||||
|
'status': 'error',
|
||||||
|
'progress': 0,
|
||||||
|
'message': message,
|
||||||
|
'current_step': None,
|
||||||
|
'error_message': message,
|
||||||
|
'logs': [],
|
||||||
|
'changed_files': [],
|
||||||
|
'repository': None,
|
||||||
|
'pull_request': None,
|
||||||
|
'summary_message': message,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
if source is not None:
|
||||||
|
response['source'] = source
|
||||||
|
if interpreted_request is not None:
|
||||||
|
response['interpreted_request'] = interpreted_request
|
||||||
|
if routing is not None:
|
||||||
|
response['routing'] = routing
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
async def _run_generation(
|
async def _run_generation(
|
||||||
request: SoftwareRequest,
|
request: SoftwareRequest,
|
||||||
db: Session,
|
db: Session,
|
||||||
@@ -876,7 +921,15 @@ def reset_runtime_setting(setting_key: str, db: DbSession):
|
|||||||
@app.post('/generate')
|
@app.post('/generate')
|
||||||
async def generate_software(request: SoftwareRequest, db: DbSession):
|
async def generate_software(request: SoftwareRequest, db: DbSession):
|
||||||
"""Create and record a software-generation request."""
|
"""Create and record a software-generation request."""
|
||||||
|
try:
|
||||||
return await _run_generation(request, db)
|
return await _run_generation(request, db)
|
||||||
|
except Exception as exc:
|
||||||
|
DatabaseManager(db).log_system_event(
|
||||||
|
component='api',
|
||||||
|
level='ERROR',
|
||||||
|
message=f"Structured generation failed: {exc}",
|
||||||
|
)
|
||||||
|
return _generation_error_payload(message=str(exc), request=request)
|
||||||
|
|
||||||
|
|
||||||
@app.post('/generate/text')
|
@app.post('/generate/text')
|
||||||
@@ -920,7 +973,22 @@ async def generate_software_from_text(request: FreeformSoftwareRequest, db: DbSe
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
return await _run_freeform_generation(request, db)
|
return await _run_freeform_generation(request, db)
|
||||||
|
except Exception as exc:
|
||||||
|
DatabaseManager(db).log_system_event(
|
||||||
|
component='api',
|
||||||
|
level='ERROR',
|
||||||
|
message=f"Free-form generation failed for source={request.source}: {exc}",
|
||||||
|
)
|
||||||
|
return _generation_error_payload(
|
||||||
|
message=str(exc),
|
||||||
|
source={
|
||||||
|
'type': request.source,
|
||||||
|
'chat_id': request.chat_id,
|
||||||
|
'chat_type': request.chat_type,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.get('/queue')
|
@app.get('/queue')
|
||||||
|
|||||||
Reference in New Issue
Block a user