Skip to content

chore: Misc typos (UI, docs, code...), Makefile PATH with spaces #369

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@

6. Create a copy of `.env.development` and name it `.env.development.local`. Update the required environment variables.

7. If you're using a declerative configuration file, create a configuration file and update the `CONFIG_PATH` environment variable in your `.env.development.local` file.
7. If you're using a declarative configuration file, create a configuration file and update the `CONFIG_PATH` environment variable in your `.env.development.local` file.

8. Start Sourcebot with the command:
```sh
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ yarn:
zoekt:
mkdir -p bin
go build -C vendor/zoekt -o $(PWD)/bin ./cmd/...
export PATH=$(PWD)/bin:$(PATH)
export PATH="$(PWD)/bin:$(PATH)"
export CTAGS_COMMANDS=ctags

Comment on lines 11 to 15
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

export runs in its own subshell – PATH / CTAGS won’t propagate to later recipe lines.

Each recipe line is executed in a separate shell, so the two export statements have no lasting effect beyond their individual lines.
If subsequent build commands rely on the modified PATH or CTAGS, combine them into a single line, use back-slash continuations, or add .ONESHELL: to the Makefile.

Example:

zoekt:
	. ./vendor/zoekt/env.sh && \
	PATH="$(PWD)/bin:$$PATH" \
	CTAGS_COMMANDS=ctags \
	go build -C vendor/zoekt -o "$(PWD)/bin" ./cmd/...

—or—

.ONESHELL:
zoekt:
	mkdir -p bin
	export PATH="$(PWD)/bin:$$PATH"
	export CTAGS_COMMANDS=ctags
	go build -C vendor/zoekt -o "$(PWD)/bin" ./cmd/...
🤖 Prompt for AI Agents
In the Makefile around lines 11 to 15, the export statements for PATH and
CTAGS_COMMANDS are each run in separate subshells, so their effects do not
persist to subsequent lines. To fix this, either combine all commands that rely
on these environment variables into a single recipe line using backslash
continuations, or add the .ONESHELL: directive at the top of the Makefile so all
recipe lines run in the same shell, allowing exports to persist across lines.

clean:
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/connections/local-repos.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ icon: folder

import GenericGitHost from '/snippets/schemas/v3/genericGitHost.schema.mdx'

Sourcebot can sync code from generic git repositories stored in a local directory. This can be helpful in scenarios where you already have a large number of repos already checked out. Local repositories are treated as **read-only**, meaing Sourcebot will **not** `git fetch` new revisions.
Sourcebot can sync code from generic git repositories stored in a local directory. This can be helpful in scenarios where you already have a large number of repos already checked out. Local repositories are treated as **read-only**, meaning Sourcebot will **not** `git fetch` new revisions.

## Getting Started

Expand All @@ -27,7 +27,7 @@ To get Sourcebot to index these repositories:

<Steps>
<Step title="Mount a volume">
We need to mount a docker volume to the `repos` directory so Sourcebot can read it's contents. Sourcebot will **not** write to local repositories, so we can mount a seperate **read-only** volume:
We need to mount a docker volume to the `repos` directory so Sourcebot can read it's contents. Sourcebot will **not** write to local repositories, so we can mount a separate **read-only** volume:

``` bash
docker run \
Expand Down
6 changes: 3 additions & 3 deletions docs/snippets/schemas/v2/index.schema.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -685,7 +685,7 @@
"type": "string",
"pattern": ".+"
},
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always exluded.",
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always excluded.",
"default": [],
"examples": [
[
Expand Down Expand Up @@ -1387,7 +1387,7 @@
"type": "string",
"pattern": ".+"
},
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always exluded.",
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always excluded.",
"default": [],
"examples": [
[
Expand Down Expand Up @@ -2171,7 +2171,7 @@
"type": "string",
"pattern": ".+"
},
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always exluded.",
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always excluded.",
"default": [],
"examples": [
[
Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/repoCompileUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ export const compileBitbucketConfig = async (
throw new Error(`No links found for ${isServer ? 'server' : 'cloud'} repo ${repoName}`);
}

// In server case we get an array of lenth == 1 links in the self field, while in cloud case we get a single
// In server case we get an array of length == 1 links in the self field, while in cloud case we get a single
// link object in the html field
const link = isServer ? (repoLinks.self as { name: string, href: string }[])?.[0] : repoLinks.html as { href: string };
if (!link || !link.href) {
Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/repoManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ export class RepoManager implements IRepoManager {
// We can no longer use repo.cloneUrl directly since it doesn't contain the token for security reasons. As a result, we need to
// fetch the token here using the connections from the repo. Multiple connections could be referencing this repo, and each
// may have their own token. This method will just pick the first connection that has a token (if one exists) and uses that. This
// may technically cause syncing to fail if that connection's token just so happens to not have access to the repo it's referrencing.
// may technically cause syncing to fail if that connection's token just so happens to not have access to the repo it's referencing.
private async getCloneCredentialsForRepo(repo: RepoWithConnections, db: PrismaClient): Promise<{ username?: string, password: string } | undefined> {

for (const { connection } of repo.connections) {
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ The Sourcebot MCP server gives your LLM agents the ability to fetch code context

- Building custom LLM horizontal agents like like compliance auditing agents, migration agents, etc.
- _"Find all instances of hardcoded credentials"_
- _"Identify repositories that depend on this depreacted api"_
- _"Identify repositories that depend on this deprecated api"_


## Getting Started
Expand Down
8 changes: 4 additions & 4 deletions packages/schemas/src/v2/index.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,7 @@ const schema = {
"type": "string",
"pattern": ".+"
},
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always exluded.",
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always excluded.",
"default": [],
"examples": [
[
Expand Down Expand Up @@ -1386,7 +1386,7 @@ const schema = {
"type": "string",
"pattern": ".+"
},
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always exluded.",
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always excluded.",
"default": [],
"examples": [
[
Expand Down Expand Up @@ -2170,7 +2170,7 @@ const schema = {
"type": "string",
"pattern": ".+"
},
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always exluded.",
"description": "List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always excluded.",
"default": [],
"examples": [
[
Expand Down Expand Up @@ -2258,4 +2258,4 @@ const schema = {
},
"additionalProperties": false
} as const;
export { schema as indexSchema };
export { schema as indexSchema };
2 changes: 1 addition & 1 deletion packages/schemas/src/v2/index.type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ export interface LocalConfig {
watch?: boolean;
exclude?: {
/**
* List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always exluded.
* List of paths relative to the provided `path` to exclude from the index. .git, .hg, and .svn are always excluded.
*/
paths?: string[];
};
Expand Down
2 changes: 1 addition & 1 deletion packages/shared/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ This package contains shared code between the backend & webapp packages.

### Why two index files?

This package contains two index files: `index.server.ts` and `index.client.ts`. There is some code in this package that will only work in a Node.JS runtime (e.g., because it depends on the `fs` pacakge. Entitlements are a good example of this), and other code that is runtime agnostic (e.g., `constants.ts`). To deal with this, we these two index files export server code and client code, respectively.
This package contains two index files: `index.server.ts` and `index.client.ts`. There is some code in this package that will only work in a Node.JS runtime (e.g., because it depends on the `fs` package. Entitlements are a good example of this), and other code that is runtime agnostic (e.g., `constants.ts`). To deal with this, we these two index files export server code and client code, respectively.

For package consumers, the usage would look like the following:
- Server: `import { ... } from @sourcebot/shared`
Expand Down
6 changes: 3 additions & 3 deletions packages/web/src/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ export const withOrgMembership = async <T>(userId: string, domain: string, fn: (
return notFound("User not a member of this organization");
}

const getAuthorizationPrecendence = (role: OrgRole): number => {
const getAuthorizationPrecedence = (role: OrgRole): number => {
switch (role) {
case OrgRole.GUEST:
return 0;
Expand All @@ -181,7 +181,7 @@ export const withOrgMembership = async <T>(userId: string, domain: string, fn: (
}


if (getAuthorizationPrecendence(membership.role) < getAuthorizationPrecendence(minRequiredRole)) {
if (getAuthorizationPrecedence(membership.role) < getAuthorizationPrecedence(minRequiredRole)) {
return {
statusCode: StatusCodes.FORBIDDEN,
errorCode: ErrorCode.INSUFFICIENT_PERMISSIONS,
Expand Down Expand Up @@ -738,7 +738,7 @@ export const getRepoInfoByName = async (repoName: string, domain: string) => sew
// In this scenario, both repos will be named "github.com/sourcebot-dev/sourcebot".
// We will leave this as an edge case for now since it's unlikely to happen in practice.
//
// @v4-todo: we could add a unique contraint on repo name + orgId to help de-duplicate
// @v4-todo: we could add a unique constraint on repo name + orgId to help de-duplicate
// these cases.
// @see: repoCompileUtils.ts
const repo = await prisma.repo.findFirst({
Expand Down
8 changes: 4 additions & 4 deletions packages/web/src/app/[domain]/browse/hooks/useBrowseParams.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@ export const useBrowseParams = () => {
}

const rawPath = pathname.substring(startIndex + '/browse/'.length);
const sentinalIndex = rawPath.search(/\/-\/(tree|blob)\//);
if (sentinalIndex === -1) {
const sentinelIndex = rawPath.search(/\/-\/(tree|blob)\//);
if (sentinelIndex === -1) {
throw new Error(`Invalid browse pathname: "${pathname}" - expected to contain "/-/(tree|blob)/" pattern`);
}

const repoAndRevisionName = rawPath.substring(0, sentinalIndex).split('@');
const repoAndRevisionName = rawPath.substring(0, sentinelIndex).split('@');
const repoName = repoAndRevisionName[0];
const revisionName = repoAndRevisionName.length > 1 ? repoAndRevisionName[1] : undefined;

const { path, pathType } = ((): { path: string, pathType: 'tree' | 'blob' } => {
const path = rawPath.substring(sentinalIndex + '/-/'.length);
const path = rawPath.substring(sentinelIndex + '/-/'.length);
const pathType = path.startsWith('tree/') ? 'tree' : 'blob';

// @note: decodedURIComponent is needed here incase the path contains a space.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ test('splitQuery groups all parts together when a quote capture group is not clo
expect(cursorIndex).toBe(0);
});

test('splitQuery correclty locates the cursor index given the cursor position (1)', () => {
test('splitQuery correctly locates the cursor index given the cursor position (1)', () => {
const query = 'foo bar "fizz buzz"';

const { queryParts: parts1, cursorIndex: index1 } = splitQuery(query, 0);
Expand All @@ -50,7 +50,7 @@ test('splitQuery correclty locates the cursor index given the cursor position (1
expect(parts3[index3]).toBe('"fizz buzz"');
});

test('splitQuery correclty locates the cursor index given the cursor position (2)', () => {
test('splitQuery correctly locates the cursor index given the cursor position (2)', () => {
const query = 'a b';
expect(splitQuery(query, 0).cursorIndex).toBe(0);
expect(splitQuery(query, 1).cursorIndex).toBe(0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ export { SearchSuggestionsBox };

export const splitQuery = (query: string, cursorPos: number) => {
const queryParts = [];
const seperator = " ";
const separator = " ";
let cursorIndex = 0;
let accumulator = "";
let isInQuoteCapture = false;
Expand All @@ -452,7 +452,7 @@ export const splitQuery = (query: string, cursorPos: number) => {
isInQuoteCapture = !isInQuoteCapture;
}

if (!isInQuoteCapture && query[i] === seperator) {
if (!isInQuoteCapture && query[i] === separator) {
queryParts.push(accumulator);
accumulator = "";
continue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export const useSuggestionModeAndQuery = ({
const suggestionModeMappings = useSuggestionModeMappings();

const { suggestionQuery, suggestionMode } = useMemo<{ suggestionQuery: string, suggestionMode: SuggestionMode }>(() => {
// When suggestions are not enabled, fallback to using a sentinal
// When suggestions are not enabled, fallback to using a sentinel
// suggestion mode of "none".
if (!isSuggestionsEnabled) {
return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export const SyntaxReferenceGuide = () => {
<DialogHeader>
<DialogTitle>Syntax Reference Guide</DialogTitle>
<DialogDescription className="text-sm text-foreground">
Queries consist of space-seperated regular expressions. Wrapping expressions in <Code>{`""`}</Code> combines them. By default, a file must have at least one match for each expression to be included.
Queries consist of space-separated regular expressions. Wrapping expressions in <Code>{`""`}</Code> combines them. By default, a file must have at least one match for each expression to be included.
</DialogDescription>
</DialogHeader>
<Table>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ export function ChangeOrgNameCard({ orgName, currentUserRole }: ChangeOrgNameCar
<CardTitle>
Organization Name
</CardTitle>
<CardDescription>{`Your organization's visible name within Sourceobot. For example, the name of your company or department.`}</CardDescription>
<CardDescription>{`Your organization's visible name within Sourcebot. For example, the name of your company or department.`}</CardDescription>
</CardHeader>
<CardContent>
<Form {...form}>
Expand Down
2 changes: 1 addition & 1 deletion packages/web/src/app/components/syntaxReferenceGuide.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export const SyntaxReferenceGuide = () => {
<DialogHeader>
<DialogTitle>Syntax Reference Guide</DialogTitle>
<DialogDescription className="text-sm text-foreground">
Queries consist of space-seperated regular expressions. Wrapping expressions in <Code>{`""`}</Code> combines them. By default, a file must have at least one match for each expression to be included.
Queries consist of space-separated regular expressions. Wrapping expressions in <Code>{`""`}</Code> combines them. By default, a file must have at least one match for each expression to be included.
</DialogDescription>
</DialogHeader>
<Table>
Expand Down
2 changes: 1 addition & 1 deletion packages/web/src/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ export const { handlers, signIn, signOut, auth } = NextAuth({
// to the client.
session.user = {
...session.user,
// Propogate the userId to the session.
// Propagate the userId to the session.
id: token.userId,
}
return session;
Expand Down
2 changes: 1 addition & 1 deletion packages/web/src/ee/features/billing/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export const createOnboardingSubscription = async (domain: string) => sew(() =>
return {
statusCode: StatusCodes.BAD_REQUEST,
errorCode: ErrorCode.SUBSCRIPTION_ALREADY_EXISTS,
message: "Attemped to create a trial subscription for an organization that already has an active subscription",
message: "Attempted to create a trial subscription for an organization that already has an active subscription",
} satisfies ServiceError;
}

Expand Down
2 changes: 1 addition & 1 deletion packages/web/src/features/agents/review-agent/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const rules = [
"Do NOT provide general feedback, summaries, explanations of changes, or praises for making good additions.",
"Do NOT provide any advice that is not actionable or directly related to the changes.",
"Do NOT provide any comments or reviews on code that you believe is good, correct, or a good addition. Your job is only to identify issues and provide feedback on how to fix them.",
"If a review for a chunk contains different reviews at different line ranges, return a seperate review object for each line range.",
"If a review for a chunk contains different reviews at different line ranges, return a separate review object for each line range.",
"Focus solely on offering specific, objective insights based on the given context and refrain from making broad comments about potential impacts on the system or question intentions behind the changes.",
"Keep comments concise and to the point. Every comment must highlight a specific issue and provide a clear and actionable solution to the developer.",
"If there are no issues found on a line range, do NOT respond with any comments. This includes comments such as \"No issues found\" or \"LGTM\"."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export const generateDiffReviewPrompt = async (diff: sourcebot_diff, context: so
logger.debug("Executing generate_diff_review_prompt");

const prompt = `
You are an expert software engineer that excells at reviewing code changes. Given the input, additional context, and rules defined below, review the code changes and provide a detailed review. The review you provide
You are an expert software engineer that excels at reviewing code changes. Given the input, additional context, and rules defined below, review the code changes and provide a detailed review. The review you provide
must conform to all of the rules defined below. The output format of your review must conform to the output format defined below.

# Input
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ export type FileTreeNode = Omit<RawFileTreeNode, 'children'> & {
children: FileTreeNode[];
}

const buildCollapsableTree = (tree: RawFileTreeNode): FileTreeNode => {
const buildCollapsibleTree = (tree: RawFileTreeNode): FileTreeNode => {
return {
...tree,
isCollapsed: true,
children: tree.children.map(buildCollapsableTree),
children: tree.children.map(buildCollapsibleTree),
}
}

Expand All @@ -40,16 +40,16 @@ interface PureFileTreePanelProps {
}

export const PureFileTreePanel = ({ tree: _tree, path }: PureFileTreePanelProps) => {
const [tree, setTree] = useState<FileTreeNode>(buildCollapsableTree(_tree));
const [tree, setTree] = useState<FileTreeNode>(buildCollapsibleTree(_tree));
const scrollAreaRef = useRef<HTMLDivElement>(null);
const { navigateToPath } = useBrowseNavigation();
const { repoName, revisionName } = useBrowseParams();
const { prefetchFileSource } = usePrefetchFileSource();

// @note: When `_tree` changes, it indicates that a new tree has been loaded.
// In that case, we need to rebuild the collapsable tree.
// In that case, we need to rebuild the collapsible tree.
useEffect(() => {
setTree(buildCollapsableTree(_tree));
setTree(buildCollapsibleTree(_tree));
}, [_tree]);

const setIsCollapsed = useCallback((path: string, isCollapsed: boolean) => {
Expand Down
Loading