Commit Graph

27 Commits

Author SHA1 Message Date
Sacha Al Himdani
4c57d201a4 Make license declarations consistently MIT
The source headers, LICENSE files, and license metadata had drifted
apart. Align the entire project to MIT:

- Convert every source-file header to the MIT text across all comment
  styles (Go, TS, TSX, JS, MJS, SQL, CSS, GraphQL, shell), including
  SPDX-License-Identifier tags
- Set the root and cookie-banner LICENSE files to the MIT text with a
  "MIT License" title line
- Switch the package.json license fields, Docker image label, and
  cookie-banner README to MIT
- Update docs and the genmodels header generator accordingly
- Normalize copyright lines to a single format
  (Copyright (c) <year(s)> Probo Inc <hello@probo.com>.): unify the
  hello@getprobo.com and hello@probo.inc emails to hello@probo.com and
  the comma-separated years to a hyphenated range

Genuine third-party references are intentionally left untouched: the
Lucide icon attributions (Lucide is ISC) and the trivy dependency
license allowlist.

Signed-off-by: Sacha Al Himdani <sacha@probo.com>
2026-07-13 16:21:14 +02:00
Sacha Al Himdani
c7e2fc209f Use probo.com for bare and marketing domain references
Replace the bare `getprobo.com` domain and the `www.getprobo.com`
marketing host with `probo.com` / `www.probo.com` across the codebase.
Functional subdomains (app, console, notification, custom, test,
cookie-banner, compliance) keep their existing `getprobo.com` hosts,
and changelog entries are left untouched.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-06-11 13:46:10 +02:00
Sacha Al Himdani
9ac71f948f Update contact email to hello@probo.com
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-06-09 16:45:23 +02:00
Émile Ré
f5703d390b Enforce Go style rules across codebase
Apply five style rules: convert iota string enums to typed
string constants, replace errors.As with errors.AsType,
merge three-group imports into two groups, fix multiline
parameter/argument formatting, and replace fmt.Sprintf URL
construction with net/url.

Signed-off-by: Émile Ré <emile@probo.com>
2026-05-20 11:46:39 +04:00
Émile Ré
9156d6a16a Add wsl linter and fix
Signed-off-by: Émile Ré <emile@probo.com>
2026-05-20 09:27:28 +04:00
Émile Ré
050073ab3c Fix TextLength to count characters instead of bytes
Use utf8.RuneCountInString so multi-byte characters like é count as one
character. Add a unicode test case to cover this.

Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-09 14:47:48 +04:00
Émile Ré
7cd4606278 Validate document content length by extracted text, not JSON size
Add Node.TextLength() to walk the ProseMirror tree and sum actual user
text. Introduce ProseMirrorDocumentMaxTextLength validator that enforces
a 50k character limit on extracted text, paired with a 500k byte safety
cap on the raw JSON string. Extend e2e tests for content length.

Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-09 14:47:48 +04:00
Émile Ré
ad326224b3 Fix inline code rendering and error handling consistence
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-06 16:01:51 +04:00
Émile Ré
23eaa4ce24 Fix lint
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-06 15:35:58 +04:00
Émile Ré
6d2e9dbe19 Update MCP to handle markdown for all document content tools + fix converter edge case for code fence closing
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-06 15:13:39 +04:00
Émile Ré
24a9459fb9 Move tests to dedicated file for html converter
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-06 15:13:39 +04:00
Émile Ré
5280898eb9 Implement prosemirror markdown renderer
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-06 15:13:38 +04:00
Émile Ré
ab33285c9c Rename files for clarity
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-06 15:13:38 +04:00
Émile Ré
7afab9487c Convert html blocks inside table cells
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 21:32:39 +04:00
Émile Ré
9baeab4889 Add table conversion
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 20:56:37 +04:00
Émile Ré
821f66cc20 Review fixes
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 19:53:25 +04:00
Émile Ré
9bbcba68c0 Add mermaid tiptap extension
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:04:36 +04:00
Émile Ré
a03a2deae1 Fix lint & test
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:28 +04:00
Émile Ré
dda6e41102 Fix html conversion of soft line breaks + rel attr for _blank link targets
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:27 +04:00
Émile Ré
a461410fed prosemirror html conversion unwrapping + table rows collection
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:27 +04:00
Émile Ré
f3982f23f9 Sanitize upon saving
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:27 +04:00
Émile Ré
62e68dfb6f Fix html block to prosemirror default table colspan & rowspan
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:27 +04:00
Émile Ré
9781c7534f Handle mardown html elements parsing with sanitization
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:27 +04:00
Émile Ré
745c52537d Add promisemirror markdown capabilities
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:25 +04:00
Émile Ré
e71e7f1a45 Use prosemirror pkg to render document PDF
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:25 +04:00
Émile Ré
1e55bccdf8 Rename prosemirror file
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:25 +04:00
Émile Ré
79a4e7c781 Create prosemirror structs and HTML conversion logic
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:24 +04:00