{"record":{"id":"9feeb02bac5f64dc","repo":"chenhg5/cc-connect","slug":"config-s-references-render-platforms-has-unsuppo","errorCode":null,"errorMessage":"config: %s.references.render_platforms has unsupported value %q","messagePattern":"config: (.+?)\\.references\\.render_platforms has unsupported value %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"config/config.go","lineNumber":1146,"sourceCode":"\t\"\":          {},\n\t\"none\":      {},\n\t\"bracket\":   {},\n\t\"angle\":     {},\n\t\"fullwidth\": {},\n\t\"code\":      {},\n}\n\nfunc validateReferenceConfig(prefix string, rc ReferenceConfig) error {\n\tfor _, v := range rc.NormalizeAgents {\n\t\tkey := strings.ToLower(strings.TrimSpace(v))\n\t\tif _, ok := supportedReferenceAgents[key]; !ok {\n\t\t\treturn fmt.Errorf(\"config: %s.references.normalize_agents has unsupported value %q\", prefix, v)\n\t\t}\n\t}\n\tfor _, v := range rc.RenderPlatforms {\n\t\tkey := strings.ToLower(strings.TrimSpace(v))\n\t\tif _, ok := supportedReferencePlatforms[key]; !ok {\n\t\t\treturn fmt.Errorf(\"config: %s.references.render_platforms has unsupported value %q\", prefix, v)\n\t\t}\n\t}\n\tif _, ok := supportedReferenceDisplayPaths[strings.ToLower(strings.TrimSpace(rc.DisplayPath))]; !ok {\n\t\treturn fmt.Errorf(\"config: %s.references.display_path has unsupported value %q\", prefix, rc.DisplayPath)\n\t}\n\tif _, ok := supportedReferenceMarkerStyles[strings.ToLower(strings.TrimSpace(rc.MarkerStyle))]; !ok {\n\t\treturn fmt.Errorf(\"config: %s.references.marker_style has unsupported value %q\", prefix, rc.MarkerStyle)\n\t}\n\tif _, ok := supportedReferenceEnclosureStyles[strings.ToLower(strings.TrimSpace(rc.EnclosureStyle))]; !ok {\n\t\treturn fmt.Errorf(\"config: %s.references.enclosure_style has unsupported value %q\", prefix, rc.EnclosureStyle)\n\t}\n\treturn nil\n}\n\n// validateUsersConfig checks the [projects.users] section for consistency.\nfunc validateUsersConfig(prefix string, u *UsersConfig) error {\n\tif u == nil {\n\t\treturn nil","sourceCodeStart":1128,"sourceCodeEnd":1164,"githubUrl":"https://github.com/chenhg5/cc-connect/blob/4000b2338aa6e850c99df54f8b0ed6ed7460b401/config/config.go#L1128-L1164","documentation":"CC-Connect validates the `[projects.references].render_platforms` list against a fixed allowlist (\"all\", \"feishu\", \"weixin\") at config load time. Any unsupported platform name causes validateReferenceConfig to reject the config, quoting the offending value.","triggerScenarios":"Loading config.toml where render_platforms contains a platform not in the allowlist, e.g. render_platforms = [\"telegram\"] or \"discord\" — even if that platform is configured elsewhere in the file. Comparison is case-insensitive and trimmed.","commonSituations":"Expecting reference rendering to support every configured platform; typos like \"feishu2\"; copying entries between render_platforms and other platform lists that do have different allowlists.","solutions":["Use only \"all\", \"feishu\", or \"weixin\" in render_platforms","Remove entries for platforms that don't support reference rendering","Use [\"all\"] to render on every supported platform"],"exampleFix":"# before\n[projects.references]\nrender_platforms = [\"telegram\"]\n\n# after\n[projects.references]\nrender_platforms = [\"all\"]","handlingStrategy":"validation","validationCode":"var supportedRefPlatforms = map[string]bool{\"all\": true, \"feishu\": true, \"weixin\": true}\nfor _, v := range refs.RenderPlatforms {\n    if !supportedRefPlatforms[strings.ToLower(strings.TrimSpace(v))] {\n        return fmt.Errorf(\"render_platforms entry %q unsupported\", v)\n    }\n}","typeGuard":"func isSupportedRefPlatform(v string) bool {\n    switch strings.ToLower(strings.TrimSpace(v)) {\n    case \"all\", \"feishu\", \"weixin\":\n        return true\n    }\n    return false\n}","tryCatchPattern":null,"preventionTips":["Remember render_platforms is a smaller allowlist than the set of configurable platforms","Use [\"all\"] and restrict later only if needed","Verify platform names against supportedReferencePlatforms in config/config.go"],"tags":["config","validation","allowlist"],"backgroundTag":"unsupported-config-value","analyzedSha":"4000b2338aa6e850c99df54f8b0ed6ed7460b401","analyzedAt":"2026-09-06T11:45:09.575Z","contentChangedAt":"2026-09-06T11:45:09.575Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}