{"record":{"id":"b0c7210e2a4ea542","repo":"chenhg5/cc-connect","slug":"config-s-references-display-path-has-unsupported","errorCode":null,"errorMessage":"config: %s.references.display_path has unsupported value %q","messagePattern":"config: (.+?)\\.references\\.display_path has unsupported value %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"config/config.go","lineNumber":1150,"sourceCode":"\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\n\t}\n\tif len(u.Roles) == 0 {\n\t\treturn fmt.Errorf(\"config: %s.users has no roles defined\", prefix)\n\t}","sourceCodeStart":1132,"sourceCodeEnd":1168,"githubUrl":"https://github.com/chenhg5/cc-connect/blob/4000b2338aa6e850c99df54f8b0ed6ed7460b401/config/config.go#L1132-L1168","documentation":"CC-Connect validates `[projects.references].display_path` against a fixed set: \"\", \"absolute\", \"relative\", \"basename\", \"dirname_basename\", \"smart\". Any other value makes validateReferenceConfig reject the config, quoting the value. It controls how file paths in agent references are displayed.","triggerScenarios":"Loading config.toml with display_path set to a non-allowlisted style, e.g. \"short\", \"full\", or \"auto\". Matching is case-insensitive and trimmed, so \"Basename\" would be accepted.","commonSituations":"Guessing style names instead of reading docs; typos like \"dirbase\"; switching from another tool whose path-display options used different vocabulary.","solutions":["Use one of: \"absolute\", \"relative\", \"basename\", \"dirname_basename\", \"smart\", or empty string for default","Prefer \"smart\" if unsure — it picks a sensible display per path","Fix typos by copying a valid value exactly"],"exampleFix":"# before\n[projects.references]\ndisplay_path = \"short\"\n\n# after\n[projects.references]\ndisplay_path = \"smart\"","handlingStrategy":"validation","validationCode":"var displayPaths = map[string]bool{\"\": true, \"absolute\": true, \"relative\": true, \"basename\": true, \"dirname_basename\": true, \"smart\": true}\nif !displayPaths[strings.ToLower(strings.TrimSpace(rc.DisplayPath))] {\n    return fmt.Errorf(\"display_path %q unsupported\", rc.DisplayPath)\n}","typeGuard":"func isValidDisplayPath(v string) bool {\n    switch strings.ToLower(strings.TrimSpace(v)) {\n    case \"\", \"absolute\", \"relative\", \"basename\", \"dirname_basename\", \"smart\":\n        return true\n    }\n    return false\n}","tryCatchPattern":null,"preventionTips":["Default to \"smart\" or leave empty for the default behavior","Keep the allowlist values in a lint script for config.toml","Don't invent style names; copy from config.example.toml"],"tags":["config","validation","allowlist"],"backgroundTag":"invalid-enum-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"}