{"record":{"id":"758b879da79c28a0","repo":"chenhg5/cc-connect","slug":"config-s-references-enclosure-style-has-unsuppor","errorCode":null,"errorMessage":"config: %s.references.enclosure_style has unsupported value %q","messagePattern":"config: (.+?)\\.references\\.enclosure_style has unsupported value %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"config/config.go","lineNumber":1156,"sourceCode":"\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}\n\twildcardCount := 0\n\tseenUserIDs := make(map[string]string) // userID → role name\n\tfor roleName, rc := range u.Roles {\n\t\tif len(rc.UserIDs) == 0 {\n\t\t\treturn fmt.Errorf(\"config: %s.users.roles.%s has empty user_ids\", prefix, roleName)\n\t\t}","sourceCodeStart":1138,"sourceCodeEnd":1174,"githubUrl":"https://github.com/chenhg5/cc-connect/blob/4000b2338aa6e850c99df54f8b0ed6ed7460b401/config/config.go#L1138-L1174","documentation":"CC-Connect validates `[projects.references].enclosure_style` against a fixed set: \"\", \"none\", \"bracket\", \"angle\", \"fullwidth\", \"code\". Any other value makes validateReferenceConfig reject the config, quoting the value. It controls the characters wrapping each reference path (e.g. [path], <path>, `path`).","triggerScenarios":"Loading config.toml with enclosure_style set to something like \"square\", \"paren\", or \"backtick\" instead of an allowed value. Matching is case-insensitive and trimmed, so \"Bracket\" would pass.","commonSituations":"Guessing bracket synonyms (\"square\", \"curly\", \"parens\"); mixing up with marker_style values (\"ascii\"/\"emoji\" are marker styles, not enclosures); typos.","solutions":["Use one of: \"none\", \"bracket\", \"angle\", \"fullwidth\", \"code\", or empty string for default","Replace \"backtick\" with \"code\"; replace \"square\" with \"bracket\"","Fix typos by copying a valid value exactly"],"exampleFix":"# before\n[projects.references]\nenclosure_style = \"square\"\n\n# after\n[projects.references]\nenclosure_style = \"bracket\"","handlingStrategy":"validation","validationCode":"var enclosureStyles = map[string]bool{\"\": true, \"none\": true, \"bracket\": true, \"angle\": true, \"fullwidth\": true, \"code\": true}\nif !enclosureStyles[strings.ToLower(strings.TrimSpace(rc.EnclosureStyle))] {\n    return fmt.Errorf(\"enclosure_style %q unsupported\", rc.EnclosureStyle)\n}","typeGuard":"func isValidEnclosureStyle(v string) bool {\n    switch strings.ToLower(strings.TrimSpace(v)) {\n    case \"\", \"none\", \"bracket\", \"angle\", \"fullwidth\", \"code\":\n        return true\n    }\n    return false\n}","tryCatchPattern":null,"preventionTips":["Use \"code\" for backticks and \"bracket\" for square brackets — synonyms are not accepted","Keep marker_style and enclosure_style vocabularies separate","Copy values 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-14T00:17:10.932Z"}