From 0b17152889f2096199a24a87df59ade2dca6e1a0 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 20 Jun 2026 21:40:32 +0900 Subject: feat(outdated): proxy execute to show via shared Application The execute() proxy was left as todo!(); wire it to the shared Application handle so `outdated` re-enters the run flow as `show -l`, matching PHP's $this->getApplication()->run(). Add Application::shared() to expose the new_shared self-reference and un-ignore run_outdated. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/src/console/application.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'crates/shirabe/src/console') diff --git a/crates/shirabe/src/console/application.rs b/crates/shirabe/src/console/application.rs index 4f7754d..7fa6720 100644 --- a/crates/shirabe/src/console/application.rs +++ b/crates/shirabe/src/console/application.rs @@ -246,6 +246,14 @@ impl Application { Ok(application) } + /// Returns the shared handle to this application set up by `new_shared`. Proxy commands use it to + /// re-enter the run flow (PHP's `$this->getApplication()->run(...)`). + pub fn shared(&self) -> std::rc::Rc> { + self.me + .upgrade() + .expect("Application must be constructed through new_shared") + } + /// Registers the default commands on a shared application (PHP's lazy `init()`), executed once /// with no application borrow held so each `set_application` can borrow back safely. fn init_shared( -- cgit v1.3.1