H-300: wire Captain Skills into Web runtime (#48)

* H-300: wire Captain Skills into Web runtime

* H-300: enforce effective model and conservative skill budget

* H-300: fix CI gosec step

* ci: extend golangci-lint timeout

* fix lint findings across backend

* fix(push): resolve delivery protocol blockers

* test(repository): close SQLite test databases

* test(repository): reuse SQLite schema per package

* H-307: restore backend Go cache in CI

* H-307: prefetch modules before cold lint

* H-307: resolve govulncheck security gate

* H-307: build lint with patched Go toolchain

* H-307: clear remaining security scan findings

---------

Co-authored-by: Rogee <rogee@ipao.vip>
This commit is contained in:
Rogee
2026-08-19 07:08:14 +08:00
committed by GitHub
co-authored by rogee
parent f50eacdc92
commit 2b182f9956
224 changed files with 3814 additions and 10626 deletions
@@ -132,7 +132,9 @@ func (s *DraftMessageHandlerTestSuite) Test_CreateDraft() {
assert.Equal(s.T(), http.StatusOK, w.Code)
var resp map[string]interface{}
json.Unmarshal(w.Body.Bytes(), &resp)
if err := json.Unmarshal(w.Body.Bytes(), &resp); err != nil {
panic(err)
}
data, ok := resp["data"]
if ok && data != nil {
item := data.(map[string]interface{})
@@ -284,8 +286,9 @@ func (s *DraftMessageHandlerTestSuite) Test_GetDraft() {
s.router.ServeHTTP(w, req)
var resp map[string]interface{}
json.Unmarshal(w.Body.Bytes(), &resp)
if err := json.Unmarshal(w.Body.Bytes(), &resp); err != nil {
panic(err)
}
// Try to get the draft by ID - note: the response structure may vary
// We just verify the list endpoint works for round-trip verification
w = httptest.NewRecorder()
@@ -308,8 +311,9 @@ func (s *DraftMessageHandlerTestSuite) Test_DeleteDraft() {
s.router.ServeHTTP(w, req)
var resp map[string]interface{}
json.Unmarshal(w.Body.Bytes(), &resp)
if err := json.Unmarshal(w.Body.Bytes(), &resp); err != nil {
panic(err)
}
data, ok := resp["data"]
if ok && data != nil {
item := data.(map[string]interface{})
@@ -337,8 +341,9 @@ func (s *DraftMessageHandlerTestSuite) Test_UpdateDraft() {
s.router.ServeHTTP(w, req)
var resp map[string]interface{}
json.Unmarshal(w.Body.Bytes(), &resp)
if err := json.Unmarshal(w.Body.Bytes(), &resp); err != nil {
panic(err)
}
data, ok := resp["data"]
if ok && data != nil {
item := data.(map[string]interface{})