Skip to content

Comments

docs: added Agent Description Standard page in Technical Docs#17

Open
pia-roettcher wants to merge 2 commits intomainfrom
agent_description
Open

docs: added Agent Description Standard page in Technical Docs#17
pia-roettcher wants to merge 2 commits intomainfrom
agent_description

Conversation

@pia-roettcher
Copy link
Contributor

No description provided.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a new documentation page for the Agent Description Standard to the technical documentation section. This standard provides guidelines for how AI agents should be described in the MASUMI Registry, helping developers create consistent, comprehensive, and discoverable agent descriptions.

  • Adds a new documentation page defining the Agent Description Standard with templates and best practices
  • Updates navigation metadata to include the new documentation page in the technical documentation section
  • Provides both an annotated example template and a raw template for agent descriptions

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

File Description
content/docs/documentation/technical-documentation/meta.json Adds "agent-description-standard" entry to the technical documentation navigation menu
content/docs/documentation/technical-documentation/agent-description-standard.mdx New comprehensive documentation page with templates, examples, and best practices for describing AI agents
content/docs/documentation/meta.json Adds "technical-documentation/agent-description-standard" entry to the main documentation navigation structure

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


```jsx
## Overview
Provide a clear, professional overview of your agents service.
Copy link

Copilot AI Dec 9, 2025

Choose a reason for hiding this comment

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

Grammar error: "agents" should be "agent's" (possessive form). The phrase should read "your agent's service" to indicate the service belongs to the agent.

Suggested change
Provide a clear, professional overview of your agents service.
Provide a clear, professional overview of your agent's service.

Copilot uses AI. Check for mistakes.

- **User Input:** [What data the user provides]
- **Data Collection:** [Where and how data is sourced]
- **Processing:** [How the agent analyses and extracts patterns]
Copy link

Copilot AI Dec 9, 2025

Choose a reason for hiding this comment

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

Spelling inconsistency: "analyses" should be "analyzes" to match American English spelling used elsewhere in the document (see line 41 which uses "analyzes").

Suggested change
- **Processing:** [How the agent analyses and extracts patterns]
- **Processing:** [How the agent analyzes and extracts patterns]

Copilot uses AI. Check for mistakes.

## Informative Agent Description Standard with examples

```jsx
Copy link

Copilot AI Dec 9, 2025

Choose a reason for hiding this comment

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

Incorrect code block language identifier. The content is markdown/text, not JSX. Consider using markdown or (no language identifier) instead of ```jsx to properly indicate the content type. JSX is for JavaScript XML syntax, not markdown templates.

Suggested change
```jsx
```markdown

Copilot uses AI. Check for mistakes.

## Raw Agent Description Format

```jsx
Copy link

Copilot AI Dec 9, 2025

Choose a reason for hiding this comment

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

Incorrect code block language identifier. The content is markdown/text, not JSX. Consider using markdown or (no language identifier) instead of ```jsx to properly indicate the content type. JSX is for JavaScript XML syntax, not markdown templates.

Suggested change
```jsx
```markdown

Copilot uses AI. Check for mistakes.
Comment on lines 23 to 93
## Overview
Provide a clear, professional overview of your agents service.

1. The Problem
Clearly state the user’s challenge or need this agent solves (e.g., lack of real-time trend visibility, inefficient manual work, decision-making delays).

2. The Solution
Explain how the agent solves the problem with AI. Focus on its core logic and outcomes, in one strong paragraph.

3. Key Capabilities
**Capability 1:** [e.g. Detects trends across platforms in real-time]
**Capability 2:** [e.g. Identifies influencers and peak activity]
**Capability 3:** [e.g. Recommends strategic actions based on data]

4. How It Works
**Input - Processing - Output**, broken down as:
- **User Input:** What data the user provides (e.g. keywords, industries)
- **Data Collection:** Where and how data is sourced (e.g. LinkedIn, blogs via API/scraper)
- **Processing:** How the agent analyzes and extracts patterns (model types, tools etc.)
- **Output:** What is returned (e.g. markdown, PDF report, JSON object, dashboard view)

5. Transparency & Data Handling

| Field | Details |
|----------------------|-------------------------------------------------------------------------|
| Processing Location | Secure cloud infrastructure (servers based in [e.g., EU – Frankfurt]) |
| LLMs Used | [Specify model, e.g., GPT-4, Claude 3] for text understanding and summarization |
| Third-Party Tools | List Tools and APIs used by your agent. For example: <br> A) Unsplash API to fetch high-quality images for content generation or design tasks <br> B) Google Cloud Translation API for translating text between multiple languages <br> C) Scrapfly for thorough and targeted site scans |
| Data Usage | Website URLs and crawl data used temporarily for analysis; results may be cached briefly |
| Data Retention | Minimal; data processed in-memory or temporarily cached (no long-term storage) |
| Data Storage Location| Data processed and stored (temporarily) on EU-based infrastructure |
| Security Measures | TLS encryption, access-restricted storage, and internal audit logging |
| Privacy | Fully GDPR/DSGVO-compliant; only publicly accessible website data is analyzed |
| Legal Basis | Data processing based on legitimate interest (Art. 6(1)(f) GDPR) |
| User Rights | Users may request data access, correction, or deletion at any time via our support |
| Access Logs | No personal user tracking; minimal session logging for operational diagnostics only |
| Output Formats | - Structured SEO audit report <br> - Prioritized action plan <br> - Technical issue breakdown |

6. Real-World Impact
Summarize tangible benefits:
- Saves X hours of manual research
- Boosts accuracy of trend recognition
- Enables faster strategic response

7. Who It’s For
- **Enterprises:** Strategy, comms, marketing, foresight
- **Professionals:** Analysts, consultants, media planners
- **Consumers:** (If applicable)
- **General users** (if relevant)

8. How to Use the Agent

**Input Examples**

| Input Field | Example |
|-----------------|-------------|
| Input field 1 | Example 1 |
| Input field 2 | Example 2 |
| Input field 3 | Example 3 |

**Prompt Tips and Limitations**
- “Be specific about topics, time frames, or platforms.”
- “You can request different output formats (e.g. charts, bullet lists, executive summary).”
- “Ask follow-ups to refine or extend the result.”

```

## Raw Agent Description Format

```jsx
# Overview
Copy link

Copilot AI Dec 9, 2025

Choose a reason for hiding this comment

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

Inconsistent heading level in template. Line 23 uses "## Overview" (h2) while line 93 uses "# Overview" (h1). The two templates should use consistent heading levels. Consider using the same heading level (preferably "# Overview") in both the example and raw template formats for consistency.

Copilot uses AI. Check for mistakes.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

5. Transparency & Data Handling

| Field | Details |
|----------------------|-------------------------------------------------------------------------|
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The table header alignment is inconsistent with the raw template. In the raw template (line 123), the header uses centered alignment (:-------------------: | :------:), but here the header uses left alignment without colons. For consistency and better formatting, consider using the same alignment style in both examples.

Suggested change
|----------------------|-------------------------------------------------------------------------|
|:--------------------:|:------------------------------------------------------------------------:|

Copilot uses AI. Check for mistakes.
| Data Retention | Minimal; data processed in-memory or temporarily cached (no long-term storage) |
| Data Storage Location| Data processed and stored (temporarily) on EU-based infrastructure |
| Security Measures | TLS encryption, access-restricted storage, and internal audit logging |
| Privacy | Fully GDPR/DSGVO-compliant; only publicly accessible website data is analyzed |
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The example text contains "GDPR/DSGVO-compliant" where DSGVO is the German acronym for GDPR. This redundancy may be confusing for international users. Consider using just "GDPR-compliant" or clarifying the relationship between the terms in documentation targeting a global audience.

Suggested change
| Privacy | Fully GDPR/DSGVO-compliant; only publicly accessible website data is analyzed |
| Privacy | Fully GDPR-compliant (DSGVO in German); only publicly accessible website data is analyzed |

Copilot uses AI. Check for mistakes.
Comment on lines 122 to 123
| Field | Details |
| :-------------------: | :------: |
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The table header alignment in the raw template is centered (:-------------------: | :------:), but in the informative example (line 46-47), the table uses left alignment without colons. For consistency within the documentation, both tables should use the same alignment style. Consider standardizing on one approach throughout the document.

Copilot uses AI. Check for mistakes.
4. **Actionable Capabilities:** List key capabilities using active verbs, focusing on what the agent does for the user (e.g., "Detects trends", "Identifies influencers", "Recommends actions").
5. **Transparent "How It Works":** Detail the input, data collection, processing, and output steps. Be specific about data sources, models, and output formats.
6. **Comprehensive Transparency & Data Handling:** Fill out all fields in this section thoroughly, ensuring compliance details, security measures, and data handling practices are clearly stated. Be precise about processing and storage locations (e.g., "EU – Frankfurt", not just “AWS Server”).
7. **Quantify Impact:** Summarize tangible benefits using quantifiable metrics where possible (e.g., "Saves X hours," "Boosts accuracy", access to non-public knowledgebase).
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The phrase "access to non-public knowledgebase" appears to be an example that doesn't quite fit with the other quantifiable metrics mentioned in this sentence. It would be clearer to either provide a more concrete quantifiable metric or move this to a separate benefit category, as it describes a capability rather than a measurable impact.

Suggested change
7. **Quantify Impact:** Summarize tangible benefits using quantifiable metrics where possible (e.g., "Saves X hours," "Boosts accuracy", access to non-public knowledgebase).
7. **Quantify Impact:** Summarize tangible benefits using quantifiable metrics where possible (e.g., "Saves X hours per week," "Boosts accuracy by Y%", "Reduces costs by Z%").

Copilot uses AI. Check for mistakes.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 5 out of 7 changed files in this pull request and generated 11 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

return `${jsxKey}=\"${value}\"`;
}).join(' ');

return `<${Component} ${attrsForJsx} width={1200} height={800} className={\`${existingClass} w-full h-auto\`} />`;
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The same magic numbers (1200, 800) for image dimensions are duplicated here. This is a violation of the DRY principle and makes maintenance harder. These should be defined as constants and reused.

Copilot uses AI. Check for mistakes.
Comment on lines 35 to 36
const timeoutPromise = new Promise((_, reject) => {
setTimeout(() => reject(new Error('Request timeout after 30 seconds')), 30000);
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The timeout duration of 30 seconds is hardcoded as a magic number in the error message and the setTimeout call. This should be extracted as a named constant to ensure consistency and easier configuration.

Copilot uses AI. Check for mistakes.
Comment on lines +10 to +13
// Configuration - REPLACE THESE WITH YOUR VALUES
const NOTION_PAGES = [
{
pageId: '28cf3c5366cb80b5bc1bcb72e8749b84', // The Notion page ID (32 char hex string at the end of the page URL)
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The hardcoded page ID in the configuration array should be removed or replaced with a placeholder. Committing actual Notion page IDs to the repository could expose internal documentation structure. Consider moving this to environment variables or using a placeholder value with clear documentation on how to configure it.

Suggested change
// Configuration - REPLACE THESE WITH YOUR VALUES
const NOTION_PAGES = [
{
pageId: '28cf3c5366cb80b5bc1bcb72e8749b84', // The Notion page ID (32 char hex string at the end of the page URL)
// Configuration - REPLACE THESE WITH YOUR VALUES (prefer environment variables)
const NOTION_PAGES = [
{
pageId: process.env.NOTION_PAGE_ID || '[NOTION_PAGE_ID]', // The Notion page ID (32 char hex string at the end of the page URL)

Copilot uses AI. Check for mistakes.

updatedContent = parts.map((part, index) => {
// If this part is a code block (odd indices after split), preserve it
if (codeBlockRegex.test(part)) {
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The regex testing logic is flawed. After splitting by codeBlockRegex, the code attempts to test each part with the same regex pattern. However, regex objects with the global flag ('g') maintain state between matches, and the split operation has already consumed the matches. The current approach of testing codeBlockRegex.test(part) will produce incorrect results. Instead, check if the index is odd (parts at odd indices are the captured groups) or create a new regex without the global flag for the test.

Suggested change
if (codeBlockRegex.test(part)) {
if (index % 2 === 1) {

Copilot uses AI. Check for mistakes.
});

// Initialize NotionToMarkdown
const n2m = new NotionToMarkdown({ notionClient: notion });
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The variable name n2m is cryptic and doesn't follow clear naming conventions. Consider using a more descriptive name like notionToMd or markdownConverter to improve code readability and maintainability.

Suggested change
const n2m = new NotionToMarkdown({ notionClient: notion });
const notionToMarkdown = new NotionToMarkdown({ notionClient: notion });

Copilot uses AI. Check for mistakes.
Comment on lines 185 to 186
<ImageZoom src=\"${lightSrc}\" alt=\"${altText}\" width={1200} height={800} className={\`${existingClass} w-full h-auto block dark:hidden\`} ${sharedAttrs} />
<ImageZoom src=\"${darkSrc}\" alt=\"${altText}\" width={1200} height={800} className={\`${existingClass} w-full h-auto hidden dark:block\`} ${sharedAttrs} />
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

Magic numbers 1200 and 800 are hardcoded for image width and height. These values should be extracted as named constants at the top of the file to improve maintainability and make it easier to adjust image dimensions across all transformations.

Copilot uses AI. Check for mistakes.
.env.example Outdated
@@ -0,0 +1,3 @@
# Notion API Token
# Get your token from: https://www.notion.so/my-integrations
NOTION_TOKEN=nmkr_notion_token_here
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The example token value "nmkr_notion_token_here" appears to be a custom placeholder format. Notion API tokens actually start with "secret_" (for internal integrations) or "ntn_" (for public integrations), not "nmkr_". Using an incorrect format in the example could confuse users about what a valid token looks like.

Suggested change
NOTION_TOKEN=nmkr_notion_token_here
NOTION_TOKEN=secret_notion_token_here

Copilot uses AI. Check for mistakes.

function parseAttributes(attributesString) {
const attributes = {};
const attributeRegex = /([\w-]+)=["']([^"]*)["']/g;
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The regex pattern has an issue with the character class. The pattern uses double quotes inside the character class [^"]* but is itself enclosed in double quotes with the attribute format ["']([^"]*)["']. This will not correctly match attributes with single quotes because the negated character class only excludes double quotes, not single quotes. This could cause the regex to incorrectly capture attribute values that contain single quotes when the attribute itself is single-quoted.

Suggested change
const attributeRegex = /([\w-]+)=["']([^"]*)["']/g;
const attributeRegex = /([\w-]+)=["']([^"']*)["']/g;

Copilot uses AI. Check for mistakes.
Comment on lines 67 to 70
const imageRegexes = [
/!\[[^\]]*\]\(([^)]+)\)/g, // markdown images
/<img[^>]+src=["']([^"']+)["'][^>]*>/g, // img tags
];
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The regex patterns are recreated on every iteration through the outer loop. For better performance, these regex patterns should be created once outside the loop since they don't change between iterations.

Copilot uses AI. Check for mistakes.

if (success) {
// Replace the URL in content - use global replace to catch all occurrences
updatedContent = updatedContent.replaceAll(imageUrl, publicPath);
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The function uses replaceAll which requires Node.js 15.0.0 or higher. The package.json specifies engine requirements, but there's no explicit Node version constraint. If the project needs to support older Node versions, this could cause runtime errors. Consider using a polyfill or the global replace pattern with the 'g' flag instead.

Copilot uses AI. Check for mistakes.
@masumi-network masumi-network deleted a comment from Copilot AI Dec 22, 2025
- Changed static agent description file to use Notion API fetch
- Fixed code scanning alert no. 8: Incomplete URL substring sanitization
- Fixed code scanning alert no. 10: Incomplete string escaping or encoding
- Fixed code scanning alert no. 11: Replacement of a substring with itself
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 8 changed files in this pull request and generated 11 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +91 to +139
// Process each match
for (const match of matches) {
const imageUrl = match[1];

// Skip if it's already a local path
if (imageUrl.startsWith('/synced-images/')) {
continue;
}

// Extract file extension or use default
try {
const urlObj = new URL(imageUrl);
const hostname = urlObj.hostname;

// Skip if it's not a Notion image URL (strict hostname check)
const isNotionHost =
hostname === 'notion.so' ||
hostname === 'www.notion.so' ||
hostname.endsWith('.notion.so') ||
hostname === 'notion-static.com' ||
hostname.endsWith('.notion-static.com');

if (!isNotionHost) {
continue;
}

const urlPath = urlObj.pathname;
const fileName = path.basename(urlPath) || `image-${Date.now()}.png`;
const localPath = path.join(imagesDir, fileName);
const publicPath = `/synced-images/notion/${pageId}/${fileName}`;

// Fetch and save the image with auth token
console.log(`📸 Fetching image: ${imageUrl}`);
const success = await fetchImage(imageUrl, localPath, authToken);

if (success) {
// Replace the URL in content - replace all occurrences
// Use split/join pattern for compatibility (works in all Node versions)
updatedContent = updatedContent.split(imageUrl).join(publicPath);
console.log(`✅ Synced image: ${fileName}`);
} else {
console.log(`❌ Failed to sync image: ${fileName}`);
}
} catch (urlError) {
console.error(`❌ Invalid image URL: ${imageUrl}`, urlError.message);
continue;
}
}
}
Copy link

Copilot AI Dec 22, 2025

Choose a reason for hiding this comment

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

Images are fetched sequentially in the for loop, which could significantly slow down the sync process when there are multiple images. Consider using Promise.all() or Promise.allSettled() to fetch images in parallel, while maintaining a reasonable concurrency limit to avoid overwhelming the server.

Copilot uses AI. Check for mistakes.
Comment on lines +196 to +220
<ImageZoom src=\"${lightSrc}\" alt=\"${altText}\" width={${IMAGE_DEFAULT_WIDTH}} height={${IMAGE_DEFAULT_HEIGHT}} className={\`${existingClass} w-full h-auto block dark:hidden\`} ${sharedAttrs} />
<ImageZoom src=\"${darkSrc}\" alt=\"${altText}\" width={${IMAGE_DEFAULT_WIDTH}} height={${IMAGE_DEFAULT_HEIGHT}} className={\`${existingClass} w-full h-auto hidden dark:block\`} ${sharedAttrs} />
</div>`;
});

// Convert standalone <img> tags
const imgRegex = /<img([^>]+)>/gi;
updatedContent = updatedContent.replace(imgRegex, (match, attributesString) => {
if (match.includes('dark:hidden') || match.includes('hidden dark:block')) {
return match;
}

const attributes = parseAttributes(attributesString);
const isGif = attributes.src && attributes.src.toLowerCase().endsWith('.gif');
const Component = isGif ? 'img' : 'ImageZoom';
const existingClass = attributes.class || '';

const attrsForJsx = Object.entries(attributes)
.filter(([key]) => !['class', 'width', 'height'].includes(key))
.map(([key, value]) => {
const jsxKey = key === 'class' ? 'className' : key;
return `${jsxKey}=\"${value}\"`;
}).join(' ');

return `<${Component} ${attrsForJsx} width={${IMAGE_DEFAULT_WIDTH}} height={${IMAGE_DEFAULT_HEIGHT}} className={\`${existingClass} w-full h-auto\`} />`;
Copy link

Copilot AI Dec 22, 2025

Choose a reason for hiding this comment

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

The hard-coded image dimensions (1200x800) appear in multiple locations in the conversion logic. While constants are defined at the top of the file, extracting the repeated template literal pattern into a helper function would reduce duplication and make the code more maintainable.

Copilot uses AI. Check for mistakes.
}
// Otherwise, escape backslashes and curly braces
return part
.replace(/\\/g, '\\\\')
Copy link

Copilot AI Dec 22, 2025

Choose a reason for hiding this comment

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

The backslash escaping will double-escape backslashes that are already escaped in the content. This could lead to display issues with literal backslashes in the documentation. Consider only escaping backslashes that aren't already escaped, or handle this more carefully to avoid double-escaping.

Suggested change
.replace(/\\/g, '\\\\')
.replace(/(?<!\\)\\(?!\\)/g, '\\\\')

Copilot uses AI. Check for mistakes.
Comment on lines +204 to +208
if (match.includes('dark:hidden') || match.includes('hidden dark:block')) {
return match;
}

const attributes = parseAttributes(attributesString);
Copy link

Copilot AI Dec 22, 2025

Choose a reason for hiding this comment

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

The regex pattern will incorrectly match tags that have been processed and contain "dark:hidden" or "hidden dark:block" anywhere in the tag, not just in the className attribute. This could cause processed images to be skipped when they shouldn't be. Consider checking specifically for these values in the className attribute or using a more precise check.

Suggested change
if (match.includes('dark:hidden') || match.includes('hidden dark:block')) {
return match;
}
const attributes = parseAttributes(attributesString);
const attributes = parseAttributes(attributesString);
const classAttr = attributes.class || attributes.className || '';
if (classAttr.includes('dark:hidden') || classAttr.includes('hidden dark:block')) {
return match;
}

Copilot uses AI. Check for mistakes.
@masumi-network masumi-network deleted a comment from Copilot AI Dec 22, 2025
@masumi-network masumi-network deleted a comment from Copilot AI Dec 22, 2025
@masumi-network masumi-network deleted a comment from Copilot AI Dec 22, 2025
@masumi-network masumi-network deleted a comment from Copilot AI Dec 22, 2025
@masumi-network masumi-network deleted a comment from Copilot AI Dec 22, 2025
@masumi-network masumi-network deleted a comment from Copilot AI Dec 22, 2025
@masumi-network masumi-network deleted a comment from Copilot AI Dec 22, 2025
@pia-roettcher
Copy link
Contributor Author

ready to rebase in my opinion

@pia-roettcher pia-roettcher self-assigned this Dec 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant