Skip to content

Commit

Permalink
chore(release): Test and deploy to Production v8.14.0 (#10620)
Browse files Browse the repository at this point in the history
Signed-off-by: Matt Krick <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Matt Krick <[email protected]>
Co-authored-by: parabol-release-bot[bot] <150284312+parabol-release-bot[bot]@users.noreply.github.com>
Co-authored-by: Terry Acker <[email protected]>
Co-authored-by: Bruce Tian <[email protected]>
Co-authored-by: Nick O'Ferrall <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Georg Bremer <[email protected]>
Co-authored-by: snyk-bot <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: Rafa <[email protected]>
Co-authored-by: Dale Bumblis <[email protected]>
Co-authored-by: Sven Seeberg <[email protected]>
Co-authored-by: github-actions <[email protected]>
  • Loading branch information
14 people authored Dec 18, 2024
1 parent f6ea5e4 commit d61842a
Show file tree
Hide file tree
Showing 17 changed files with 75 additions and 16 deletions.
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "8.13.1"
".": "8.14.0"
}
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ This project adheres to [Semantic Versioning](http://semver.org/).

This CHANGELOG follows conventions [outlined here](http://keepachangelog.com/).

## [8.14.0](https://github.com/ParabolInc/parabol/compare/v8.13.1...v8.14.0) (2024-12-18)


### Added

* get saml config for domain ([#10618](https://github.com/ParabolInc/parabol/issues/10618)) ([2da5af3](https://github.com/ParabolInc/parabol/commit/2da5af3d845cd1bb6b445ca20d3807cd229d150b))
* update suggest group titles ([#10568](https://github.com/ParabolInc/parabol/issues/10568)) ([81043ad](https://github.com/ParabolInc/parabol/commit/81043ad1a1265ca567778f95a5507cb5ae35734b))

## [8.13.1](https://github.com/ParabolInc/parabol/compare/v8.13.0...v8.13.1) (2024-12-18)


Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "An open-source app for building smarter, more agile teams.",
"author": "Parabol Inc. <[email protected]> (http://github.com/ParabolInc)",
"license": "AGPL-3.0",
"version": "8.13.1",
"version": "8.14.0",
"repository": {
"type": "git",
"url": "https://github.com/ParabolInc/parabol"
Expand Down
4 changes: 2 additions & 2 deletions packages/chronos/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "chronos",
"version": "8.13.1",
"version": "8.14.0",
"description": "A cron job scheduler",
"author": "Matt Krick <[email protected]>",
"homepage": "https://github.com/ParabolInc/parabol/tree/master/packages/chronos#readme",
Expand All @@ -25,6 +25,6 @@
},
"dependencies": {
"cron": "^2.3.1",
"parabol-server": "8.13.1"
"parabol-server": "8.14.0"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,11 @@ const ReflectionGroupTitleEditor = (props: Props) => {
const {id: reflectionGroupId, title} = reflectionGroup
const dirtyRef = useRef(false)
const initialTitleRef = useRef(title)
const isLoading = title === ''

const isLoading = title === '' && !dirtyRef.current

const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {
dirtyRef.current = true
const title = e.target.value
commitLocalUpdate(atmosphere, (store) => {
const reflectionGroup = store.get(reflectionGroupId)
Expand Down
1 change: 1 addition & 0 deletions packages/client/mutations/AutogroupMutation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ graphql`
reflectionGroups {
id
title
smartTitle
reflections {
id
plaintextContent
Expand Down
2 changes: 1 addition & 1 deletion packages/client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "An open-source app for building smarter, more agile teams.",
"author": "Parabol Inc. <[email protected]> (http://github.com/ParabolInc)",
"license": "AGPL-3.0",
"version": "8.13.1",
"version": "8.14.0",
"repository": {
"type": "git",
"url": "https://github.com/ParabolInc/parabol"
Expand Down
2 changes: 1 addition & 1 deletion packages/embedder/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "parabol-embedder",
"version": "8.13.1",
"version": "8.14.0",
"description": "A service that computes embedding vectors from Parabol objects",
"author": "Jordan Husney <[email protected]>",
"homepage": "https://github.com/ParabolInc/parabol/tree/master/packages/embedder#readme",
Expand Down
6 changes: 3 additions & 3 deletions packages/gql-executor/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "gql-executor",
"version": "8.13.1",
"version": "8.14.0",
"description": "A Stateless GraphQL Executor",
"author": "Matt Krick <[email protected]>",
"homepage": "https://github.com/ParabolInc/parabol/tree/master/packages/gqlExecutor#readme",
Expand All @@ -25,8 +25,8 @@
},
"dependencies": {
"dd-trace": "^5.0.0",
"parabol-client": "8.13.1",
"parabol-server": "8.13.1",
"parabol-client": "8.14.0",
"parabol-server": "8.14.0",
"undici": "^5.26.2"
}
}
2 changes: 1 addition & 1 deletion packages/integration-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "integration-tests",
"author": "Parabol Inc. <[email protected]> (http://github.com/ParabolInc)",
"license": "AGPL-3.0",
"version": "8.13.1",
"version": "8.14.0",
"description": "",
"main": "index.js",
"scripts": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import dndNoise from 'parabol-client/utils/dndNoise'
import getKysely from '../../../../postgres/getKysely'
import updateGroupTitle from '../updateGroupTitle'
import {GQLContext} from './../../../graphql'
import updateSmartGroupTitle from './updateSmartGroupTitle'

const addReflectionToGroup = async (
reflectionId: string,
Expand Down Expand Up @@ -67,6 +68,11 @@ const addReflectionToGroup = async (
.set({title: oldReflectionGroup.title, smartTitle: smartTitle ?? ''})
.where('id', '=', reflectionGroupId)
.execute()
} else if (smartTitle) {
// smartTitle exists when autogrouping or resetting groups
await updateSmartGroupTitle(reflectionGroupId, smartTitle)
reflectionGroup.smartTitle = smartTitle
reflectionGroup.title = smartTitle
} else {
const meeting = await dataLoader.get('newMeetings').loadNonNull(meetingId)
await updateGroupTitle({
Expand Down
23 changes: 23 additions & 0 deletions packages/server/graphql/private/queries/getSAMLForDomain.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import getKysely from '../../../postgres/getKysely'
import standardError from '../../../utils/standardError'
import {QueryResolvers} from '../resolverTypes'

const getSAMLForDomain: QueryResolvers['getSAMLForDomain'] = async (_parent, {domain}) => {
const pg = getKysely()

const samlResult = await pg
.selectFrom('SAML')
.innerJoin('SAMLDomain', 'SAML.id', 'SAMLDomain.samlId')
.selectAll('SAML')
.where('SAMLDomain.domain', '=', domain.toLowerCase())
.executeTakeFirst()

if (!samlResult) {
return standardError(new Error('No SAML configuration found for domain'))
}
return {
saml: samlResult
}
}

export default getSAMLForDomain
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
"""
Return value for getSAMLForDomain, which could be an error
"""
union GetSAMLForDomainPayload = ErrorPayload | GetSAMLForDomainSuccess
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
type GetSAMLForDomainSuccess {
"""
The SAML configuration
"""
saml: SAML!
}
7 changes: 7 additions & 0 deletions packages/server/graphql/private/typeDefs/Query.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -138,4 +138,11 @@ type Query {
"""
includeInactive: Boolean! = false
): [Organization!]

getSAMLForDomain(
"""
the domain to get the SAML record for
"""
domain: String!
): GetSAMLForDomainPayload
}
4 changes: 2 additions & 2 deletions packages/server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "An open-source app for building smarter, more agile teams.",
"author": "Parabol Inc. <[email protected]> (http://github.com/ParabolInc)",
"license": "AGPL-3.0",
"version": "8.13.1",
"version": "8.14.0",
"repository": {
"type": "git",
"url": "https://github.com/ParabolInc/parabol"
Expand Down Expand Up @@ -128,7 +128,7 @@
"oauth-1.0a": "^2.2.6",
"openai": "^4.53.0",
"oy-vey": "^0.12.1",
"parabol-client": "8.13.1",
"parabol-client": "8.14.0",
"pg": "^8.5.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
Expand Down
8 changes: 5 additions & 3 deletions packages/server/utils/OpenAIServerManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -420,11 +420,11 @@ class OpenAIServerManager {

async generateGroupTitle(reflections: {plaintextContent: string}[]) {
if (!this.openAIApi) return null
const prompt = `Given these related retrospective comments, generate a short (2-4 words) theme or title that captures their essence. The title should be clear and actionable:
const prompt = `Generate a short (2-4 words) theme or title that captures the essence of these related retrospective comments. The title should be clear and actionable.
${reflections.map((r) => r.plaintextContent).join('\n')}
Return only the title, nothing else. Do not include quote marks around the title.`
Important: Respond with ONLY the title itself. Do not include any prefixes like "Title:" or any quote marks. Do not provide any additional explanation.`

try {
const response = await this.openAIApi.chat.completions.create({
Expand All @@ -442,7 +442,9 @@ Return only the title, nothing else. Do not include quote marks around the title
presence_penalty: 0
})
const title =
(response.choices[0]?.message?.content?.trim() as string)?.replaceAll(/['"]/g, '') ?? null
(response.choices[0]?.message?.content?.trim() as string)
?.replace(/^[Tt]itle:*\s*/gi, '') // Remove "Title:" prefix
?.replaceAll(/['"]/g, '') ?? null

return title
} catch (e) {
Expand Down

0 comments on commit d61842a

Please sign in to comment.