Skip to content

Commit f59a187

Browse files
feat: rename plugin from Bondie-Docferry to MediaFerry
- manifest id bondie-docferry -> mediaferry, display name MediaFerry - Rename user-facing strings, default folders, and fallback note names - Keep legacy bondie-docferry prefix on server/storage contracts (auth protocol handler, SecretStorage keys, entitlement key); noted in the engineering docs - READMEs emphasize desktop+mobile support and mobile-first design - Point badges, links, and issue template at MediaFerry-Obsidian-Plugin
1 parent 1c6c19d commit f59a187

13 files changed

Lines changed: 89 additions & 59 deletions

File tree

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
blank_issues_enabled: false
22
contact_links:
33
- name: Report a security vulnerability
4-
url: https://github.com/fyaic/Bondie-Docferry-Obsidian-Plugin/security/advisories/new
4+
url: https://github.com/fyaic/MediaFerry-Obsidian-Plugin/security/advisories/new
55
about: Report security issues privately. Do not open a public issue.

ENGINEERING.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,32 @@
1-
# Bondie-Docferry — Engineering
1+
# MediaFerry — Engineering
22

33
> An Obsidian plugin client for a hosted media-to-note pipeline: one link field in,
44
private Markdown notes out, optional public Shares with a full lifecycle.
55

66
**English** · [中文](ENGINEERING.zh-CN.md)[‹ User README](README.md)
77

8-
Bondie-Docferry is a mobile-first Obsidian plugin (TypeScript, esbuild, no framework)
8+
MediaFerry (id `mediaferry`) is a mobile-first Obsidian plugin (TypeScript, esbuild, no framework)
99
that fronts the hosted Bondie / SynapseHub / DocFerry services. The client owns link
1010
intake, the mobile UI, local settings, native Vault writes, and the explicit sharing
1111
choice. Everything that needs credentials or heavy processing stays server-side.
1212

13+
> **Naming.** The plugin is named **MediaFerry** (id `mediaferry`). Its release
14+
> candidates shipped under the earlier name *Bondie-Docferry*. Internal identifiers
15+
> intentionally keep the legacy `bondie-docferry` prefix because they are server or
16+
> storage contracts: the `obsidian://bondie-docferry-auth` protocol handler (the hosted
17+
> login redirect target), the SecretStorage keys in `src/auth/session.ts` (renaming
18+
> would orphan existing sessions), `PRODUCTION_SERVER_URL`, the `bondie-docferry.pro`
19+
> entitlement key, and the internal view-type/CSS identifiers. The *Bondie-Docferry
20+
> service* in the diagram below is a hosted backend component and keeps its name.
21+
1322
## Architecture
1423

1524
The system flow, end to end:
1625

1726
```mermaid
1827
flowchart TB
1928
User["User on mobile or desktop"]
20-
Plugin["Bondie-Docferry plugin"]
29+
Plugin["MediaFerry plugin"]
2130
Vault["Obsidian Vault\nMarkdown and assets"]
2231
Bondie["Bondie-Docferry service\nproduct session and mobile task facade"]
2332
Hub["SynapseHub\nidentity, membership, and delegated authorization"]
@@ -63,7 +72,7 @@ flowchart LR
6372
| **DocFerry** | Media-to-Note processing, shared quota, public Shares, import payloads | Bondie product session, local Vault access |
6473
| **Obsidian Vault** | User-owned Markdown and imported assets | Hosted processing or public links |
6574

66-
Security properties: Bondie-Docferry and DocFerry keep separate product sessions with no
75+
Security properties: the Bondie-Docferry service and DocFerry keep separate product sessions with no
6776
shared cookies; cross-product calls use short-lived, purpose-bound capabilities; AI and
6877
media provider credentials never leave the hosted DocFerry runtime; the plugin receives
6978
no Auth0 management secret, SynapseHub management token, Stripe secret, provider key, or
@@ -100,7 +109,7 @@ deadline. Job creation sends an `Idempotency-Key` so retries cannot double-submi
100109
Transport errors are tolerated up to 3 times with exponential backoff
101110
(`src/parse/retryPolicy.ts`, status *"Connection interrupted. Reconnecting."*). Past
102111
that, the job is classified as an **interruption** rather than a failure: the pending
103-
record is kept and the UI says *"Reopen Bondie-Docferry to continue your note."* The
112+
record is kept and the UI says *"Reopen MediaFerry to continue your note."* The
104113
same applies when the 3-minute deadline expires while the server is still working.
105114

106115
### Mobile resilience: `pendingParse`

ENGINEERING.zh-CN.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,29 @@
1-
# Bondie-Docferry — 工程文档
1+
# MediaFerry — 工程文档
22

33
> 一个对接托管「媒体转笔记」管线的 Obsidian 插件客户端:一个链接入口进,私密 Markdown 笔记出,可选的公开分享带完整生命周期。
44
55
[English](ENGINEERING.md) · **中文**[‹ 用户文档](README.zh-CN.md)
66

7-
Bondie-Docferry 是一个移动优先的 Obsidian 插件(TypeScript + esbuild,无前端框架),
7+
MediaFerry(id `mediaferry`是一个移动优先的 Obsidian 插件(TypeScript + esbuild,无前端框架),
88
作为托管 Bondie / SynapseHub / DocFerry 服务的客户端。客户端负责链接接入、移动端
99
UI、本地设置、原生 Vault 写入和显式的分享选择;所有需要凭据或重处理的环节都留在
1010
服务端。
1111

12+
> **命名。** 插件名为 **MediaFerry**(id `mediaferry`)。此前的 RC 版本以
13+
> *Bondie-Docferry* 之名发布。内部标识符有意保留旧的 `bondie-docferry` 前缀,因为
14+
> 它们是服务端或存储契约:`obsidian://bondie-docferry-auth` 协议处理器(托管登录的
15+
> 跳转目标)、`src/auth/session.ts` 中的 SecretStorage 键(改名会让现有会话孤儿化)、
16+
> `PRODUCTION_SERVER_URL``bondie-docferry.pro` 权益键,以及内部 view-type/CSS 标识。
17+
> 下图中的 *Bondie-Docferry 服务* 是托管后端组件,保持原名。
18+
1219
## 架构
1320

1421
端到端系统流程:
1522

1623
```mermaid
1724
flowchart TB
1825
User["移动端或桌面端用户"]
19-
Plugin["Bondie-Docferry 插件"]
26+
Plugin["MediaFerry 插件"]
2027
Vault["Obsidian Vault\nMarkdown 与附件"]
2128
Bondie["Bondie-Docferry 服务\n产品会话与移动任务门面"]
2229
Hub["SynapseHub\n身份、会员与委托授权"]
@@ -62,7 +69,7 @@ flowchart LR
6269
| **DocFerry** | Media-to-Note 处理、共享配额、公开 Share、导入载荷 | Bondie 产品会话、本地 Vault 访问 |
6370
| **Obsidian Vault** | 用户所有的 Markdown 与导入附件 | 托管处理或公开链接 |
6471

65-
安全属性:Bondie-Docferry DocFerry 保持相互独立的产品会话、不共享 cookie;
72+
安全属性:Bondie-Docferry 服务与 DocFerry 保持相互独立的产品会话、不共享 cookie;
6673
跨产品调用使用短时效、用途绑定的 capability;AI 与媒体供应商凭据永不离开托管
6774
DocFerry 运行时;插件不会拿到 Auth0 管理 secret、SynapseHub 管理 token、Stripe
6875
secret、供应商 key 或 DocFerry 用户 token。另见
@@ -95,7 +102,7 @@ secret、供应商 key 或 DocFerry 用户 token。另见
95102

96103
传输错误最多容忍 3 次并做指数退避(`src/parse/retryPolicy.ts`,状态显示
97104
*“连接中断。正在重连。”*)。超过次数后,任务被归类为**中断**而非失败:保留
98-
pending 记录,UI 提示 *“重新打开 Bondie-Docferry 继续你的笔记。”* 3 分钟超时而
105+
pending 记录,UI 提示 *“重新打开 MediaFerry 继续你的笔记。”* 3 分钟超时而
99106
服务端仍在处理时同样如此。
100107

101108
### 移动端韧性:`pendingParse`

README.md

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,28 @@
1-
# Bondie-Docferry
1+
# MediaFerry
22

33
> Turn article, audio, and video links into notes — right where they belong: your Obsidian Vault.
44
55
**English** · [中文](README.zh-CN.md)[Engineering ›](ENGINEERING.md)
66

7-
[![Release](https://img.shields.io/github/v/release/fyaic/Bondie-Docferry-Obsidian-Plugin?display_name=tag&style=flat-square)](https://github.com/fyaic/Bondie-Docferry-Obsidian-Plugin/releases/latest)
8-
[![CI](https://img.shields.io/github/actions/workflow/status/fyaic/Bondie-Docferry-Obsidian-Plugin/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/fyaic/Bondie-Docferry-Obsidian-Plugin/actions/workflows/ci.yml)
7+
[![Release](https://img.shields.io/github/v/release/fyaic/MediaFerry-Obsidian-Plugin?display_name=tag&style=flat-square)](https://github.com/fyaic/MediaFerry-Obsidian-Plugin/releases/latest)
8+
[![CI](https://img.shields.io/github/actions/workflow/status/fyaic/MediaFerry-Obsidian-Plugin/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/fyaic/MediaFerry-Obsidian-Plugin/actions/workflows/ci.yml)
99
[![Obsidian](https://img.shields.io/badge/Obsidian-1.11.4%2B-7c3aed?style=flat-square)](manifest.json)
10-
[![License](https://img.shields.io/github/license/fyaic/Bondie-Docferry-Obsidian-Plugin?style=flat-square)](LICENSE)
10+
[![License](https://img.shields.io/github/license/fyaic/MediaFerry-Obsidian-Plugin?style=flat-square)](LICENSE)
1111

1212
You find something worth keeping — an article, a podcast episode, a video. Today that
1313
means a link rotting in a chat thread or a read-later app you never reopen.
1414

15-
Bondie-Docferry turns that link into a real Markdown note inside your Vault. One paste,
15+
MediaFerry turns that link into a real Markdown note inside your Vault. One paste,
1616
and the content becomes something you can read, edit, link, and search — in the app you
1717
already live in.
1818

19+
It runs on desktop **and** on your phone — and the phone is the design target, not an
20+
afterthought. Every flow is built for one hand, a small screen, and the messy reality
21+
of mobile connections.
22+
1923
## One field for every link
2024

21-
<img src="docs/assets/android/home.png" alt="One link field on the Bondie-Docferry Home view" width="360">
25+
<img src="docs/assets/android/home.png" alt="One link field on the MediaFerry Home view" width="360">
2226

2327
**One place to start.** Paste a public DocFerry link, an article, an audio, or a video URL.
2428

@@ -70,9 +74,13 @@ Bondie Docferry/
7074
- Tidy up afterwards: delete the history records of stopped or expired shares without
7175
touching your notes.
7276

73-
## Built for real mobile life
77+
## Built mobile-first — at home on your phone and desktop
78+
79+
MediaFerry works everywhere Obsidian does. Mobile isn't a shrink-to-fit port: the
80+
link field, progress states, and recovery flows are designed for one thumb and an
81+
interrupted connection.
7482

75-
Phones interrupt you — calls, app switches, dead batteries. Bondie-Docferry doesn't lose
83+
Phones interrupt you — calls, app switches, dead batteries. MediaFerry doesn't lose
7684
your work.
7785

7886
- **Come back to finished work.** Processing happens on the service, so if you switch
@@ -121,13 +129,13 @@ keep it.
121129
## Get started
122130

123131
1. You need Obsidian **1.11.4 or later**, on mobile or desktop.
124-
2. **Current status: release candidate.** Bondie-Docferry is under Community plugin
132+
2. **Current status: release candidate.** MediaFerry is under Community plugin
125133
review and not yet in the official directory. The simplest path is to wait for the
126134
directory listing.
127135
3. Testers and reviewers can install manually: download `main.js`, `manifest.json`, and
128-
`styles.css` from the [latest release](https://github.com/fyaic/Bondie-Docferry-Obsidian-Plugin/releases),
129-
drop them into `<vault>/.obsidian/plugins/bondie-docferry/`, restart Obsidian, and
130-
enable Bondie-Docferry in Community plugins.
136+
`styles.css` from the [latest release](https://github.com/fyaic/MediaFerry-Obsidian-Plugin/releases),
137+
drop them into `<vault>/.obsidian/plugins/mediaferry/`, restart Obsidian, and
138+
enable MediaFerry in Community plugins.
131139
4. Tap the **ship icon** in the ribbon (or run **Open home**), paste your first link,
132140
and watch it become a note.
133141

@@ -138,7 +146,7 @@ notes requires a free Bondie account and a DocFerry Pro membership — see below
138146

139147
**Pricing.** Importing public DocFerry shares is free and needs no account. The
140148
Media-to-Note workflow (links → notes), owner Shares, and usage tracking require a
141-
Bondie account with DocFerry Pro. One membership covers both Bondie-Docferry and
149+
Bondie account with DocFerry Pro. One membership covers both MediaFerry and
142150
DocFerry — the plugin never sells a second subscription. Current pricing and billing
143151
are shown by the Bondie Account Center and DocFerry checkout.
144152

@@ -160,12 +168,12 @@ are shown by the Bondie Account Center and DocFerry checkout.
160168
Full details: [Privacy notice](PRIVACY.md) · [Security policy](SECURITY.md) ·
161169
[Support & subscriptions](SUPPORT.md).
162170

163-
**Compatibility.** Obsidian 1.11.4+ · Android and desktop tested · no Node.js or
164-
Electron dependency.
171+
**Compatibility.** Obsidian 1.11.4+ · works on desktop and on mobile · Android and
172+
desktop tested · no Node.js or Electron dependency.
165173

166174
## Project links
167175

168-
[Latest release](https://github.com/fyaic/Bondie-Docferry-Obsidian-Plugin/releases/latest) ·
176+
[Latest release](https://github.com/fyaic/MediaFerry-Obsidian-Plugin/releases/latest) ·
169177
[Changelog](CHANGELOG.md) · [Support](SUPPORT.md) · [Contributing](CONTRIBUTING.md) ·
170178
[Privacy](PRIVACY.md) · [Security](SECURITY.md) · [Engineering docs](ENGINEERING.md)
171179

README.zh-CN.md

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
1-
# Bondie-Docferry
1+
# MediaFerry
22

33
> 把文章、音频、视频链接变成笔记 —— 放在它们本该在的地方:你的 Obsidian 仓库(Vault)。
44
55
[English](README.md) · **中文**[工程文档 ›](ENGINEERING.zh-CN.md)
66

7-
[![Release](https://img.shields.io/github/v/release/fyaic/Bondie-Docferry-Obsidian-Plugin?display_name=tag&style=flat-square)](https://github.com/fyaic/Bondie-Docferry-Obsidian-Plugin/releases/latest)
8-
[![CI](https://img.shields.io/github/actions/workflow/status/fyaic/Bondie-Docferry-Obsidian-Plugin/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/fyaic/Bondie-Docferry-Obsidian-Plugin/actions/workflows/ci.yml)
7+
[![Release](https://img.shields.io/github/v/release/fyaic/MediaFerry-Obsidian-Plugin?display_name=tag&style=flat-square)](https://github.com/fyaic/MediaFerry-Obsidian-Plugin/releases/latest)
8+
[![CI](https://img.shields.io/github/actions/workflow/status/fyaic/MediaFerry-Obsidian-Plugin/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/fyaic/MediaFerry-Obsidian-Plugin/actions/workflows/ci.yml)
99
[![Obsidian](https://img.shields.io/badge/Obsidian-1.11.4%2B-7c3aed?style=flat-square)](manifest.json)
10-
[![License](https://img.shields.io/github/license/fyaic/Bondie-Docferry-Obsidian-Plugin?style=flat-square)](LICENSE)
10+
[![License](https://img.shields.io/github/license/fyaic/MediaFerry-Obsidian-Plugin?style=flat-square)](LICENSE)
1111

1212
你刷到一条值得收藏的东西 —— 一篇文章、一期播客、一个视频。今天的结局往往是:链接烂在聊天记录里,或者躺在一个你再也不会打开的稍后读应用里。
1313

14-
Bondie-Docferry 把这条链接变成你仓库里一篇真正的 Markdown 笔记。粘贴一次,内容就变成你可以阅读、编辑、双向链接、全文搜索的东西 —— 就在你天天用的那个应用里。
14+
MediaFerry 把这条链接变成你仓库里一篇真正的 Markdown 笔记。粘贴一次,内容就变成你可以阅读、编辑、双向链接、全文搜索的东西 —— 就在你天天用的那个应用里。
15+
16+
它在桌面端和手机端都能用 —— 而且手机才是设计目标,不是顺手兼容。所有流程都为
17+
单手操作、小屏幕和真实世界里不稳的移动网络而设计。
1518

1619
## 一个输入框,装下所有链接
1720

18-
<img src="docs/assets/android/home.png" alt="Bondie-Docferry 主界面的唯一链接输入框" width="360">
21+
<img src="docs/assets/android/home.png" alt="MediaFerry 主界面的唯一链接输入框" width="360">
1922

2023
**只有一个起点。** 粘贴公开的 DocFerry 链接、文章、音频或视频网址都可以。
2124

@@ -58,9 +61,12 @@ Bondie Docferry/
5861
- 随时 **停止(Stop)** 一个链接。笔记留在你的仓库里;链接对所有人立刻失效。
5962
- 事后还能收拾干净:删除已停止/已过期分享的历史记录,完全不碰你的笔记。
6063

61-
## 为真实的手机生活而设计
64+
## 移动优先 —— 手机和桌面都是主场
65+
66+
MediaFerry 在 Obsidian 支持的每个平台上都能用。移动端不是缩小版:链接输入框、
67+
进度状态和恢复流程,都是为单手操作和随时可能被打断的连接而设计的。
6268

63-
手机总会打断你 —— 来电、切应用、没电关机。Bondie-Docferry 不会弄丢你的工作。
69+
手机总会打断你 —— 来电、切应用、没电关机。MediaFerry 不会弄丢你的工作。
6470

6571
- **回来时工作还在。** 处理在服务端进行,中途切走应用、甚至 Obsidian 被杀掉,回来时笔记会接着做(保留 24 小时)。
6672
- **可取消、可重试、可删除。** 处理到一半改主意了?取消。网络不好失败了?重试。想清掉临时数据?在 *账户 → 处理数据(Processing data)* 里删除。
@@ -97,15 +103,15 @@ Bondie Docferry/
97103
## 开始使用
98104

99105
1. 需要 Obsidian **1.11.4 或更高版本**,手机端或桌面端均可。
100-
2. **当前状态:发布候选(RC)。** Bondie-Docferry 正在进行社区插件审核,尚未进入官方插件目录。最省事的方式是等目录上架。
101-
3. 测试者和审核者可以手动安装:从 [最新 release](https://github.com/fyaic/Bondie-Docferry-Obsidian-Plugin/releases) 下载 `main.js``manifest.json``styles.css`,放进 `<vault>/.obsidian/plugins/bondie-docferry/`,重启 Obsidian,在社区插件里启用 Bondie-Docferry
106+
2. **当前状态:发布候选(RC)。** MediaFerry 正在进行社区插件审核,尚未进入官方插件目录。最省事的方式是等目录上架。
107+
3. 测试者和审核者可以手动安装:从 [最新 release](https://github.com/fyaic/MediaFerry-Obsidian-Plugin/releases) 下载 `main.js``manifest.json``styles.css`,放进 `<vault>/.obsidian/plugins/mediaferry/`,重启 Obsidian,在社区插件里启用 MediaFerry
102108
4. 点击侧边栏的 **船图标**(或运行 **Open home** 命令),粘贴第一条链接,看它变成笔记。
103109

104110
导入分享开箱即用、无需账户。把文章、音频、视频变成笔记需要免费 Bondie 账户和 DocFerry Pro 会员 —— 见下文。
105111

106112
## 需要知道的事
107113

108-
**定价。** 导入公开 DocFerry 分享免费、无需账户。媒体转笔记(链接 → 笔记)、你创建的分享、用量查看,需要 Bondie 账户和 DocFerry Pro 会员。一个会员同时覆盖 Bondie-Docferry 和 DocFerry —— 插件绝不卖第二份订阅。当前价格与账单条款以 Bondie Account Center 和 DocFerry 收银台页面为准。
114+
**定价。** 导入公开 DocFerry 分享免费、无需账户。媒体转笔记(链接 → 笔记)、你创建的分享、用量查看,需要 Bondie 账户和 DocFerry Pro 会员。一个会员同时覆盖 MediaFerry 和 DocFerry —— 插件绝不卖第二份订阅。当前价格与账单条款以 Bondie Account Center 和 DocFerry 收银台页面为准。
109115

110116
**披露**(Obsidian 社区插件要求):
111117

@@ -119,11 +125,11 @@ Bondie Docferry/
119125

120126
完整细节:[隐私声明](PRIVACY.md) · [安全策略](SECURITY.md) · [支持与订阅](SUPPORT.md)
121127

122-
**兼容性。** Obsidian 1.11.4+ · 已在 Android 和桌面端测试 · 不依赖 Node.js 或 Electron。
128+
**兼容性。** Obsidian 1.11.4+ · 桌面端与移动端都可用 · 已在 Android 和桌面端实测 · 不依赖 Node.js 或 Electron。
123129

124130
## 项目链接
125131

126-
[最新 release](https://github.com/fyaic/Bondie-Docferry-Obsidian-Plugin/releases/latest) ·
132+
[最新 release](https://github.com/fyaic/MediaFerry-Obsidian-Plugin/releases/latest) ·
127133
[更新日志](CHANGELOG.md) · [支持](SUPPORT.md) · [贡献](CONTRIBUTING.md) ·
128134
[隐私](PRIVACY.md) · [安全](SECURITY.md) · [工程文档](ENGINEERING.zh-CN.md)
129135

eslint.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export default defineConfig([
2121
"warn",
2222
{
2323
acronyms: ["API", "URL"],
24-
brands: ["Account Center", "Bondie", "Bondie-Docferry", "DocFerry", "Obsidian"],
24+
brands: ["Account Center", "Bondie", "DocFerry", "MediaFerry", "Obsidian"],
2525
},
2626
],
2727
},

manifest.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
2-
"id": "bondie-docferry",
3-
"name": "Bondie-Docferry",
2+
"id": "mediaferry",
3+
"name": "MediaFerry",
44
"version": "0.1.2",
55
"minAppVersion": "1.11.4",
6-
"description": "Mobile-first link capture, DocFerry import, and share management.",
6+
"description": "Paste an article, audio, or video link and get a Markdown note in your vault. Import DocFerry shares. Built mobile-first: specially optimized for phones, works great on desktop.",
77
"author": "Bondie Labs",
88
"authorUrl": "https://bondie.io",
99
"isDesktopOnly": false

src/constants.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
export const BONDIE_VIEW_TYPE = "bondie-docferry-home";
2-
export const BONDIE_PLUGIN_ID = "bondie-docferry";
3-
export const BONDIE_DISPLAY_NAME = "Bondie-Docferry";
2+
export const BONDIE_PLUGIN_ID = "mediaferry";
3+
export const BONDIE_DISPLAY_NAME = "MediaFerry";

0 commit comments

Comments
 (0)