Skip to content

Commit 2c10074

Browse files
authored
Merge branch 'develop' into feat-server-ia
2 parents c40805f + e1832b2 commit 2c10074

86 files changed

Lines changed: 4870 additions & 812 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CLAUDE.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
77
@AGENTS.md
88
@taste.md
99

10+
## Commit messages
11+
12+
@commit-guidelines.md
13+
1014
## Linting and Formatting
1115

1216
Python (via ruff — runs on pre-commit):

CODEOWNERS

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
# will be the default reviewers for everything in the repository unless a later
33
# match overrides them.
44

5-
# Catch all.
6-
* @ssiyad
7-
85
# Wildcards.
96
nginx.conf @adityahase
107
*server @adityahase

commit-guidelines.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Commit guidelines
2+
3+
Guidelines for writing good commit messages in this project.
4+
5+
## Use one convention
6+
7+
Use [Conventional Commits](https://www.conventionalcommits.org/).
8+
9+
- Use sentence case for the title and the body. The first letter of the
10+
description (the word right after the scope's `:`) is capital.
11+
- Always add scopes.
12+
- Use lowercase for the type and scope. Not title or capital. Not camel case.
13+
- Hyphenate. Don't use snake case.
14+
15+
Example: `fix(site): Mark bahrain backups unavailable before offsite delete`
16+
17+
## Write descriptive messages
18+
19+
Messages must give sufficient information about the change and the context
20+
of the change. Changes like these don't add anything:
21+
22+
```
23+
fix: added required doctypes
24+
fix: updated cluster.py
25+
```
26+
27+
If the title isn't enough, write a body.
28+
29+
## Write bodies
30+
31+
A body is always better.
32+
33+
Most changes aren't trivial. Try to explain why you're making the change.
34+
35+
## Explain choices
36+
37+
You are making choices all the time. Explain why that choice. Why not an
38+
alternative?
39+
40+
## Link references
41+
42+
Some references might be lost over time. We'll take what we can get. Link
43+
what's relevant:
44+
45+
- Sentry issues / events
46+
- Error logs
47+
- Reports (error log analysis, stuck scheduled jobs, etc.)
48+
- Insights charts / dashboards
49+
- Code (commits, lines, PRs)
50+
- External (docs, blogs, StackOverflow)
51+
52+
Some of this can go in the PR comments. But keep some information in the
53+
commit messages as well.

dashboard/src/App.vue

Lines changed: 69 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,113 @@
11
<template>
2-
<div class="flex flex-col md:flex-row h-full">
3-
<AppSidebar v-if="!isSignupFlow && !isHideSidebar && $session.user && $team?.doc && route.name !== 'Login'" />
2+
<div class="flex flex-col md:flex-row h-full">
3+
<AppSidebar
4+
v-if="!isSignupFlow && !isHideSidebar && $session.user && $team?.doc && route.name !== 'Login'"
5+
/>
46

5-
<div class="w-full overflow-auto z-0" id="scrollContainer">
6-
<div class="border bg-surface-red-2 px-5 py-3 text-base text-ink-red-4" v-if="
7+
<div class="w-full overflow-auto z-0" id="scrollContainer">
8+
<div
9+
class="border bg-surface-red-2 px-5 py-3 text-base text-ink-red-4"
10+
v-if="
711
!isSignupFlow &&
812
!isSiteLogin &&
913
!$session.user &&
1014
!$route.meta.isLoginPage
11-
">
12-
You are not logged in.
13-
<router-link to="/login" class="underline">Login</router-link> to
14-
access dashboard.
15-
</div>
15+
"
16+
>
17+
You are not logged in.
18+
<router-link to="/login" class="underline">Login</router-link>
19+
to access dashboard.
20+
</div>
1621

17-
<router-view />
18-
</div>
19-
</div>
22+
<router-view />
23+
</div>
24+
</div>
2025

21-
<Toaster position="top-right"
22-
:toastOptions="{ class: 'text-sm prose-sm dark:bg-surface-cards dark:border-outline-gray-2 text-ink-gray-9' }" />
23-
<component v-for="dialog in dialogs" :is="dialog" :key="dialog.id" />
24-
<SearchModal v-if="searchModalOpen" />
26+
<Toaster
27+
position="top-right"
28+
:toastOptions="{ class: 'text-sm prose-sm dark:bg-surface-cards dark:border-outline-gray-2 text-ink-gray-9' }"
29+
/>
30+
<component v-for="dialog in dialogs" :is="dialog" :key="dialog.id" />
31+
<SearchModal v-if="searchModalOpen" />
32+
<PartnerRegistrationModal
33+
v-if="partnerRegistrationModalOpen"
34+
v-model="partnerRegistrationModalOpen"
35+
/>
2536
</template>
2637

2738
<script setup>
28-
import { computed, defineAsyncComponent, provide, ref, watch } from "vue";
29-
import { useRoute } from "vue-router";
30-
import { Toaster } from "vue-sonner";
31-
import SearchModal from "@/components/navigation/search/Popup.vue";
32-
import { useSearch } from "@/components/navigation/search/utils";
33-
import { searchModalOpen } from "@/data/ui";
34-
import { initTheme } from "@/utils/useTheme";
35-
import { session } from "./data/session.js";
36-
import { getTeam } from "./data/team";
37-
import { dialogs } from "./utils/components";
39+
import { computed, defineAsyncComponent, provide, ref, watch } from 'vue'
40+
import { useRoute } from 'vue-router'
41+
import { Toaster } from 'vue-sonner'
42+
import SearchModal from '@/components/navigation/search/Popup.vue'
43+
import { useSearch } from '@/components/navigation/search/utils'
44+
import { partnerRegistrationModalOpen, searchModalOpen } from '@/data/ui'
45+
import { initTheme } from '@/utils/useTheme'
46+
import { session } from './data/session.js'
47+
import { getTeam } from './data/team'
48+
import { dialogs } from './utils/components'
3849
3950
import "@/styles/global.css"
4051
4152
const AppSidebar = defineAsyncComponent(
42-
() => import("./components/navigation/sidebar/Sidebar.vue"),
43-
);
53+
() => import('./components/navigation/sidebar/Sidebar.vue'),
54+
)
55+
const PartnerRegistrationModal = defineAsyncComponent(
56+
() => import('./onboarding/modal/PartnerOnboardingModal.vue'),
57+
)
4458
45-
const route = useRoute();
46-
const team = getTeam();
59+
const route = useRoute()
60+
const team = getTeam()
4761
4862
const isHideSidebar = computed(() => {
4963
const alwaysHideSidebarRoutes = [
50-
"Site Login",
51-
"SignupLoginToSite",
52-
"SignupSetup",
53-
];
54-
const alwaysHideSidebarPaths = ["/dashboard/site-login"];
64+
'Site Login',
65+
'SignupLoginToSite',
66+
'SignupSetup',
67+
]
68+
const alwaysHideSidebarPaths = ['/dashboard/site-login']
5569
56-
if (!session.user) return false;
70+
if (!session.user) return false
5771
if (
5872
alwaysHideSidebarRoutes.includes(route.name) ||
5973
alwaysHideSidebarPaths.includes(window.location.pathname)
6074
)
61-
return true;
75+
return true
6276
6377
return (
6478
route.meta.hideSidebar && session.user && team?.doc?.hide_sidebar === true
65-
);
66-
});
79+
)
80+
})
6781
6882
const isSignupFlow = ref(
69-
window.location.pathname.startsWith("/dashboard/create-site") ||
70-
window.location.pathname.startsWith("/dashboard/setup-account") ||
71-
window.location.pathname.startsWith("/dashboard/site-login") ||
72-
window.location.pathname.startsWith("/dashboard/signup"),
73-
);
74-
const isSiteLogin = ref(window.location.pathname.endsWith("/site-login"));
83+
window.location.pathname.startsWith('/dashboard/create-site') ||
84+
window.location.pathname.startsWith('/dashboard/setup-account') ||
85+
window.location.pathname.startsWith('/dashboard/site-login') ||
86+
window.location.pathname.startsWith('/dashboard/signup'),
87+
)
88+
const isSiteLogin = ref(window.location.pathname.endsWith('/site-login'))
7589
7690
watch(
7791
() => route.name,
7892
() => {
7993
isSignupFlow.value =
80-
window.location.pathname.startsWith("/dashboard/create-site") ||
81-
window.location.pathname.startsWith("/dashboard/setup-account") ||
82-
window.location.pathname.startsWith("/dashboard/site-login") ||
83-
window.location.pathname.startsWith("/dashboard/signup");
94+
window.location.pathname.startsWith('/dashboard/create-site') ||
95+
window.location.pathname.startsWith('/dashboard/setup-account') ||
96+
window.location.pathname.startsWith('/dashboard/site-login') ||
97+
window.location.pathname.startsWith('/dashboard/signup')
8498
},
85-
);
99+
)
86100
87-
provide("team", team);
88-
provide("session", session);
101+
provide('team', team)
102+
provide('session', session)
89103
90104
watch(
91105
() => team?.doc?.onboarding?.complete,
92106
(x) => {
93-
if (x) useSearch();
107+
if (x) useSearch()
94108
},
95109
{ once: true },
96-
);
110+
)
97111
98-
initTheme();
112+
initTheme()
99113
</script>

0 commit comments

Comments
 (0)