ЁЯУМ dsh-session-pin

September 4, 2026 ┬╖ View on GitHub

ЁЯУМ dsh-session-pin

  • 1024 рд╕реНрдЯреЛрд░ рдЪреИрдирд▓: рдПрдХ рдмрд╛рд░ npm i -g dsh1024, рдлрд┐рд░ dsh1024 plugin --profile web add dsh-session-pin (deepseek1024.com рдЗрдВрд╕реНрдЯреЙрд▓ рд░реИрдВрдХрд┐рдВрдЧ рдореЗрдВ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

DeepSeek Harness рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рд╕рддреНрд░реЛрдВ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╢реАрд░реНрд╖ рдкрд░ рдкрд┐рди рдХрд░реЗрдВ, рд╣рд░ рдкрд┐рди рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐-рд░рдВрдЧ рджреЗрдВред

рдПрдХ рджреЛрд╣рд░реЗ-рдЪреЗрд╣рд░реЗ (host + browser) рд╡рд╛рд▓рд╛ plugin: рдкрд┐рди рдХреЗ рджреЛ рд╕реНрддрд░, рд╣рд░ рдкрд┐рди рдХреЗ рд▓рд┐рдП 8-рд░рдВрдЧ рдХрд╛ рдмрдЯрди, рдФрд░ рдПрдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЖрдпреЛрдЬрдХ тАФ boards, рдЯреИрдЧ, рд╕рд╣реЗрдЬреЗ рдЧрдП рджреГрд╢реНрдп, рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рд╛рд░рд╛рдВрд╢ рдФрд░ /gotoред

License DSH plugin Node CI Version npm version npm downloads

English ┬╖ чоАф╜Уф╕нцЦЗ ┬╖ Espa├▒ol ┬╖ Portugu├кs ┬╖ рд╣рд┐рдиреНрджреА


Compatibility

рд╕рддрд╣рд╕реНрдерд┐рддрд┐
HarnessDeepSeek Harness 0.1.2-rc.1 (client packages 0.1.2-rc.1)
Node>= 22 (рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЖрдзрд╛рд░)
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдоWeb GUI (рджреЛрд╣рд░рд╛ рдЪреЗрд╣рд░рд╛: host + browser)
рдореЙрдбрд▓рдХреЛрдИ рднреА (рдХреЗрд╡рд▓ UI тАФ рдХреЛрдИ рдореЙрдбрд▓ рдЯреНрд░реИрдлрд╝рд┐рдХ рдирд╣реАрдВ, рдХреЛрдИ рд╕рддреНрд░ рдШрдЯрдирд╛ рдирд╣реАрдВ)
session/pin рдЗрд╡реЗрдВрдЯрдкреНрд░реА-рдлрд╝реНрд▓рд╛рдЗрдЯ рдЧреЗрдЯ: рдЙрди hosts рдкрд░ рдХрднреА рдирд╣реАрдВ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рдЬрд┐рдирдХрд╛ рдЗрд╡реЗрдВрдЯ рд╢рдмреНрджрдХреЛрд╢ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдФрд░ рдЬрд┐рдирдХреЗ append рдиреЗ ignorable рдорд╛рд░реНрдХрд░ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ (0.1.2-rc.1); projection settings cache рдкрд░ degrade рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ 0.1.2-rc.1 (2026-09-04 рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд): рд╕рддреНрд░ рд▓рд┐рдлрд╝рд╛рдлрд╝рд╛ рдЕрдкрдирд╛ ignorable рдлрд╝реАрд▓реНрдб рдХреЗрд╡рд▓ рд╕рдВрдЧреНрд░рд╣реАрдд-рд▓реЙрдЧ рдкрдарди рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рд░рдЦрддрд╛ рд╣реИ - Session.append рдЕрднреА рднреА рдЗрд╕реЗ рд╕реНрдЯреИрдореНрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдЧреЗрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИред

What you get

dsh-session-pin рдЙрди рдмрд╛рддрдЪреАрддреЛрдВ рдХреЛ рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рд╢реАрд░реНрд╖ рдкрд░ рд░рдЦрддрд╛ рд╣реИ рдЬреЛ рдорд╛рдпрдиреЗ рд░рдЦрддреА рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░рдВрдЧ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рдорд┐рд▓ рдЬрд╛рдПрдБ:

  • рдкрд┐рди рдХреЗ рджреЛ рд╕реНрддрд░ тАФ рдкреВрд░реЗ workspace рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ session рдкрд┐рди рдХрд░реЗрдВ; рдкрд┐рди рдХрд┐рдпрд╛ workspace workspace рд╕реВрдЪреА рдореЗрдВ рдФрд░ рдкрд┐рди рдХрд┐рдпрд╛ session рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдЧреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рд╣рд░ рдкрд┐рди рдХрд╛ рдкрдВрдХреНрддрд┐-рд░рдВрдЧ тАФ рд╣рд░ рдкрд┐рди рдХреЗ рдмрд╛рдж рдХрд╛ рд░рдВрдЧ рдмрдЯрди 8-рд░рдВрдЧ рдХреА preset palette рдШреБрдорд╛рддрд╛ рд╣реИ (Shift+рдХреНрд▓рд┐рдХ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИ); рдкрдВрдХреНрддрд┐ рдХреЛ рдмрд╛рдИрдВ рдУрд░ рдПрдХ accent рдкрдЯреНрдЯреА рдФрд░ рдкрд╛рд░рднрд╛рд╕реА рд░рдВрдЧрдд рдорд┐рд▓рддреА рд╣реИред
  • рдЪрд╛рд░ рдкрд┐рди рд╕рддрд╣реЗрдВ тАФ рд╣рд░ рдкрдВрдХреНрддрд┐ рдкрд░ рдПрдХ hover [pin][рд░рдВрдЧ] рдЬреЛрдбрд╝реА, session рд╣реЗрдбрд░ рдореЗрдВ рдПрдХ рдЯреЙрдЧрд▓, pinned рдкреИрдирд▓ рд╡рд╛рд▓реА sidebar рдлреБрдЯ рдХреНрд░рд┐рдпрд╛, рдФрд░ рд╣рд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯрд┐рдХрд╛рдК pinning рдЬреЛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗ рдмрд╛рдж рднреА pin рдФрд░ рд░рдВрдЧ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред
  • рдХреЛрд░ рдореЗрдВ рд╢реВрдиреНрдп рдмрджрд▓рд╛рд╡ тАФ рд╕реНрдЯреЙрдХ DSH Web GUI рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ plugin; рд╣рд░ рд╕рддрд╣ рдкреБрд░рд╛рдиреА рдЖрдзрд╛рд░рд░реЗрдЦрд╛рдУрдВ рдкрд░ рд╕рд╣рдЬ рд░реВрдк рд╕реЗ degrade рд╣реЛ рдЬрд╛рддреА рд╣реИред
тФМтФА Workspaces тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФР
тФВ ЁЯОи Workbench            тЦИтЦИтЦИ             тФВ  тЖР рдкрд┐рди рдХрд┐рдпрд╛ workspace, рд▓рд╛рд▓ рд░рдВрдЧ
тФВ   ЁЯУМ Implement login flow         3h    тФВ  тЖР рдкрд┐рди рдХрд┐рдпрд╛ session, рдЯреАрд▓ рд░рдВрдЧ
тФВ     Fix the auth bug              1h    тФВ  тЖР hover рдкрд░ рдЧреНрд░реЗ pin + рд░рдВрдЧ рдмрдЯрди
тФВ   Refactor the DB layer           2d    тФВ
тФФтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФШ

рдЪрд╛рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рд╕реНрдерд╛рдиреАрдп рдХреНрд╖рдорддрд╛рдПрдБ pinning рдХреЗ рдКрдкрд░ рдмрд╣реБ-рд╕рддреНрд░ рдХрд╛рд░реНрдп рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреА рд╣реИрдВред рд╕рд╛рд░рд╛ state рдЙрд╕реА session-pin store рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ (рд╣рд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░; рдХреБрдЫ рднреА рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддрд╛), рдФрд░ рд╣рд░ рдПрдХ рдХрд╛ Config рд╕реНрд╡рд┐рдЪ рд╣реИред

  • Boards тАФ pins рдирд╛рдорд┐рдд рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ; рдЪрд┐рдк рдкрдВрдХреНрддрд┐ boards рдмрдирд╛рддреА, рдирд╛рдо рдмрджрд▓рддреА рдФрд░ рд╣рдЯрд╛рддреА рд╣реИ рддрдерд╛ рдЙрдиреНрд╣реЗрдВ рдЦреАрдВрдЪрдХрд░ рдкреБрдирдГрдХреНрд░рдорд┐рдд рдХрд░рддреА рд╣реИ (рдХреНрд░рдо рд╣рд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ), рдЬрдмрдХрд┐ рдкреИрдирд▓ рд╣рд░ board рдХреЗ pins рдХреЛ рдПрдХ рд╕рдВрдХреБрдЪрд┐рдд рд╢реАрд░реНрд╖рдХ рдХреЗ рдиреАрдЪреЗ рд╕рдореВрд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • рдЯреИрдЧ рдФрд░ рджреГрд╢реНрдп тАФ entities рдкрд░ рдЕрдзрд┐рдХрддрдо 8 рдЯреИрдЧ (рд╣рд░ рдПрдХ тЙд24 рдЕрдХреНрд╖рд░), рдкреИрдирд▓ рдХреЗ рдкреНрд░рдмрдВрдзрди рдмрдЯрди рд╕реЗ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЬреЛ pin рдХрд╛ board рднреА рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИ); рдлрд╝рд┐рд▓реНрдЯрд░ рдмрд╛рд░ рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рдЯреИрдЧ рд╕реЗ рдорд┐рд▓рд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рднреА рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рдПрдХ рдирд╛рдорд┐рдд рджреГрд╢реНрдп (рдЕрдзрд┐рдХрддрдо 20) рдмрдирдХрд░ рдПрдХ рдХреНрд▓рд┐рдХ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред
  • рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рд╛рд░рд╛рдВрд╢ тАФ рд╣рд░ рдкрд┐рди рдХреА рдЧрдИ session рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ session snapshot рд╕реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рд░реАрдб-рдУрдирд▓реА, рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝реНрдб рдкрдВрдХреНрддрд┐ (N msgs ┬╖ you|ai ┬╖ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдордп) рдЬреБрдбрд╝рддреА рд╣реИ тАФ рдХреЗрд╡рд▓ рдЧрдгрдирд╛ рд╡ рджрд┐рд╢рд╛, рд╕рд╛рдордЧреНрд░реА рдХрднреА рдирд╣реАрдВред
  • /goto <рдХреАрд╡рд░реНрдб> тАФ рдХрдореНрдкреЛрдЬрд╝рд░ рдореЗрдВ /goto рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐ + Enter: рдЕрджреНрд╡рд┐рддреАрдп рдорд┐рд▓рд╛рди рдЦреЛрд▓рддрд╛ рд╣реИ, рдХрдИ рдорд┐рд▓рд╛рди рд╕реВрдЪреА рджреЗрддреЗ рд╣реИрдВ, рдХреЛрдИ рдорд┐рд▓рд╛рди рдирд╣реАрдВ рддреЛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгред рдХрдорд╛рдВрдб рдкрдВрдХреНрддрд┐ рдореЙрдбрд▓ рддрдХ рдХрднреА рдирд╣реАрдВ рдкрд╣реБрдБрдЪрддреАред

How it works

  • Host рдЖрдзрд╛ (src/index.ts) тАФ рдЯрд┐рдХрд╛рдК session-pin settings namespace рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ (рджреЛ рдкрд┐рди рдХреА рдЧрдИ id рд╕реВрдЪрд┐рдпрд╛рдБ, рджреЛ рд░рдВрдЧ рдорд╛рдирдЪрд┐рддреНрд░ рдФрд░ рдЖрдпреЛрдЬрдХ state, рд╕рд╛рде рдореЗрдВ host рдиреАрддрд┐ maxPins/reorderOnLoad/pruneStale); рдХреЛрдИ session event рдирд╣реАрдВ, рдХреЛрдИ рдореЙрдбрд▓ рдЯреНрд░реИрдлрд╝рд┐рдХ рдирд╣реАрдВред
  • Browser рдЖрдзрд╛ (src/client.ts) тАФ рдПрдХ framework-рдореБрдХреНрдд PinStore (settings transport, рдЯреИрдм-рд╕рд┐рдВрдХ рд╡рд╛рд▓реЗ versioned localStorage рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ degrade), рдПрдХ PinController (рджреЛ-рд╕реНрддрд░реАрдп toggle / рд░рдВрдЧ рдЪрдХреНрд░ / prune / reorder рд╕реНрдЯреЗрдЯ рдорд╢реАрди) рдФрд░ UI рдЬреЛрдбрд╝рддрд╛ рд╣реИ: рдкрдВрдХреНрддрд┐ рдУрд╡рд░рд▓реЗ, рд╡реИрдХрд▓реНрдкрд┐рдХ рдкрдВрдХреНрддрд┐-slot рдкрдВрдЬреАрдХрд░рдг, рд╣реЗрдбрд░ рдЯреЙрдЧрд▓, рдлреБрдЯ рдХреНрд░рд┐рдпрд╛ рдФрд░ pinned рдкреИрдирд▓ред рдХреНрд░рдо ctx.workspaces рд╕реЗ рд╣реЛрдХрд░ рдЬрд╛рддрд╛ рд╣реИред
  • log-рд╕рдорд░реНрдерд┐рдд рд▓реЗрдЦрди рдЪреИрдирд▓ тАФ рдмрд┐рд▓реНрдЯ-рдЗрди dsh-session-pin рд╕реЗрд╡рд╛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ builds рдкрд░, рд╣рд░ session рдЯреЙрдЧрд▓ рдкрд╣рд▓реЗ session.setPinned RPC рд╕реЗ commit рд╣реЛрддрд╛ рд╣реИ (session/pin рдЗрд╡реЗрдВрдЯ log canonical residence рд╣реИ) рдФрд░ settings store рдореЗрдВ mirror рд╣реЛрддрд╛ рд╣реИ; рд╡рд┐рдлрд▓ рдпрд╛ рдзреАрдорд╛ RPC рд╕реАрдзреЗ settings рд▓реЗрдЦрди рдкрд░ degrade рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  • log-рд╕рдорд░реНрдерд┐рдд projection рдкрдарди тАФ enableLogBacking (host Config, fail-closed рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдВрдж) рдПрдХ reader рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд▓рд╛рдЗрд╡ session/pin рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ canonical pin рд╕реЗрдЯ рдореЗрдВ fold рдХрд░рддрд╛ рд╣реИ рдФрд░ folded pinned/colors рдХреЛ settings namespace рдореЗрдВ mirror рдХрд░рддрд╛ рд╣реИред рдЗрд╡реЗрдВрдЯ schema, рд╢реБрджреНрдз fold (foldPinEvents) рдФрд░ рдкреНрд░реА-рдлрд╝реНрд▓рд╛рдЗрдЯ-рдЧреЗрдЯреЗрдб append seam (PinLogAppender) src/pin-log.ts рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ: host рдХрд╛ рдЬреНрдЮрд╛рдд рдЗрд╡реЗрдВрдЯ рд╢рдмреНрджрдХреЛрд╢ рдФрд░ рдЙрд╕рдХрд╛ ignorable append рдорд╛рд░реНрдХрд░ рдкрд╣рд▓реА рд▓реЗрдЦрди рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рдБрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВ (рдкрд░рд┐рдгрд╛рдо рдкреНрд░рддрд┐-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреИрд╢), рдЗрд╕рд▓рд┐рдП рдЬреЛ hosts рдЗрд╡реЗрдВрдЯ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ тАФ 0.1.2-rc.1 рдкрдврд╝рдиреЗ рдкрд░ рдЕрдЬреНрдЮрд╛рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ fail-closed рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ тАФ рдЙрдиреНрд╣реЗрдВ рдПрдХ рднреА рд▓реЗрдЦрди рдирд╣реАрдВ рдорд┐рд▓рддрд╛; settings/localStorage store рд╕рдВрдЧрддрддрд╛ рд╡ degradation рдкрде рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред
  • рдХреНрд▓рд╛рдЗрдВрдЯ seam тАФ browser рдЖрдзрд╛ SessionId/WorkspaceId brands рдХреЛ @deepseek-ai/dsh-client-connection рд╕реЗ рдкрдврд╝рддрд╛ рд╣реИ (рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛ dsh-client-runtime рдкреИрдХреЗрдЬ рд╡рд░реНрддрдорд╛рди hosts рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ); session-рд╣реЗрдбрд░ slot рдХреА standard-kit рд╕реАрдЯреЗрдВ рд╕реНрдерд╛рдиреАрдп structural contract рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк рд╣реЛрддреА рд╣реИрдВред 0.1.2-rc.1 hosts рдкрд░ sessions.row.action рдкрдВрдХреНрддрд┐ slot рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП session рдкрдВрдХреНрддрд┐рдпрд╛рдБ DOM рдУрд╡рд░рд▓реЗ рдкрд░ fallback рдХрд░рддреА рд╣реИрдВ рдФрд░ slot рдкрдВрдЬреАрдХрд░рдг рдЯрд╛рд▓рд╛ рд░рд╣рддрд╛ рд╣реИред
  • рдмрд┐рд▓реНрдб тАФ esbuild host ESM рдЖрдзрд╛ рдФрд░ рд╡реЗрдм рдмреВрдЯ рдлрд╝реИрдХреНрдЯрд░реА (window.__ModuleLoader__.load({ id, factory })) рдореЗрдВ рд▓рд┐рдкрдЯрд╛ client CJS рдЖрдзрд╛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ; react shell рдХреЗ рдЕрдкрдиреЗ React рдкрд░ externalize рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ @deepseek-ai/* рдорд╛рди-рдЖрдпрд╛рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ bundle рдореЗрдВ рд░рд┐рд╕рдиреЗ рдкрд░ purity gate рдмрд┐рд▓реНрдб рд╡рд┐рдлрд▓ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреЙрдЗрдВрдЯ: settings (host); sessions, workspaces, settingsScope, connection, remote, slots (client); locale (client, рд╡реИрдХрд▓реНрдкрд┐рдХ); conversation.session.header.actions, sidebar.footer.action, shell.overlay, рдФрд░ upstream рдХрд╛ sessions.row.action рдкрдВрдХреНрддрд┐ slot рдЬрдм рдШреЛрд╖рд┐рдд рд╣реЛ (0.1.2-rc.1 hosts рдЗрд╕реЗ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ тАФ рд╡рд╣рд╛рдБ session рдкрдВрдХреНрддрд┐рдпрд╛рдБ DOM рдУрд╡рд░рд▓реЗ рд╕реЗ рдврдХрддреА рд╣реИрдВ)ред рдореЙрдбрд▓-рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡: рдХреЛрдИ рдирд╣реАрдВ тАФ рдХреЗрд╡рд▓-UI plugin: рди рдХреЛрдИ session event рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рди рдХрд┐рд╕реА рдореЙрдбрд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ tokenред

Quick start

# 1. bundle рдХреЛ рдЕрдкрдиреЗ profile рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
dsh plugin --profile web add "github:PerryLink/dsh-session-pin#main"

# рдпрд╛ npm рд╕реЗ (рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рдВрд╕реНрдХрд░рдг)
dsh plugin --profile web add dsh-session-pin

# 2. рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░реЗрдВ рдФрд░ рдкрдВрдХреНрддрд┐ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ
dsh --profile web --dump-config | grep -A3 'id: session-pin'

Loader entry idред рдЬрд┐рди harness builds рдХрд╛ dsh-base bundle рдмрд┐рд▓реНрдЯ-рдЗрди host рд╕реЗрд╡рд╛ @deepseek-ai/dsh-session-pin рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ (entry id session-pin), рд╡рд╣рд╛рдБ рдЗрд╕ plugin рдХреЛ profile patch рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ entry id рджреЗрдВ, рдЬреИрд╕реЗ id: session-pin-ui тАФ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ session-pin id рд╕реЗ рдмреВрдЯ "duplicate loader entry id" рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

Install & uninstall

  • git рдЪреИрдирд▓ (рдирд╡реАрдирддрдо main): dsh plugin --profile web add "github:PerryLink/dsh-session-pin#main" тАФ pnpm run build host рдЖрдзрд╛ (lib/index.js) рдФрд░ browser рдЖрдзрд╛ (lib/client.js) рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред
  • npm рдЪреИрдирд▓ (рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рдВрд╕реНрдХрд░рдг): dsh plugin --profile web add dsh-session-pinред
  • tarball рдЪреИрдирд▓: рдЗрд╕ repo рдореЗрдВ pnpm pack, рдлрд┐рд░ dsh plugin --profile web add ./dsh-session-pin-<version>.tgzред
  • рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓: dsh plugin --profile web remove dsh-session-pin (рдпрд╛ profile patch рд╕реЗ рдкрдВрдХреНрддрд┐ рд╣рдЯрд╛рдПрдБ; settings.yaml рдХрд╛ session-pin рдЕрдиреБрднрд╛рдЧ рднреА рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

Configuration

рд╕рднреА рдЯреНрдпреВрдиреЗрдмрд▓ Schemastery Config рдлрд╝реАрд▓реНрдб рд╣реИрдВ (cordis.yml рд╕реЗ рдмрджрд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред cordis.patch.yml рдиреАрдЪреЗ рджрд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд╕рд╛рде bundle рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИред

рдХреБрдВрдЬреАрдбрд┐рдлрд╝реЙрд▓реНрдЯрдЕрд░реНрде
maxPins0рд╣рд░ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рдкрд┐рди рдХреА рдЧрдИ entities рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ (session рдФрд░ workspace рдХрд╛ рдЕрдкрдирд╛ рдмрдЬрдЯ); 0 = рдЕрд╕реАрдорд┐рдд
reorderOnLoadtrueрд╕реВрдЪрд┐рдпрд╛рдБ рддреИрдпрд╛рд░ рд╣реЛрддреЗ рд╣реА рдкрд┐рди рдХрд┐рдП рдЙрдкрд╕рд░реНрдЧ (рд╕рдмрд╕реЗ рдирдпрд╛ pin рдкрд╣рд▓реЗ) рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ
pruneStaletrueрддреИрдпрд╛рд░ рд╕реВрдЪреА рд╕реЗ рдЧрд╛рдпрдм entities (рд╣рдЯрд╛рдИ/рд╕рдВрдЧреНрд░рд╣реАрдд) рдХреЗ pins рдФрд░ рд░рдВрдЧ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ
enableBoardstrueрд╕рд╛рдЗрдбрдмрд╛рд░ рдкреИрдирд▓ рдореЗрдВ рдкрд┐рди рд╕рдореВрд╣ (boards) рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
enableTagstruesession/workspace рдЯреИрдЧ рдФрд░ рдкреИрдирд▓ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрд╛рд░ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
enableViewstrueрд╕рд╣реЗрдЬреЗ рдЧрдП рдлрд╝рд┐рд▓реНрдЯрд░ рджреГрд╢реНрдп рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
enableHealthtrueрд╣рд░ рдкрд┐рди рдХрд┐рдП session рдХрд╛ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рд╛рд░рд╛рдВрд╢ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ (рд░реАрдб-рдУрдирд▓реА, рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝реНрдб)
enableGototrueрдХрдореНрдкреЛрдЬрд╝рд░ рдХрд╛ /goto <рдХреАрд╡рд░реНрдб> рдХрдорд╛рдВрдб рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
enableLogBackingfalsesession/pin рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ log-рд╕рдорд░реНрдерд┐рдд projection рдореЗрдВ fold рдХрд░реЗрдВ рдФрд░ settings cache рдореЗрдВ mirror рдХрд░реЗрдВ (fail-closed: рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ log canonical рд╣реИ)

Tools & surfaces

рд╕рддрд╣рдкреНрд░рдХрд╛рд░рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
[pin][рд░рдВрдЧ] рдкрдВрдХреНрддрд┐ рдирд┐рдпрдВрддреНрд░рдгUI slot / DOM рдУрд╡рд░рд▓реЗрд╣рд░ session рдФрд░ workspace рдкрдВрдХреНрддрд┐ рдкрд░ hover рдирд┐рдпрдВрддреНрд░рдг
session рд╣реЗрдбрд░ рдЯреЙрдЧрд▓UI slotрд╣реЗрдбрд░ рдХреА рдХреНрд░рд┐рдпрд╛-рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╡рд╣реА рдирд┐рдпрдВрддреНрд░рдг, session id рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛
sidebar рдлреБрдЯ + pinned рдкреИрдирд▓UI slot / рдУрд╡рд░рд▓реЗрдкрд┐рди рдХрд┐рдП workspace рдФрд░ session board рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдореВрд╣рд┐рдд (рд╕рдВрдХреБрдЪрд┐рдд), рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ board/tag рдкреНрд░рдмрдВрдзрди рдФрд░ рд░рдВрдЧ-рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ
/goto <рдХреАрд╡рд░реНрдб>commandрд╢реАрд░реНрд╖рдХ/рдЯреИрдЧ рд╕реЗ рдХрдореНрдкреЛрдЬрд╝рд░ рддреНрд╡рд░рд┐рдд-рдЫрд▓рд╛рдВрдЧ; рдкрдВрдХреНрддрд┐ рдореЙрдбрд▓ рддрдХ рдХрднреА рдирд╣реАрдВ рдкрд╣реБрдБрдЪрддреА
session-pin settings namespacehost рд╕реЗрд╡рд╛pins, рд░рдВрдЧ рдФрд░ рдЖрдпреЛрдЬрдХ state рдХрд╛ рд╣рд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯрд┐рдХрд╛рдК рднрдВрдбрд╛рд░

Permissions & data

  • рдЕрдиреБрдорддрд┐рдпрд╛рдБ: dshWorkshop manifest browser:local-storage, settings:read рдФрд░ settings:write рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • рдбреЗрдЯрд╛: pins, рд░рдВрдЧ рдФрд░ рдЖрдпреЛрдЬрдХ state рд╣рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ session-pin settings namespace рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ; рдЬрд╣рд╛рдБ web proxy namespace рдирд╣реАрдВ рдкрд░реЛрд╕рддрд╛ рд╡рд╣рд╛рдБ versioned localStorage рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ (v1 рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ migrate рд╣реЛрддреЗ рд╣реИрдВ) рдкрд░ degrade рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдХреБрдЫ рднреА рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддрд╛ред
  • рд╕рддреНрд░ рд▓реЙрдЧ: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ тАФ рдпрд╣ plugin рди рдХреЛрдИ session event рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рди рдХрд┐рд╕реА рдореЙрдбрд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ tokenред enableLogBacking рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░, host рдХреЗрд╡рд▓-log session/pin рдЗрд╡реЗрдВрдЯ (upstream session.setPinned RPC рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд) рдХреЛ canonical pin projection рдореЗрдВ fold рдХрд░рддрд╛ рд╣реИ; PinLogAppender рдЕрдкрдиреА рд▓реЗрдЦрди рдХреЛ рдкреНрд░реА-рдлрд╝реНрд▓рд╛рдЗрдЯ рдЧреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреЛ hosts рдЗрд╡реЗрдВрдЯ рдирд╣реАрдВ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ (0.1.2-rc.1) рдЙрдиреНрд╣реЗрдВ рдПрдХ рднреА рд▓реЗрдЦрди рдирд╣реАрдВ рдорд┐рд▓рддрд╛ред рдореЙрдбрд▓-рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡ рдлрд┐рд░ рднреА рдХреЛрдИ рдирд╣реАрдВред

Security boundaries

  • рдХреЗрд╡рд▓ UIред рдХреЛрдИ рдореЙрдбрд▓-рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ, рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рдирд╣реАрдВ, рдХреЛрдИ subprocess рдирд╣реАрдВ; рд╣рд░ рд╕рддрд╣ рдкреБрд░рд╛рдиреА рдЖрдзрд╛рд░рд░реЗрдЦрд╛рдУрдВ рдкрд░ рд╕рд╣рдЬ рд░реВрдк рд╕реЗ degrade рд╣реЛрддреА рд╣реИред
  • рдЯрд┐рдХрд╛рдК рдФрд░ рд╕реАрдорд┐рдд stateред pins рдФрд░ рд░рдВрдЧ рд╣рдЯрд╛рдИ рдЧрдИ entities рдХреЗ рд╕рд╛рде prune рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ (pruneStale); maxPins рд╣рд░ рд╕реНрддрд░ рдХреА рдкрд┐рди рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред
  • рд░реАрдб-рдУрдирд▓реА рд╕реНрд╡рд╛рд╕реНрдереНрдпред рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рд╛рд░рд╛рдВрд╢ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ session snapshot рд╕реЗ рдХреЗрд╡рд▓ рдЧрдгрдирд╛ рд╡ рджрд┐рд╢рд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ред

Known limitations

  • рд╕реНрдерд╛рдпрд┐рддреНрд╡ рдХрд╛ рджрд╛рдпрд░рд╛ тАФ рдЬрд╣рд╛рдБ web proxy session-pin namespace рдирд╣реАрдВ рдкрд░реЛрд╕рддрд╛, рд╡рд╣рд╛рдБ pins рдФрд░ рд░рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рд╕реНрдерд╛рдиреАрдп localStorage рдкрд░ fallback рдХрд░рддреЗ рд╣реИрдВ; upstream рджреНрд╡рд╛рд░рд╛ namespace рдПрдХреНрд╕рдкреЛрдЬрд╝ рдХрд░рддреЗ рд╣реА host рдкрдВрдЬреАрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЯрд┐рдХрд╛рдК рднрдВрдбрд╛рд░ рдмрди рдЬрд╛рддрд╛ рд╣реИред 0.1.2-rc.1 hosts рдкрд░ рдкреНрд░реА-рдлрд╝реНрд▓рд╛рдЗрдЯ рдЧреЗрдЯ log appends рдХреЛ рдкреВрд░реА рддрд░рд╣ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ (fail-closed рдЗрд╡реЗрдВрдЯ рд╢рдмреНрджрдХреЛрд╢ рдРрд╕реЗ logs рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрддрд╛), рдЗрд╕рд▓рд┐рдП projection рд╡рд╣рд╛рдБ settings cache рдкрд░ degrade рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  • рдХреНрд░рдо рдХрд╛ рджрд╛рдпрд░рд╛ тАФ рдкрд┐рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗрд╡рд▓ Manual рдХреНрд░рдо рдореЗрдВ рд╕реНрдерд┐рд░ рд╣реИ; Updated рдХреНрд░рдо рдореЗрдВ рдХреЛрд░ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐-рдкреНрд░рдореЛрд╢рди рд╕рдХреНрд░рд┐рдп sessions рдХреЛ рдлрд┐рд░ рд╕реЗ рдЖрдЧреЗ рдХрд░ рджреЗрддреА рд╣реИ, рдФрд░ reorderOnLoad рд▓реЛрдб рдкрд░ рдЙрдкрд╕рд░реНрдЧ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
  • рджреВрд░рд╕реНрде рдмреНрд░рд╛рдЙрдЬрд╝рд░ тАФ baseline рдкрд░ settings RPC рдХреЗрд╡рд▓ loopback рд╣реИрдВ; рджреВрд░рд╕реНрде рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рд╕реНрдерд╛рдиреАрдп localStorage рдкрд░ fallback рдХрд░рддреЗ рд╣реИрдВред
  • рдкрдВрдХреНрддрд┐ рдмреИрдЬ fallback тАФ рдЬрд╣рд╛рдБ upstream рдХрд╛ рдкрдВрдХреНрддрд┐ slot рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, session рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╢реАрд░реНрд╖рдХ рдкрд╛рда рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ; рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╢реАрд░реНрд╖рдХреЛрдВ рдкрд░ рдмреИрдЬ рд╣рд░ рдореЗрд▓ рдЦрд╛рддреА рдкрдВрдХреНрддрд┐ рдкрд░ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рдореЗрд▓ рдХреЛ рдЯреЙрдЧрд▓ рдХрд░рддрд╛ рд╣реИ (рдХреЙрд╕реНрдореЗрдЯрд┐рдХ)ред
  • рдкрдВрдХреНрддрд┐ DOM рдирд┐рд░реНрднрд░рддрд╛ тАФ рдУрд╡рд░рд▓реЗ рдХреЛрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА role="treeitem" рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ рдФрд░ рдЙрд╕реЗ upstream рдХреЗ UI рдмрджрд▓рд╛рд╡реЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

Roadmap

  • рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ / рдкрдВрдХреНрддрд┐-рдореЗрдиреВ рдореЗрдВ ┬лрдкрд┐рди┬╗ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ (рдХреЛрд░ рдХреЗ рдкрдВрдХреНрддрд┐-рд╕реНрддрд░реАрдп рдореЗрдиреВ slot рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛; рдкрдВрдХреНрддрд┐ рдмреИрдЬ slot рдЕрдм upstream рдореЗрдВ рд╣реИ)ред
  • рд╡рд┐рд╣рд┐рдд рд╕реНрдерд╛рди: рдПрдХ log-рд╕рдорд░реНрдерд┐рдд session/pin event + pin projection + write RPC (upstream) тАФ рддрдм settings namespace рдЯрд┐рдХрд╛рдК рднрдВрдбрд╛рд░ рд╕реЗ рд╣рдЯ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ plugin useProjection('pin') рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓рд╛рдЧреВ (P0): plugin рдореЗрдВ рдЕрдм session/pin event schema, рд╢реБрджреНрдз projection fold (foldPinEvents), рдкреНрд░реА-рдлрд╝реНрд▓рд╛рдЗрдЯ-рдЧреЗрдЯреЗрдб append seam (PinLogAppender) рдФрд░ рдПрдХ host projection reader (enableLogBacking) рд╣реИ рдЬреЛ рд▓рд╛рдЗрд╡ session/pin рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ settings cache рдореЗрдВ рд╡рд╛рдкрд╕ fold рдХрд░рддрд╛ рд╣реИ; settings/localStorage рд╕рдВрдЧрддрддрд╛ рд╡ degradation рдкрде рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ log canonical рд╣реИред
  • рд╡рд┐рд╣рд┐рдд рд╕реНрдерд╛рди рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдкреВрд░реНрдг рд░рдВрдЧ-рдЪрдпрдирдХрд░реНрддрд╛ popover (рдордирдкрд╕рдВрдж рд░рдВрдЧ); рдЖрдЬ рдХрд╛ рдЪрдХреНрд░ рдмрдЯрди preset palette рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред

Development

pnpm install                    # рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
pnpm run typecheck              # tsc --noEmit
pnpm test                       # vitest рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ
pnpm run build                  # рджреЛ-рдЖрдзрд╛ build + client purity рдЬрд╛рдБрдЪ
node scripts/verify-live.mjs    # рдЪрд╛рд▓реВ `dsh web` рдХреЗ рд╡рд┐рд░реБрджреНрдз рд▓рд╛рдЗрд╡ рдЬрд╛рдБрдЪ (DSH_CHECKOUT env)

Topics

deepseek-harness, dsh, dsh-plugin, session-pin, pin, workspace

Contributors

  • @PerryLink тАФ рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдЕрдиреБрд░рдХреНрд╖рдХ: pin рдЕрдиреБрднрд╡, рдЯрд┐рдХрд╛рдК рд╕реНрдерд╛рдпрд┐рддреНрд╡, workspace рдХреНрд░рдо, рдкреНрд░рддрд┐-pin рд░рдВрдЧ, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЖрдпреЛрдЬрдХ рдФрд░ рдкрд╛рдБрдЪ-рднрд╛рд╖рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ред

рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ PerryLink рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░рдХреНрд╖рд┐рдд 33 DeepSeek Harness рдкреНрд▓рдЧрдЗрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдХреА рднреА рдХрд░реЗрдВрдЧреЗ:

PluginOne-liner
dsh-dsh-auto-reviewрдЕрдиреБрдореЛрджрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рджреНрд╡рд┐рддреАрдп-рдореЙрдбрд▓ рд╕реНрд╡рддрдГ-рд╕рдореАрдХреНрд╖рд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓-рдмрдВрдж
dsh-dsh-background-agentsрд╡реЗрдм UI рд╕рд╛рдЗрдбрдмрд╛рд░, рд╕рдВрджреЗрд╢ рдФрд░ рдЕрд╡рд░реЛрдзрди рдХреЗ рд╕рд╛рде рдЯрд┐рдХрд╛рдК рдкреГрд╖реНрдарднреВрдорд┐ рдЪрд╛рдЗрд▓реНрдб рдПрдЬреЗрдВрдЯ
dsh-dsh-budgetDeepSeek Harness рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧрдд рдкреНрд░рд╢рд╛рд╕рди: рдмрдЬрдЯ, рдХрд╛рд░реНрдмрди рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдПрдХ рдкреИрдирд▓ рдореЗрдВред
dsh-dsh-checkpoint-rewindClaude Code /rewind-рд╕рдорддреБрд▓реНрдп: рд╕реНрдиреИрдкрд╢реЙрдЯ, рд╕рддреНрд░ рдлрд╝реЙрд░реНрдХ, рдПрдХ-рдмрд╛рд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛
dsh-dsh-claude-moveClaude Code рд╕рддреНрд░, рдореЗрдореЛрд░реА, рдХреМрд╢рд▓ рдФрд░ CLAUDE.md рдХреЛ DSH рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ
dsh-dsh-clickDeepSeek Harness рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдиреЗрдЯрд┐рд╡ рдбреЗрд╕реНрдХрдЯреЙрдк рдирд┐рдпрдВрддреНрд░рдг тАФ Windows рдкрд╣рд▓реЗред
dsh-dsh-composer-historyрд╡реЗрдм рдХрдВрдкреЛрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдЯрд░реНрдорд┐рдирд▓-рд╢реИрд▓реА рдЗрдирдкреБрдЯ рдЗрддрд┐рд╣рд╛рд╕: рддреАрд░, Ctrl+R рдЦреЛрдЬ
dsh-dsh-data-qualityрдбреЗрдЯрд╛рд╕реЗрдЯ рдЧреБрдгрд╡рддреНрддрд╛ рдЬрд╛рдБрдЪ рд╡ рдЙрджреНрдзрд░рдг рд╕рддреНрдпрд╛рдкрди (рдпрд╣рд╛рдБ рдЙрдкрднреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрдЦреНрдпрд╛-рд╕реЗрддреБ)
dsh-dsh-defendDeepSeek Harness рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдореНрдкреНрдЯ-рдЗрдВрдЬреЗрдХреНрд╢рди, рдЬреЗрд▓рдмреНрд░реЗрдХ рдФрд░ рд╕реАрдХреНрд░реЗрдЯ-рд▓реАрдХ рд░рдХреНрд╖рд╛ред
dsh-dsh-doublecheckрдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ-рдЕрдиреБрд╢рд╛рд╕рди рд░рдХреНрд╖рдХ: рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдкреВрдЫрддрд╛рдЫ, рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░, рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рд╕рдореАрдХреНрд╖рд╛
dsh-dsh-drawDeepSeek Harness рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд рд╕реНрдереИрддрд┐рдХ-рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рд░реВрдЯрд┐рдВрдЧред
dsh-dsh-fastDeepSeek Harness рдХреЗ рд▓рд┐рдП рд░реАрдб-рдУрдирд▓реА рдкреНрд░рджрд░реНрд╢рди рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ред
dsh-dsh-fund-researchрдЪреАрдиреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдореНрдпреВрдЪреБрдЕрд▓ рдлрдВрдб рдХреЗ рд▓рд┐рдП рдирд┐рдпрддрд╛рддреНрдордХ рдЕрдиреБрд╕рдВрдзрд╛рди рд░рд┐рдкреЛрд░реНрдЯ
dsh-dsh-githubDSH рдХреЗ рд▓рд┐рдП GitHub PR/issues рдПрдХреАрдХрд░рдг, рд╣рд░ рд▓реЗрдЦрди рдЕрдиреБрдореЛрджрди-рджреНрд╡рд╛рд░рд┐рдд
dsh-dsh-industry-researchрдЙрджреНрдпреЛрдЧ-рдЕрдиреБрд╕рдВрдзрд╛рди рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдЬреЛ рдЗрд╕ рдкреНрд▓рдЧрд┐рди рдХреЗ ctx.researchReport.assemble рд╕реЗ рдбрд┐рд▓реАрд╡рд░реЗрдмрд▓ рд╕реАрд▓ рдХрд░рддрд╛ рд╣реИ
dsh-dsh-libraryDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреНрдЮрд╛рдирдХреЛрд╢ред
dsh-dsh-local-aiDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп-рдореЙрдбрд▓ (Ollama) рдПрдХреАрдХрд░рдгред
dsh-dsh-lsp-actionsрднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ LSP рдирд┐рджрд╛рди, рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ, рдкреВрд░реНрдгрддрд╛, рдХреЛрдб рдХреНрд░рд┐рдпрд╛рдПрдБ рдФрд░ рдирд╛рдо рдмрджрд▓рдирд╛
dsh-dsh-maskPII рдорд╛рд╕реНрдХрд┐рдВрдЧ рдорд┐рдбрд▓рд╡реЗрдпрд░: рдореЙрдбрд▓ рд╕реАрдорд╛ рдкрд░ рдЕрдирд╛рдо рдХрд░реЗрдВ, рдбрд┐рд╕реНрдкреНрд▓реЗ рд▓реЗрдпрд░ рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
dsh-dsh-mcp-panelрдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рд╡рд╛рд▓рд╛ MCP рд░рдирдЯрд╛рдЗрдо рдкреИрдирд▓: /mcp рдХрдорд╛рдВрдб + рд╕реНрдерд┐рддрд┐, рдЯреВрд▓ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ Settings рдЯреИрдм
dsh-dsh-mementoрдЕрдиреБрдореЛрджрди-рджреНрд╡рд╛рд░рд┐рдд рдХреНрд░реЙрд╕-рд╕рддреНрд░ рдореЗрдореЛрд░реА: ctx.memory рд╕реАрдо + SQLite + рдореЗрдореЛрд░реА рдЯреВрд▓
dsh-dsh-observeDeepSeek Harness рдХреЗ рд▓рд┐рдП OpenTelemetry рдФрд░ Langfuse рдЕрд╡рд▓реЛрдХрдиреАрдпрддрд╛ рдирд┐рд░реНрдпрд╛рддрдХред
dsh-dsh-output-stylesClaude Code outputStyles-рд╕рдорддреБрд▓реНрдп рд░рдирдЯрд╛рдЗрдо рд╢реИрд▓реА рдмрджрд▓рд╛рд╡
dsh-dsh-permission-rulesрдСрдбрд┐рдЯ рдХреЗ рд╕рд╛рде Claude Code-рд╢реИрд▓реА рдШреЛрд╖рдгрд╛рддреНрдордХ allow/deny/ask рдЕрдиреБрдорддрд┐ рдирд┐рдпрдо
dsh-dsh-plugin-guideрдорд╛рдБрдЧ рдкрд░ рдПрдЬреЗрдВрдЯ рдХреМрд╢рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓рдЧрдЗрди-рд╡рд┐рдХрд╛рд╕ рдЬреНрдЮрд╛рди рдЖрдзрд╛рд░
dsh-dsh-research-reportрд╕рд╛рдордЧреНрд░реА-рдкрддрд╛ рд╕рд╛рдХреНрд╖реНрдп рдФрд░ рд╕реАрд▓рдмрдВрдж рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╡рд╛рд▓рд╛ рд╕рддреНрдпрд╛рдкрди-рдпреЛрдЧреНрдп рдЕрдиреБрд╕рдВрдзрд╛рди-рд░рд┐рдкреЛрд░реНрдЯ рдЗрдВрдЬрди
dsh-dsh-scoreDeepSeek Harness рдкреНрд▓рдЧрд┐рдиреЛрдВ рдХреА рдмрд╣реБ-рдЖрдпрд╛рдореА рдЧреБрдгрд╡рддреНрддрд╛ рд╕реНрдХреЛрд░рд┐рдВрдЧред
dsh-dsh-session-syncDeepSeek Harness рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдбрд┐рд╡рд╛рдЗрд╕ рд╕рддреНрд░ рд╕рд┐рдВрдХ тАФ рдЖрдкрдХреЗ рд╕рддреНрд░ рд╕реНрдЯреЛрд░ рдХрд╛ рдПрдХ рд╕рдорд░реНрдкрд┐рдд git рдорд┐рд░рд░ред
dsh-dsh-skill-pack-securityрд╕реБрд░рдХреНрд╖рд╛-рдСрдбрд┐рдЯ рдХреМрд╢рд▓ рдкреИрдХ: рдЧреБрдкреНрдд рд╕реНрдХреИрди, рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЖрдкреВрд░реНрддрд┐-рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдореАрдХреНрд╖рд╛
dsh-dsh-talkDeepSeek Harness рдХреЗ рд▓рд┐рдП рдЖрд╡рд╛рдЬрд╝-рдкреНрд░рдердо рд╕рддреНрд░ рд▓реВрдк: рдмреЛрд▓реЗрдВ рдФрд░ рдЙрддреНрддрд░ рд╕реБрдиреЗрдВред
dsh-dsh-test-driveDeepSeek Harness рдкреНрд▓рдЧрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреГрдердХ рдЗрдВрд╕реНрдЯреЙрд▓-рдПрдВрдб-рд╕реНрдореЛрдХ рдЯреЗрд╕реНрдЯ рдбреНрд░рд╛рдЗрд╡ред
dsh-dsh-translateDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╡реЗрдВрдбрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдирд┐рдпрддрд╛рддреНрдордХ JSON рдорд░рдореНрдорддред

License

Apache License 2.0 ┬й 2026 dsh-session-pin рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛

DSH Desktop рдорд╛рд░реНрдХреЗрдЯ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

рд╕рднреА PerryLink рдкреНрд▓рдЧрдЗрди DSH Desktop рдХреЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: Market тЖТ Sources тЖТ add source тЖТ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json тЖТ рдЪреБрдиреЗрдВред рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдорд╛рд░реНрдХреЗрдЯ рдХреЗ npm-identity рд╕рддреНрдпрд╛рдкрди рдФрд░ рдЖрдкрдХреА рдкреБрд╖реНрдЯрд┐ рд╕реЗ рд╣реА рд╣реЛрддрд╛ рд╣реИред