project

package
v0.13.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const MaxBasenameTruncation = 10

MaxBasenameTruncation is the max number of alphanumeric chars kept from the basename.

MaxPrefixLength is the maximum total prefix length: basename + hyphen + hash suffix.

View Source
const PrefixHashSuffixLength = 4

PrefixHashSuffixLength is the number of base36 hash characters in the suffix.

Variables

This section is empty.

Functions

func Base36Encode added in v0.12.0

func Base36Encode(data []byte) string

Base36Encode converts bytes to a base36 string.

func DefaultArcHome

func DefaultArcHome() string

DefaultArcHome returns the default arc home directory (~/.arc). Delegates to core.DefaultArcHome; kept for backward compatibility.

func GenerateIssueID added in v0.12.0

func GenerateIssueID(prefix, title string) string

GenerateIssueID creates an issue ID from content. Format: prefix.{6-char-base36-hash} Uses period separator to distinguish from project prefixes which use hyphens.

func GenerateName added in v0.12.0

func GenerateName(dirPath string) (string, error)

GenerateName creates a project name from a directory path. Format: {sanitized-basename}-{6-char-hex-hash} The hash is derived from the full absolute path, making it deterministic.

func GeneratePlanID added in v0.12.0

func GeneratePlanID(title string) string

GeneratePlanID creates a plan ID from content. Format: plan.{6-char-base36-hash} Uses "plan" prefix to identify shared plans.

func GeneratePrefix added in v0.12.0

func GeneratePrefix(dirPath string) (string, error)

GeneratePrefix creates an issue prefix from a directory path. Format: {alphanumeric-basename-truncated}-{4-char-base36-hash} The hash is derived from the full absolute path, making it deterministic. Example: /home/user/projects/my-api -> "myapi-a3f2"

func GeneratePrefixFromName added in v0.12.0

func GeneratePrefixFromName(name string) string

GeneratePrefixFromName creates an issue prefix from a project name (without path). Format: {alphanumeric-name-truncated}-{4-char-base36-hash} Used when creating a project without an associated directory path. Includes timestamp for uniqueness when same name is used multiple times.

func GeneratePrefixWithCustomName added in v0.12.0

func GeneratePrefixWithCustomName(dirPath, customName string) (string, error)

GeneratePrefixWithCustomName creates an issue prefix using a user-provided basename combined with a path-derived hash suffix for uniqueness. The custom name is normalized (lowercased, non-alphanumeric stripped) and truncated to MaxBasenameTruncation chars. Format: {normalized-custom-name}-{4-char-base36-hash}

func GenerateProjectID added in v0.12.0

func GenerateProjectID(prefix, name string) string

GenerateProjectID creates a project ID from content. Format: prefix-{6-char-base36-hash} Uses hyphen separator consistent with project naming conventions.

func NormalizePath added in v0.12.0

func NormalizePath(path string) string

NormalizePath resolves symlinks and returns the canonical absolute path. Delegates to core.NormalizePath; kept for backward compatibility.

func NormalizePathPair added in v0.12.0

func NormalizePathPair(path string) (absPath, resolvedPath string)

NormalizePathPair returns both the absolute path and the symlink-resolved path. Delegates to core.NormalizePathPair; kept for backward compatibility.

func SanitizeBasename added in v0.12.0

func SanitizeBasename(name string) string

SanitizeBasename normalizes a directory name for use in project names.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL