Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Feature] 版本化声明式原生 UI 组件树与宿主 Renderer 接入

Open
#1,209 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
12/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
swift

Research direction

The payload names no source files or tests. Start with PR #1206 and the linked design note on the public extension contract, since this issue is a follow-up to that review. The first deliverable is an agreed, versioned UI Schema, which the payload says is still open to contract review. Done means that schema and the macOS adapter plan are settled enough to split into smaller issues.

Written by the indexing model from the issue text.

Description

enhancement review: high

📦 迁移自 Lithe-IDEA/Lithe-IDEA#40
原作者 arkleselect · 创建于 2026-10-13 14:57 UTC · 原状态 OPEN


本任务来自 PR #1206 的架构定位审查,属于后续阶段,不要求在 #1206 实现。当前 pluginAPIVersion=2 的字段、校验和兼容性保持不变。总跟踪 #1183、迁移 #1186,端到端验收 #1184。

设计说明:公共扩展契约与原生 Provider 接入方向。

目标

第三方插件通过 JSON UI 组件树接入原生界面;复杂内置或受信任原生内容通过宿主 Native View/Renderer Factory 注册,二者共享 #1206 的窗口管理。

工作范围与验收

  • 单独版本化 UI Schema,定义 Tree/List/Form/Input/Button、数据源、事件、稳定组件 ID 与状态更新;具体字段随契约评审确定。
  • macOS 使用 SwiftUI/AppKit 等原生适配器,保留宿主主题、键盘、焦点、IME、无障碍、标题与共享控件规范。
  • 原生 Tree + 独立刷新命令,经授权 Provider 获取数据;不为刷新命令造空窗口。
  • 组件树更新和异步事件有本地预算、取消和失效结果保护;禁用/恢复和布局持久化有端到端证据。
  • Native View/Renderer Factory 面向内置或受信任原生模块,共用贡献 ID、停靠、显隐和 ModuleRuntime 生命周期。
  • Windows 通过自己的宿主适配共享 JSON 与 fixtures,不复制 SwiftUI 或平台视图类型。

非目标

不引入插件 HTML/Webview/第三方前端框架,不恢复任意动态第三方 Swift Bundle;其 ABI、签名、分发及隔离另行设计。不改变 API v2 文本窗口兼容性。

Dominant language
TypeScript
Stars
1.8k
Forks
151
Avg merge
12h 15m
Merged PRs (30d)
270

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from 1lck/Lithe-IDEA

All issues in 1lck/Lithe-IDEA

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.