chenxingyang1019
ec882dd682
feat(apps): friendly error for db commands on an app with no database ( #2162 )
...
* feat(apps): friendly error for db commands on an app with no database
Server code 500002759 (a db command run against an app that has not
initialized a database yet) previously surfaced with an internal-term
message and no actionable next step.
withAppsHint now special-cases this code: it rewrites the message to a
user-facing "this app does not have a database yet" and forces a
cloud-development recovery hint (session-list/create -> chat -> poll
session-get -> retry). Because every apps db command funnels through
withAppsHint and this code is db-endpoint-specific, the whole db command
family is covered without per-command changes.
* fix(apps): generalize no-database retry hint and harden its test
Address review feedback on the no-database (500002759) recovery hint:
- The hint's final step named `+db-table-list` specifically, which would
redirect the operation when a different db command triggered it. Replace
it with "retry the original db command" so the recovery flow always
resumes whatever the caller ran.
- Strengthen the unit test to assert the helper returns the same error
value (cause chain preserved) and leaves Category/Subtype/Code intact,
not just the rewritten Message/Hint.
2026-08-04 11:53:37 +08:00
..
2026-07-20 20:15:43 +08:00
2026-07-16 14:09:41 +08:00
2026-06-13 14:00:30 +08:00
2026-06-10 21:45:45 +08:00
2026-06-13 14:00:30 +08:00
2026-07-14 10:54:16 +08:00
2026-06-30 21:11:27 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-20 18:27:32 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-31 14:13:56 +08:00
2026-07-31 14:13:56 +08:00
2026-07-31 14:13:56 +08:00
2026-07-31 14:13:56 +08:00
2026-06-17 19:42:38 +08:00
2026-06-10 21:45:45 +08:00
2026-06-11 19:04:34 +08:00
2026-07-13 16:43:07 +08:00
2026-07-13 16:43:07 +08:00
2026-07-08 14:06:22 +08:00
2026-07-08 14:06:22 +08:00
2026-07-08 14:06:22 +08:00
2026-07-14 10:54:16 +08:00
2026-07-14 10:54:16 +08:00
2026-07-08 14:06:22 +08:00
2026-07-14 10:54:16 +08:00
2026-07-08 14:06:22 +08:00
2026-07-14 10:54:16 +08:00
2026-07-08 14:06:22 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-07-08 14:06:22 +08:00
2026-07-14 10:54:16 +08:00
2026-07-14 10:54:16 +08:00
2026-07-08 14:06:22 +08:00
2026-07-08 14:06:22 +08:00
2026-07-08 14:06:22 +08:00
2026-07-14 10:54:16 +08:00
2026-07-08 14:06:22 +08:00
2026-07-14 10:54:16 +08:00
2026-07-08 14:06:22 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-07-14 10:54:16 +08:00
2026-06-30 21:11:27 +08:00
2026-07-20 20:15:43 +08:00
2026-07-20 20:15:43 +08:00
2026-06-30 21:11:27 +08:00
2026-07-14 10:54:16 +08:00
2026-06-30 21:11:27 +08:00
2026-07-14 10:54:16 +08:00
2026-06-30 21:11:27 +08:00
2026-07-14 10:54:16 +08:00
2026-06-30 21:11:27 +08:00
2026-07-23 15:55:08 +08:00
2026-07-23 15:55:08 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-07-14 10:54:16 +08:00
2026-06-30 21:11:27 +08:00
2026-07-23 17:52:49 +08:00
2026-07-23 17:52:49 +08:00
2026-07-13 16:43:07 +08:00
2026-07-20 20:15:43 +08:00
2026-06-10 21:45:45 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-07-20 20:15:43 +08:00
2026-07-20 20:15:43 +08:00
2026-07-20 20:15:43 +08:00
2026-07-20 20:15:43 +08:00
2026-06-10 21:45:45 +08:00
2026-06-10 21:45:45 +08:00
2026-06-13 14:00:30 +08:00
2026-07-14 10:54:16 +08:00
2026-06-30 21:11:27 +08:00
2026-07-20 20:15:43 +08:00
2026-07-20 20:15:43 +08:00
2026-07-14 10:54:16 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-06-10 21:45:45 +08:00
2026-07-13 16:43:07 +08:00
2026-07-20 20:15:43 +08:00
2026-06-12 16:58:47 +08:00
2026-07-20 20:15:43 +08:00
2026-06-10 21:45:45 +08:00
2026-06-13 14:00:30 +08:00
2026-07-16 14:09:41 +08:00
2026-07-16 14:09:41 +08:00
2026-07-16 14:09:41 +08:00
2026-07-16 14:09:41 +08:00
2026-07-16 14:09:41 +08:00
2026-07-16 14:09:41 +08:00
2026-06-30 21:11:27 +08:00
2026-06-10 21:45:45 +08:00
2026-06-13 14:00:30 +08:00
2026-06-10 21:45:45 +08:00
2026-06-11 19:04:34 +08:00
2026-06-10 21:45:45 +08:00
2026-06-13 14:00:30 +08:00
2026-06-17 20:12:22 +08:00
2026-06-17 20:12:22 +08:00
2026-06-10 21:45:45 +08:00
2026-06-11 19:04:34 +08:00
2026-06-10 21:45:45 +08:00
2026-07-14 10:54:16 +08:00
2026-06-30 21:11:27 +08:00
2026-06-10 21:45:45 +08:00
2026-06-13 14:00:30 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-15 15:55:53 +08:00
2026-07-31 14:13:56 +08:00
2026-06-10 21:45:45 +08:00
2026-06-10 21:45:45 +08:00
2026-08-04 11:53:37 +08:00
2026-08-04 11:53:37 +08:00
2026-06-10 21:45:45 +08:00
2026-07-08 14:06:22 +08:00
2026-07-14 10:54:16 +08:00
2026-08-02 14:55:05 +08:00
2026-08-02 14:55:05 +08:00
2026-06-11 19:04:34 +08:00
2026-07-20 20:15:43 +08:00
2026-07-20 20:15:43 +08:00
2026-05-21 20:30:42 +08:00
2026-06-11 19:04:34 +08:00
2026-06-30 21:11:27 +08:00
2026-06-30 21:11:27 +08:00
2026-05-25 23:24:40 +08:00
2026-05-25 23:24:40 +08:00
2026-07-31 14:13:56 +08:00
2026-07-31 14:13:56 +08:00
2026-06-10 21:45:45 +08:00
2026-06-11 19:04:34 +08:00
2026-06-11 14:58:58 +08:00
2026-06-11 19:04:34 +08:00